JP3573779B2 - 連想メモリ - Google Patents
連想メモリ Download PDFInfo
- Publication number
- JP3573779B2 JP3573779B2 JP05414194A JP5414194A JP3573779B2 JP 3573779 B2 JP3573779 B2 JP 3573779B2 JP 05414194 A JP05414194 A JP 05414194A JP 5414194 A JP5414194 A JP 5414194A JP 3573779 B2 JP3573779 B2 JP 3573779B2
- Authority
- JP
- Japan
- Prior art keywords
- data
- register
- input
- search
- stored
- 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 - Lifetime
Links
Images
Landscapes
- Compression, Expansion, Code Conversion, And Decoders (AREA)
Description
【産業上の利用分野】
本発明は、複数の格納データを記憶しておき、検索データを入力し、入力された検索データに対応する格納データを検索する連想メモリに関する。
【0002】
【従来の技術】
従来より、上記のような検索機能を備えた連想メモリ(Associative Memory,内容アドレス式メモリ;Content Addressable Memory)が提案されている。
図5は、連想メモリの一例を表わした回路ブロック図である。
【0003】
この連想メモリ10には、例えば32ビットを1ワードとする、互いに図の横方向に並ぶ32ビットのメモリセルからなるメモリワード11_1,11_2,…,11_nが多数備えられている。またこの連想メモリ10は、1ワードの検索データが入力されラッチされる検索データレジスタ12および検索データをビット毎にマスクするマスクデータが格納されるマスクレジスタ13を備え、検索データレジスタ12にラッチされた検索データのうち、マスクレジスタ13に格納されたマスクデータによりマスクされていない全部もしくは所定の一部のビットパターンと、各メモリワード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’の一致信号が出力される。それ以外の一致線14_1,14_2,…,14_nは論理‘0’にとどまる。
【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からは、論理‘1’の信号が格納された一致フラグレジスタ(ここでは一致フラグレジスタ15_2と一致フラグレジスタ15_3の2つ)のうちの優先度の最も高い一致フラグレジスタに対応するアドレス信号が出力される。ここでは、添字が若いほど優先順位が高いものとし、従ってここでは一致フラグレジスタ15_2に対応するメモリアドレスが出力される。このアドレスエンコーダ16から出力されたアドレス信号ADは、必要に応じてデコーダ17に入力される。デコーダ17ではこの入力されたアドレス信号ADをデコードして各メモリワード11_1,11_2,…,11_nのそれぞれに対応して備えられたワード線18_1,18_2,…,18_nのうちの入力されたアドレス信号ADに対応するいずれか1本のワード線(ここではワード線18_2)にアクセス信号を出力する。これによりアクセス信号の出力されたワード線18_2に対応するメモリワード11_2に記憶されているデータが出力レジスタ19に読み出される。
【0005】
図6は、図5に示す連想メモリ中の1つのメモリワードを表わした詳細回路図である。
このメモリワード11は、同一構成の32個のメモリセル11_1,11_2,…,11_32から構成されている。各メモリセル11_1,11_2,…,11_32には、互いの出力が互いの入力に接続された、第1インバータ20_1,20_2,…,20_32と第2インバータ21_1,21_2,…,21_32が備えられており、これらのインバータ20_1,21_1;20_2,21_2;…;20_32,21_32により各メモリセル11_1,11_2,…,11_32に論理‘1’もしくは論理‘0’の1ビットの情報が記憶される。
【0006】
また各メモリセル11_1,11_2,…,11_32において、第1のインバータ20_1,20_2,…,20_32の出力はトランジスタ22_1,22_2,…,22_32を介してビット線23_1,23_2,…,23_32と接続されており、このトランジスタ22_1,22_2,…,22_32のゲートはワード線24に接続されている。また第2のインバータ21_1,21_2,…,21_32の出力はトランジスタ25_1,25_2,…,25_32を介してビットバー線26_1,26_2,…,26_32と接続されており、このトランジスタ25_1,25_2,…,25_32のゲートもワード線24に接続されている。さらに各メモリセル11_1,11_2,…,11_32において、ビット線23_1,23_2,…,23_32とビットバー線26_1,26_2,…,26_32との間をつなぐように互いにシリーズに接続された2つのトランジスタ27_1,28_1;27_2,28_2;…;27_32,28_32が配置されており、これら2つのトランジスタ27_1,28_1;27_2,28_2;…;27_32,28_32のうちの一方のトランジスタ27_1,27_2,…,27_32のゲートは第1のインバータ20_1,20_2,…,20_32の出力、他方のトランジスタ28_1,28_2,…,28_32のゲートは第2のインバータ21_1,21_2,…,21_32の出力と接続されている。
【0007】
また一致線140には、各メモリセル11_1,11_2,…,11_32に対応して1つずつトランジスタ290_1,290_2,…,290_32が備えられており、それらのトランジスタ290_1,290_2,…,290_32は互いにシリーズに接続され、それらのトランジスタ290_1,290_2,…,290_32の各ゲートは、各2つのトランジスタ27_1,28_1;27_2,28_2;…;27_32,28_32の中点と接続されている。
【0008】
またこの一致線140にはもう1つのトランジスタ290_0がシリーズに接続されており、この一致線140の図6の左端はこのトランジスタ290_0を介して接地されている。このトランジスタ290_0のゲートは制御線300に接続されている。さらにこの一致線の図6の右側にはインバータ310が備えられており、一致線140はこのインバータ310の出力側にも延びて各一致フラグレジスタ15_1,15_2,…,15_n(図5参照)と接続されている。このインバータ310の入力と電源VDDとの間には2つのP型トランジスタ320,330が備えられており、それらのうちの一方のP型トランジスタ320のゲートは制御線300と接続され、他方のP型トランジスタ330のゲートはインバータ310の出力と接続されている。
【0009】
このような構造のメモリワード及びその周辺回路を備えた連想メモリにおいて、一致検索は以下のようにして行なわれる。
先ず制御線300が論理‘0’となりP型トランジスタ320が導通状態となって一致線140がプリチャージされる。この際、トランジスタ290_0は非導通状態となって一致線140が確実に接地ラインから切り離され、これにより確実にプリチャージが行なわれる。このようにして一致線140が先ずプリチャージされた後検索が行なわれる。
【0010】
ここで、メモリセル11_1には、論理‘1’の情報が記憶されているものとする。即ちこの場合第1のインバータ20_1の出力側が論理‘1’、第2のインバータ21_1の出力側が論理‘0’の状態にある。
このメモリセル11_1に対して論理‘1’の検索が行なわれるものとする。即ち、ビット線23_1が論理‘1’、ビットバー線26_1が論理‘0’とされる。ワード線24は論理‘0’のままの状態に保持されている。また制御線300が論理‘1’となり、トランジスタ290_0が導通状態となる。この場合トランジスタ27_1のゲートには論理‘1’の電圧が印加され、ビット線23_1の論理‘1’の信号がトランジスタ290_1のゲートに印加され、これによりトランジスタ290_1が導通状態となる。即ちメモリセル11_1に記憶されたビット情報とビット線23_1、ビットバー線26_1を経由して入力された検索データ中のビット情報が一致する場合に、対応するトランジスタ290_1が導通状態となる。
【0011】
また、メモリセル11_2には論理‘0’の情報が記憶されているものとする。この場合第1のインバータ20_2の出力側が論理‘0’、第2のインバータ21_2の出力側が論理‘1’の状態にある。
このメモリセル11_2に対してやはり論理‘1’の検索が行なわれるものとする。即ち、ビット線23_2が論理‘1’、ビットバー線26_2が論理‘0’とされ、制御線300が論理‘1’とされる。この場合、トランジスタ28_2を経由して論理‘0’の状態にあるビットバー線26_2の信号がトランジスタ290_2のゲートに印加され、したがってこのトランジスタ290_2は非導通状態にととどまることになる。即ち不一致の場合、一致線14にプリチャージされていた電荷はディスチャージされない。
【0012】
また、マスクをかけたビットについては、メモリセル11_32に示すように、ビット線23_32、ビットバー線26_32の双方とも論理‘1’とされる。この場合このメモリセル11_32に論理‘1’の情報が記憶されているか論理‘0’の情報が記憶されているかに応じてトランジスタ27_32もしくはトランジスタ28_32のいずれかが導通状態となり、いずれの場合もトランジスタ290_32は導通状態となる。
【0013】
このように、図6に示すメモリワードでは、メモリワードに記憶されたビットパターンとビット線23_1,23_2,…,23_32、ビットバー線26_1,26_2,…,26_32を経由して入力された検索データのビットパターンとが一致する(マスクのかけられたビットについては、上述のように一致しているものとみなされる)場合、一致線140にプリチャージされた電荷がトランジスタ290_32,…,290_2,290_1,290_0を経由して流れ出し、これにより一致線140がディスチャージされ、この一致線140のうち図6におけるインバータ310の左側の部分は論理‘0’の状態となる。この論理‘0’がインバータ310で反転され、論理‘1’の一致信号がこのインバータ310から出力され、各一致フラグレジスタ15_1,15_2,…,15_32(図5参照)に入力される。
【0014】
またメモリワードに記憶されたビットパターンとビット線23_1,23_2,…,23_32、ビットバー線26_1,26_2,…,26_32を経由して入力された検索データのビットパターンとが不一致の場合には、一致線140はプリチャージによる論理‘1’の状態にとどまり、この論理‘1’がインバータ310で反転され、論理‘0’の不一致信号が出力される。
【0015】
このように、図6に示すメモリワードは、検索に先立って一致線140がP型トランジスタ320を経由してプリチャージされ、検索により一致した場合にだけトランジスタ290_0,290_1,290_2,…,290_32を経由してディスチャージされるように構成したため、各検索毎にディスチャージされるのは、ほとんどの場合多数の一致線のうちの極く一部であって、大部分の一致線はプリチャージされた状態にとどまり、したがって次の検索に先立ってプリチャージする必要のある一致線の本数は少なくて済み、検索に伴う消費電力が低く押えられる。
【0016】
尚、図6に示す回路構成は一例に過ぎず、種々の構造のものが知られ、あるいは考えられている。
【0017】
【発明が解決しようとする課題】
例えば上記のように構成された連想メモリを用いて、通信回線等を経由してきたデータをその連想メモリに入力して検索を行なうことを考える。
図7は、通信回線等を経由して送信されてきたデータの構造図である。
例えば32ビットパラレルの通信回路を経由して各時刻 …,ti ,ti+1 ,ti+2 ,… にそれぞれ32ビットのデータ …,Di ,Di+1 ,Di+2 ,… が送信されてきたものとする。ところが、例えば図6に示すように、検索に用いる検索データREF_DATAが、32ビットパラレルのデータ …,Di ,Di+1 ,Di+2 ,… のいずれかと一致するとは限らず、例えば16ビット、8ビット等を単位としてその単位の1つ分もしくは複数分ずれている場合がある。図6では、これを一般化し、データDi の一部に検索データREF_DATAの一部のkビットが含まれ、次に入力されるデータDi+1 に検索データREF_DATAの残りの32−kビットが含まれていることを示している。
【0018】
このような場合、従来は、連想メモリとは別に、例えばマイクロコンピュータを備え、一旦、そのマイクロコンピュータに通信データ …,Di ,Di+1 ,Di+2 ,… を入力しビットシフト等を行なって、その通信データ …,Di ,Di+1 ,Di+2 ,… の中から検索データREF_DATAを抽出する操作を行なった後その検索データREF_DATAを連想メモリに入力する必要があり、システムの複雑化、検索処理速度の低下を招いていた。
【0019】
本発明は、上記事情に鑑み、上記のように順次入力されるデータ …,Di ,Di+1 ,Di+2 ,… のいずれかに検索データの全部が含まれないような状況が生じる場合であっても高速検索を可能とする連想メモリを提供することを目的とする。
【0020】
【発明を解決するための手段】
上記目的を達成する本発明の連想メモリは、複数の格納データを記憶しておき、検索データが入力され、入力された検索データに対応する格納データを検索する連想メモリにおいて、
検索データの全部、もしくは検索データの、その検索データを1ビットも含まないことが許容された所定の一部のビットパターンを含む第1のデータを構成する各ビットデータと、その検索データの上記第1のデータに含まれない残余の部分のビットパターンを含む第2のデータを構成する各ビットデータとをパラレルに入力し、これら第1および第2のデータの中から上記検索データを抽出して該検索データを構成する各ビットデータをパラレルに出力するセレクタを備えたことを特徴とする。
【0021】
ここで、上記本発明の連想メモリにおいて、上記第1および第2のデータをそれぞれ格納する第1および第2のレジスタを備え、
上記セレクタが、上記第1および第2のレジスタに格納された第1および第2のデータの中から検索データを抽出するものであってもよい。この場合に、第1の時点で入力された第1のデータを第2のレジスタに格納し、その第1の時点より遅れた第2の時点で、第2のレジスタに格納された第1のデータを第1のレジスタに転送し、その第2の時点よりも遅れた第3の時点で入力された第2のデータを第2のレジスタに格納するデータフロー制御回路を備えてもよい。
【0022】
もしくは、上記本発明の連想メモリにおいて、入力された第1のデータを格納するレジスタを備え、上記セレクタが、第1のデータよりも遅れて入力された第2のデータ、および上記レジスタに格納された第1のデータの中から検索データを抽出するものであってもよい。
また、上記本発明の連想メモリにおいて、抽出された検索データを一時的に格納しておくキーレジスタを備えることが好ましい。
【0023】
【作用】
本発明の連想メモリは、上記セレクタを備えたものであるため、第1のデータおよび第2のデータの中から瞬時にして検索データが抽出され、したがって高速検索が可能となる。
本発明の連想メモリは、第1および第2のデータをそれぞれ格納する第1および第2のレジスタを備え、それら第1および第2のレジスタに格納された第1および第2のデータをパラレルに入力して検索データを抽出するセレクタを備えてもよく、あるいは、時間的に先に入力された第1のデータを格納するレジスタのみを備え、時間的に後から入力された第2のデータは直接にセレクタに入力するようにしてもよい。
【0024】
第1および第2のデータをそれぞれ格納する第1および第2のレジスタを備えた場合、順次入力されるデータを、それら第1および第2のレジスタに交互に入力してもよいが、上記データフロー制御回路を備えた場合、交互に入力する場合と比べセレクタの構成および制御が簡単に済む。
また、連想メモリにおいて、検索データが見当たらなかった場合に、その検索データを、その連想メモリに、格納データとして追記することが要望される場合がある。そこで、上記キーレジスタを備えておくと、検索データは一時的にそのキーレジスタに格納されているため、検索データに対応する格納データが見当たらなかった場合に、そのキーレジスタに格納されている検索データを格納データとして追記することができる。
【0025】
【実施例】
以下、本発明の実施例について説明する。
図1は、本発明の連想メモリの一実施例の、順次入力されるデータの動きを説明するための模式図である。ここでは、図7に示すデータ構造に基づいて説明する。
【0026】
ここには、32ビットの第1のレジスタ31と、同じく32ビットの第2のレジスタ32と、さらに、64ビットのパラレル入力データの中から所望の32ビットのデータをパラレルに出力するセレクタ33が備えられている。
先ず時刻ti において、32ビットのデータDi が第2のレジスタ32に入力される。次に、時刻ti+1 よりも以前に、第2のレジスタ32に入力されたデータDi が第1のレジスタ31に転送される。その後、時刻ti+1 において、32ビットのデータDi+1 が第2のレジスタ32に入力される。このように、各データ …,Di ,Di+1 ,Di+2 ,… の入力と同期して、上記のようなデータフローが順次実行される。
【0027】
第1のレジスタ31にデータDi が格納され、かつ第2のレジスタ32にデータDi+1 が格納された状態において、それら第1および第2のレジスタ31,32に格納された第1および第2のデータDi ,Di+1 がパラレルにセレクタ33に入力され、このセレクタ33で第1のデータDi の上位kビットおよび第2のデータDi+1 の下位32−kビットが、検索データREF_DATAとして抽出される。この抽出された検索データREF_DATAは、図5を参照して説明したように、各メモリワード11_1,11_2…,11_nに入力され一致検索が行なわれる。
【0028】
図2は、第1および第2のレジスタ、およびセレクタの一例を示す回路図である。ここでは簡単のため、図7に示すkは、k=0(k=32と意味は同一)又はk=16のいずれかのみをとり得るものとする。
第1のレジスタ31には、32個のフリップフロップ31_1,31_2,…,31_16,31_17,31_18,…,31_32が備えられている。それらのフリップフロップ31_1,31_2,…,31_16,31_17,31_18,…,31_32のクロック入力端子には、第1のレジスタ31と第2のレジスタ32とに共通に延びる書込み信号線36が接続されており、書込み信号WR_の立ち上がりエッジでそれらのフリップフロップ31_1,31_2,…,31_16,31_17,31_18,…,31_32にデータがセットされる。
【0029】
また、第2のレジスタ32にも32個のフリップフロップ32_1,32_2,…,32_16,32_17,32_18,…,32_32が備えられている。それらのフリップフロップ32_1,32_2,…,32_16,32_17,32_18,…,32_32には、書込み信号WR_の立ち下がりエッジでデータがセットされる。
【0030】
第2のレジスタ32を構成する32個のフリップフロップ32_1,32_2,…,32_16,32_17,32_18,…,32_32の入力端子は、通信回路を経由してデータ …,Di ,Di+1 ,Di+2 ,… が順次入力される各入力端子34_1,34_2,…,34_16,34_17,34_18,…,34_32に、1ビットずつ接続されている。また第1のレジスタ31を構成する32個のフリップフロップ31_1,31_2,…,31_16,31_17,31_18…,31_32の入力端子は、第2のレジスタ32を構成する32個のフリップフロップ32_1,32_2,…,32_16,32_17,32_18,…,32_32の出力端子と1ビットずつ接続されている。
【0031】
また、第2のレジスタ32を構成する32個の各フリップフロップ32_1,32_2,…,32_16,32_17,32_18,…,32_32の出力は、セレクタ33を構成する各第1のトランジスタ33_1_1,33_1_2,…,33_1_16,33_1_17,33_1_18,…,33_1_32を介して各出力端子35_1,35_2,…,35_16,35_17,35_18,…,35_32に接続されている。これらの各第1のトランジスタ33_1_1,33_1_2,…,33_1_16,33_1_17,33_1_18,…,33_1_32のゲートは、第1制御線37に接続されており、第1制御線37には、必要に応じて、第1のセレクト信号CS1が入力される。
【0032】
また第1のレジスタ31を構成する32個のフリップフロップ31_1,31_2,…,31_16,31_17,31_18…,31_32のうちの上位側の16個のフリップフロップ31_17,31_18…,31_32の出力および、第2のレジスタ32を構成する32個のフリップフロップ32_1,32_2,…,32_16,32_17,32_18,…,32_32のうちの下位側の16個のフリップフロップ32_1,32_2,…,32_16は、それぞれ、セレクタ33を構成する各第2のトランジスタ33_2_1,33_2_2,…,33_2_16,33_2_17,33_2_18,…,33_2_32を介して各出力端子35_1,35_2,…,35_16,35_17,35_18,…,35_32に接続されている。各第2のトランジスタ34_1,34_2,…,34_16,34_17,34_18,…,34_32のゲートは第2の制御線38に接続されており、第2制御線38には、必要に応じて、第2のセレクト信号CS2が入力される。
【0033】
さらに第1のレジスタ31を構成する32個の各フリップフロップ31_1,31_2,…,31_16,31_17,31_18,…,31_32の出力は、セレクタ33を構成する各第3のトランジスタ33_3_1,33_3_2,…,33_3_16,33_3_17,33_3_18,…,33_3_32を介して各出力端子35_1,35_2,…,35_16,35_17,35_18,…,35_32に接続されている。
【0034】
以上のような構成において、書込み信号WR_が立ち下がる毎に、入力端子34_1,34_2,…,34_16,34_17,34_18,…,34_32から入力されたデータ …,Di ,Di+1 ,Di+2 ,… が第2のレジスタ32に格納され、書込み信号WR_が立ち上がる毎に、第2のレジスタ32に格納されたデータが第1のレジスタ31に転送される。
【0035】
32ビットの検索データが全て第2のレジスタ32に格納されており、その検索データを用いて検索を行なう必要があるときは第1のセレクト信号CS1が入力される。また32ビットの検索データが第1のレジスタ31と第2のレジスタ32に16ビットずつに分かれて格納され、その検索データを用いて検索を行なうときは第2のセレクト信号CS2が入力される。同様に、32ビットの検索データが全て第1のレジスタ31に格納されており、その検索データを用いて検索を行なう必要があるときは、第3のセレクト信号CS3が入力される。これにより、いずれの場合も、出力端子35_1,35_2,…,35_16,35_17,35_18,…,35_32から検索データREF_DATAが出力される。
【0036】
尚、第2のレジスタ32に32ビットの検索データが全てのビットにわたって格納された場合に、その検索データを第1のレジスタ31に転送することなく出力端子35_1,35_2,…,35_16,35_17,35_18,…,35_32から出力させる必要がないときは、第1のトランジスタ33_1_1,33_1_2,…,33_1_16,33_1_17,33_1_18,…,33_1_32は不要であることは言うまでもない。
【0037】
また、この図2は、図7に示すデータ構造において、kが、k=0又はk=16のみをとる場合の例であるが、例えばk=0,8,16,24等をとる場合や、kが任意の値をとる場合等であっても、それに合わせてセレクタ33のトランジスタの段数を設計すればよい。また、上記図1、図2に示す実施例では、入力データ …,Di ,Di+1 ,Di+2 ,… を一旦第2のレジスタ32に格納した後に第1のレジスタ31に転送するように構成されているが、順次入力されるデータ …,Di ,Di+1 ,Di+2 ,… を第1のレジスタ31と第2のレジスタ32に交互に入力してもよい。ただしそのときは、セレクタ33において、上位ビットと下位ビットとを入れ替える必要がある。
【0038】
図3は、本発明の連想メモリの他の実施例の模式図である。
ここには、通信回線を経由して入力されるデータ …,Di ,Di+1 ,Di+2 ,… を格納するレジスタ311を1個のみ備え、そのレジスタ311に、時刻ti に入力されたデータDi を格納し、その格納されたデータDi と、時刻ti+1 に入力されたデータDi+1 とをセレクタ311に入力して検索データREF_DATAを抽出する。時刻ti+1 に入力されたデータDi+1 は、次の検索データの抽出のためにレジスタ311にも入力される。
【0039】
このように、本発明では、必ずしも2つのレジスタを備える必要はない。
また、上記各実施例は検索データを分担して持つデータ(例えば上記2つのデータDi ,Di+1 )が時間がずれて順次入力される場合の例であるが、検索データを分担する2つのデータが同時に入力される場合、例えば2系統の信号経路から同時に入力された2つのデータから検索データを抽出する場合等には、上記の目的のレジスタは必ずしも1つも備える必要はない。
【0040】
尚、上記実施例は、1ワードが32ビットであるとして説明したが、本発明は8ビット、又は16ビット等任意のビット数を1ワードとするものに適用することができる。
図4は、本発明の連想メモリのもう1つの実施例の模式図である。
セレクタ33で抽出された検索データREF_DATAは、多数の格納データが格納されたメモリ11に入力され検索が実行される。
【0041】
またセレクタ33から出力された検索データREF_DATAは、キーレジスタ40にも入力され、そのキーレジスタ40に一時的に格納される。
この連想メモリには、検索の結果、多数の一致フラグレジスタ15のうちのいずれか1つにでも一致を表わす論理‘1’が格納されたか、あるいは全ての一致フラグレジスタ15に不一致を表わす論理‘0’が格納されたかを示すヒットフラグが格納されるヒットフラグレジスタ41が備えられており、検索の結果、ヒットフラグレジスタ41に、全ての一致フラグレジスタ15に不一致をあらわす論理‘0’が格納されたことを示す論理‘0’が格納されると、その旨がこの連想メモリの制御用に備えられたCPU50に通知される。CPU50は、その通知を受けて、デコーダ17に、空いているメモリワードのアドレスを入力するとともに、メモリ11にキーレジスタ40に格納されている検索データを入力し、データ書込み動作を行う。これにより、格納データとして格納されていなかった(一致が検出されなかった)検索データが、新たな格納データとしてメモリ11に書き込まれた。
【0042】
このように、本実施例の連想メモリには、セレクタ33で抽出された検索データを一時的に格納しておくキーレジスタ40が備えられているため、一致が検出されなかった場合に、そのキーレジスタ40に格納しておいた検索データを、メモリ11に、新たな検索データとして書き込むことができる。
【0043】
【発明の効果】
以上説明したように、本発明の連想メモリは、第1および第2のデータをパラレルに入力してそれら第1および第2のデータの中から検索データを抽出するセレクタを備えたため、検索データが複数ワードに跨って送信されてくる場合にも、システム構成が簡単化され、また高速検索が可能となる。
【0044】
また、本発明の連想メモリにおいて、抽出された検索データを一時的に格納しておくキーレジスタを備えておくと、一致が検出されなかった場合にその検索データを追記することができる。
【図面の簡単な説明】
【図1】本発明の連想メモリの一実施例の、順次入力されるデータの動きを説明するための模式図である。
【図2】第1および第2のレジスタ、およびセレクタの一例を示す回路図である。
【図3】本発明の連想メモリの他の実施例の模式図である。
【図4】本発明の連想メモリのもう1つの実施例の模式図である。
【図5】連想メモリの一例を表わした回路ブロック図である。
【図6】図5に示す連想メモリ中の1つのメモリワードを表わした詳細回路図である。
【図7】通信回線等を経由して送信されてきたデータの構造図である。
【符号の説明】
10 連想メモリ
11_1,11_2,…,11_n メモリワード
31 第1のレジスタ
31_1,…,31_32 フリップフロップ
32 第2のレジスタ
32_1,…,32_32 フリップフロップ
33 セレクタ
40 キーレジスタ
41 ヒットフラグレジスタ
50 CPU
33_1_1,…,33_1_32 第1のトランジスタ
33_2_1,…,33_2_32 第2のトランジスタ
33_3_1,…,33_3_32 第3のトランジスタ
311 レジスタ
331 セレクタ
Claims (5)
- 複数の格納データを記憶しておき、検索データが入力され、入力された検索データに対応する格納データを検索する連想メモリにおいて、
検索データの全部、もしくは検索データの、該検索データを1ビットも含まないことが許容された所定の一部のビットパターンを含む第1のデータを構成する各ビットデータと、該検索データの前記第1のデータに含まれない残余の部分のビットパターンを含む第2のデータを構成する各ビットデータとをパラレルに入力し、これら第1および第2のデータの中から前記検索データを抽出して該検索データを構成する各ビットデータをパラレルに出力するセレクタを備えたことを特徴とする連想メモリ。 - 前記第1および第2のデータをそれぞれ格納する第1および第2のレジスタを備え、
前記セレクタが、前記第1および第2のレジスタに格納された前記第1および第2のデータの中から前記検索データを抽出するものであることを特徴とする請求項1記載の連想メモリ。 - 第1の時点で入力された前記第1のデータを前記第2のレジスタに格納し、該第1の時点より遅れた第2の時点で、前記第2のレジスタに格納された前記第1のデータを前記第1のレジスタに転送し、該第2の時点よりも遅れた第3の時点で入力された前記第2のデータを前記第2のレジスタに格納するデータフロー制御回路を備えたことを特徴とする請求項2記載の連想メモリ。
- 入力された前記第1のデータを格納するレジスタを備え、
前記セレクタが、前記第1のデータよりも遅れて入力された前記第2のデータ、および前記レジスタに格納された前記第1のデータの中から前記検索データを抽出するものであることを特徴とする請求項1記載の連想メモリ。 - 抽出された前記検索データを一時的に格納しておくキーレジスタを備えたことを特徴とする請求項1から4のうちいずれか1項記載の連想メモリ。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP05414194A JP3573779B2 (ja) | 1994-02-10 | 1994-03-24 | 連想メモリ |
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP6-16427 | 1994-02-10 | ||
JP1642794 | 1994-02-10 | ||
JP05414194A JP3573779B2 (ja) | 1994-02-10 | 1994-03-24 | 連想メモリ |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH07272489A JPH07272489A (ja) | 1995-10-20 |
JP3573779B2 true JP3573779B2 (ja) | 2004-10-06 |
Family
ID=26352774
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP05414194A Expired - Lifetime JP3573779B2 (ja) | 1994-02-10 | 1994-03-24 | 連想メモリ |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP3573779B2 (ja) |
-
1994
- 1994-03-24 JP JP05414194A patent/JP3573779B2/ja not_active Expired - Lifetime
Also Published As
Publication number | Publication date |
---|---|
JPH07272489A (ja) | 1995-10-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US6480931B1 (en) | Content addressable storage apparatus and register mapper architecture | |
US5642322A (en) | Layout of semiconductor memory and content-addressable memory | |
US6707692B2 (en) | Content addressable memory device capable of being used as binary CAM device or as ternary CAM device and structure method therefor | |
US20090141527A1 (en) | Apparatus and method for implementing matrix-based search capability in content addressable memory devices | |
US6188629B1 (en) | Low power, static content addressable memory | |
US7525867B2 (en) | Storage circuit and method therefor | |
JP3573782B2 (ja) | 連想メモリ | |
US6766317B2 (en) | Range check cell and a method for the use thereof | |
US6618280B2 (en) | Associative memory for accomplishing longest coincidence data detection by two comparing operations | |
US6868475B2 (en) | Content addressable memory having data width extension capability | |
JPH10134584A (ja) | 連想メモリ | |
JP3573779B2 (ja) | 連想メモリ | |
US6898100B2 (en) | Semiconductor memory device used for cache memory | |
US6496398B2 (en) | Content addressable memory | |
JP3583800B2 (ja) | 連想メモリ | |
US6580628B2 (en) | Associative memory | |
JPH0612882A (ja) | 内容アドレス式メモリ | |
JP4156782B2 (ja) | 半導体装置 | |
JP3597881B2 (ja) | 連想メモリ | |
JPH07271816A (ja) | 内容アドレス式メモリ | |
JP2774929B2 (ja) | 連想メモリのレイアウト構造 | |
JP2838033B2 (ja) | 内容アドレス式メモリ | |
JP3597899B2 (ja) | 連想メモリ | |
JPH08221992A (ja) | 連想メモリ | |
JPH08124387A (ja) | 連想メモリ |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20040415 |
|
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: 20040622 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20040630 |
|
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: 20080709 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090709 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090709 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100709 Year of fee payment: 6 |