Deprecated: The each() function is deprecated. This message will be suppressed on further calls in /home/zhenxiangba/zhenxiangba.com/public_html/phproxy-improved-master/index.php on line 456
JP3766166B2 - Associative memory device - Google Patents
[go: Go Back, main page]

JP3766166B2 - Associative memory device - Google Patents

Associative memory device Download PDF

Info

Publication number
JP3766166B2
JP3766166B2 JP05503997A JP5503997A JP3766166B2 JP 3766166 B2 JP3766166 B2 JP 3766166B2 JP 05503997 A JP05503997 A JP 05503997A JP 5503997 A JP5503997 A JP 5503997A JP 3766166 B2 JP3766166 B2 JP 3766166B2
Authority
JP
Japan
Prior art keywords
data
search
buffer
memory
input
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
JP05503997A
Other languages
Japanese (ja)
Other versions
JPH10177794A (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 JP05503997A priority Critical patent/JP3766166B2/en
Publication of JPH10177794A publication Critical patent/JPH10177794A/en
Application granted granted Critical
Publication of JP3766166B2 publication Critical patent/JP3766166B2/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Landscapes

  • Data Exchanges In Wide-Area Networks (AREA)

Description

【0001】
【発明の属する技術分野】
本発明は、外部とのインタフェースを最小にしながらかつ高速動作が可能な連想メモリ装置に関するものである。
【0002】
【従来の技術】
従来からこの種の連想メモリ装置が開発されており、工業的にもLAN(Local Area Network)機器のパケットデータのポートスイッチングに使用されてきた。しかし、従来のものは、昨今のように高速データ通信の要求があまり厳しくない状況で開発されたものであるために、主にその周辺回路の設計を容易化することに主眼が置かれていた。このために、検索データ幅よりも小さい入出力ポートを1つのみ設けた構成となっていた。この従来例を以下に具体的に示す。
【0003】
図9は従来の装置のブロック図を示すものである。この従来例の連想メモリ装置は、16ビットの入出力ポート51と、このポートから入力される検索データを入力する64ビットの検索データレジスタ52と、検索動作時に検索データレジスタ52のどのビットをケア(検索対象と)するかを指定するマスクレジスタ53と、検索対象のメモリ領域50と、このメモリ領域50のどのメモリワード50aが検索動作により一致したかを示すヒットアドレス(HHA)を格納するヒットアドレスレジスタ(HHAレジスタ)54とを有し、検索データレジスタ52に入出力ポート51からあるビット数、この例の場合は48ビット、即ち3回データが入力された時(同図の▲1▼から▲3▼までのデータが入力された時)、自動的に検索動作を開始する検索制御回路55を含む連想メモリ制御回路56で構成され、これらのレジスタ等をアクセスするためにアドレスポート57が用意されている。
【0004】
また、この例ではメモリ領域50を構成するメモリワード50aは64ビットで構成され、このうち48ビットが検索対象のMACアドレスを示し、残りの16ビットにポート番号等の付属データが格納されている。このポート番号Pkというのは、そのMACアドレスをもつ装置(端末)が属しているポートを示すものである。
各通信パケットデータの先頭部に存在する宛先MACアドレスをこの連想メモリ装置に入力し、検索動作を行う。この検索動作によりヒットしたメモリワードのアドレス(ヒットアドレス(HHA))がヒットアドレスレジスタ54に格納される。また、ヒットしたメモリワード50aの付属データに格納されたポート番号Pkが読み出され、そのポート番号によりパケットデータの出力ポートが決定される。
【0005】
検索データレジスタ52、ヒットアドレスレジスタ54、マスクレジスタ53等の通常のレジスタへのアクセスは、30〜40ns程度の高速アクセスが可能である。しかし、メモリ領域50へのアクセスや検索動作は、その対象となるメモリ領域50が高密度に設計されており、高速なアクセスが困難となり、アクセススピードは80ns程度になってしまい検索処理スピードを遅くする原因となっている。
【0006】
ここで、一般的な検索動作の手順を以下に示す。
A)検索データ(48ビット)の入力
B)検索動作
C)ヒットアドレス(HHA)の読み出し
D)ヒットメモリの付属データの読み出し
ここで、上記C)の動作はパケットデータの出力ポート番号を知るだけならば不要であるが、多くの場合この16ビットだけでは十分な付属データ幅がないことが多く外部に外部RAMを使用することが多く、その場合、上記ヒットメモリのアドレス(HHA)に対応した外部RAMを定義しておいて、そのアドレス(HHA)で外部RAMからデータを読み出すことが一般的に行われる。
【0007】
このA)からD)の操作のタイミング概略を示したものが図10である。このタイミング図で、長四角1つが1サイクルの40nsを表現し、この例ではT0からT8までの検索データ処理サイクルが8サイクルであることを表わす。またT8の下から右へT0、T1と続いているのは、この次の検索データ処理サイクルが連続することを表現している。
ここで、まず検索データレジスタ52へのデータの入力はT0、T1およびT2のタイミングで各々16ビットのデータが入力される。ただし、T2のタイミングでは、このデータの入力と同時に検索動作が検索制御回路55によって実行される。この検索動作はメモリ領域50へのアクセスであり80nsの時間を要する。しかる後のT4のタイミングで、ヒットアドレスレジスタ54からの読み出し動作が開始され、40ns後のT5のタイミングで入出力ポート51から読み出される。
【0008】
また、ついでヒットワード50aの付属データPkの読み出しがT5のタイミングで開始される。このデータの読み出しはメモリ領域50へのアクセスであり、80nsの時間を要する。しかしてT7のタイミングでヒットワードの付属データ、即ちポート番号Pkが入出力ポート51から出力される。
さらに、入出力ポート51は検索データの書き込みポートと兼用されており、次の検索データの処理のための検索データの書き込みをこのT7のタイミングで行うことが出来ない。そのために、次のサイクルまでに1サイクルのダミーサイクルが必要となる。つまり、一連の検索データ処理サイクルは8サイクル(320ns)かかることになる。
【0009】
【発明が解決しようとする課題】
一方、昨今の高速データ通信では、この一連の検索データ処理サイクルを200nsに近づけ、更に200nsを切るように高速化したいという要求がある。しかしながら、この従来例に見られるように、周辺回路の設計容易化のために、検索データ幅よりも小さい入出力ポートを1つだけ備える従来の連想メモリ装置では、この要求に対し十分なパフォーマンスを提供できなくなっている。
【0010】
本発明の目的は、上記従来技術の問題点を解消し、従来の連想メモリの周辺回路の設計容易性を損なうことなく、高速でパフォーマンスのよい連想メモリ装置を提供することにある。
【0011】
【課題を解決するための手段】
上記目的を達成するために、本発明は、Wビットのデータが入力されるデータ入力ポートと、
このデータ入力ポートを介して入力されるWビットのデータが格納されるN(W<N)ビットの第1のバッファおよびM(W<M)ビットの第2のバッファと、
前記Wビットのデータを前記第1または第2のバッファに格納する入力制御手段と、
前記Wビットのデータが、前記第1のバッファにk回(k×W≦N)または前記第2のバッファにr回(r×W≦M)入力されたことを検知する検知手段と、この検知手段からの検知信号により、前記データ入力ポートを介して入力されるWビットのデータが格納されるバッファを、前記第1または第2のバッファから、前記第2または第1のバッファに切り替える切り替え手段、および、
前記第1または第2のバッファのデータを用いて、連想メモリのメモリ領域への検索動作を行う検索制御手段とを有し、
前記検索動作のサイクル時間Tsと、前記Wビットのデータを前記第1または第2のバッファへデータを書き込むサイクル時間Twとが、Tw<Tsを満足し、前記第1または第2のバッファのデータを用いて、前記連想メモリのメモリ領域への検索動作が行われている間に、前記第2または第1のバッファに次の検索動作のための前記Wビットのデータを入力することを特徴とする連想メモリ装置を提供するものである。
また、本発明は、Wビットのデータが入力されるデータ入力ポートと、
このデータ入力ポートを介して入力されるWビットのデータが格納されるN(W<N)ビットの第1のバッファおよびM(W<M)ビットの第2のバッファと、
前記Wビットのデータを前記第1または第2のバッファに格納する入力制御手段と、
前記Wビットのデータが、前記第1のバッファにk回(k×W≦N)または前記第2のバッファにr回(r×W≦M)入力されたことを検知する検知手段と、この検知手段からの検知信号により、前記データ入力ポートを介して入力されるWビットのデータが格納されるバッファを、前記第1または第2のバッファから、前記第2または第1のバッファに切り替える切り替え手段、および、
前記第1または第2のバッファのデータを用いて、連想メモリのメモリ領域への検索動作を行う検索制御手段と、
前記検索動作により得られた前記連想メモリのメモリ領域のヒットワードのアドレスおよびその内容の少なくとも一部を出力する出力ポートを有し、
前記検索動作のサイクル時間Tsと、前記Wビットのデータを前記第1または第2のバッファへデータを書き込むサイクル時間Twとが、Tw<Tsを満足し、前記第1または第2のバッファのデータを用いて、前記連想メモリのメモリ領域への検索動作が終了した後に、前記第2または第1のバッファに次の検索動作のための前記Wビットのデータを入力することを特徴とする連想メモリ装置を提供する。
【0012】
ここで、前記連想メモリのメモリ領域からのデータの読み出しサイクル時間Trが、前記書き込みサイクル時間Twよりも長く(Tw<Tr)、このメモリ領域から前記検索動作の終了と同時にデータの読み出しを開始するとともに、該読み出されたデータを一時保持する保持手段DHを有し、この保持手段DHからのデータの読み出しサイクル時間Thが前記読み出しサイクル時間Trよりも短い(Th<Tr)のが好ましい。
また、前記連想メモリのメモリ領域への検索動作終了時に、検索ヒットしたメモリワードの少なくとも一部を自動的に前記保持手段DHに保持する自動保持制御手段を有するのが好ましい。
さらに、前記連想メモリのメモリ領域への検索動作により得られる、前記第1または第2のバッファのデータに一致するデータが格納されたメモリワードのアドレスをそれぞれ格納する第1および第2のヒットアドレスレジスタを有し、前記第1または第2のバッファのデータを用いて、前記連想メモリのメモリ領域への検索動作を行った後に、前記第2または第1のヒットアドレスレジスタに格納されたアドレスのワードメモリに格納された付属データの少なくとも一部を最新の情報に更新するのが好ましい。
【0013】
【発明の実施の形態】
本発明に係る連想メモリ装置を添付の図面に示す好適実施例に基づいて以下に詳細に説明する。
【0014】
図1に本発明の連想メモリ装置の一実施例のブロック図を示す。
図1に示す連想メモリ装置は、検索の対象となる複数の64ビットメモリワード10aからなるメモリ領域10と、16ビットの検索データが入力され、また検索により一致したメモリワード10aのヒットアドレス(HHA)および付属データ(ポート番号Pk)が出力される入出力ポート11と、入出力ポート11から入力された検索データを保持する検索データレジスタA12aおよびB12bと、検索データのうち検索対象とするビット以外のビットをマスクするマスクレジスタ13と、検索データと一致(ヒット)したデータを持つメモリワード10aのヒットアドレス(HHA)を格納するヒットアドレスレジスタ(HHAレジスタ)14と、検索データレジスタA12aおよびB12bへの入出力ポート11からの検索データの入力を交互に制御するとともに、検索動作を制御する検索データレジスタ制御および検索制御回路15と、この制御回路15を含み連想メモリ装置全体の制御を行う連想メモリ制御回路16と、検索データレジスタA12a,B12b、ヒットアドレスレジスタ14および制御回路15や16などにアクセスするためのアドレスポート17と、検索データにヒットしたメモリワード10aの付属データを含む内容を一時的に保持するデータ保持回路18とを有する。
【0015】
この連想メモリ装置は、図9に示す従来例と同様に、16ビットの入出力ポート11を有し、この入出力ポート11からMACアドレスデータ(48ビット)が3回にわたって入力され、検索処理が行われる。図示例装置は、外見上(特にピンカウント)は、図9に示される従来のものと何ら変わるものではなく、この連想メモリ装置を制御するための周辺装置が必要とする制御ピン数は全く同じであり、仮にこの両者の装置が同一ボード上に実装される場合、その実装に必要とされる実装面積は、全く従来のものと同じとなるものである。
【0016】
しかし、ここでこの連想メモリ装置が図9の従来例と大きく異る点は、2つの検索データレジスタA12aおよびB12bが設けられている点である。図示例装置において、この検索データレジスタA12aおよび検索データレジスタB12bの動作方法について以下に述べる。
【0017】
まず、MACアドレスデータ(48ビット)のうちの32ビットが16ビットづつ、それぞれ検索データレジスタA12aの同図▲1▼および▲2▼のエリアに格納される。この格納はレジスタへの書き込みであり高速に(1サイクル:書き込みサイクル時間Tw=40ns(図2参照)で)行われる。
次いで、残りの16ビットが検索データレジスタA12aの同図▲3▼のエリアに書き込まれると同時に、これら検索データレジスタA12aに格納された48ビットのMACアドレスデータで、メモリ領域10への検索動作が開始される。
【0018】
この時、従来のものと同様に、マスクレジスタ13により検索データレジスタA12aのどのビットが検索対象ビットになるかが決定される。今の場合は、検索データレジスタA12aのエリア▲1▼から▲3▼の48ビットが対象ビットであり、エリア▲4▼の16ビットが非対象となり、たとえばこのマスクレジスタ13の検索データレジスタA12aのエリア▲1▼〜▲3▼に相当する48ビットに‘0’を、エリア▲4▼に相当する16ビットに‘1’を定義することでマスク処理がなされる。
【0019】
ところで、このメモリ領域10への検索動作は、高速な処理が困難であり、どうしても2サイクル(検索動作サイクル時間Ts=80ns(図2参照))かかってしまう。この2サイクルの前半の1サイクルは検索データレジスタA12aの▲3▼のエリアへのデータの書き込みであり、その間入出力ポート11は書き込みデータで専有されてしまうが、後半の1サイクルに関しては、入出力ポート11はアイドル状態である。
もともと周辺制御回路の設計の容易化とコストダウンを考えて16ビットの入出力ポート11を採用するが故に、MACアドレス(48ビット)のデータ入力に3サイクルも必要になっているわけであり、この制限下で最大のパフォーマンスを発揮させるという点では、上記入出力ポート11のアイドル状態は、極めて不経済といわざるを得ない。
【0020】
そこで、もう1つの検索データレジスタB12bを設けることで、次のMACアドレスデータ(48ビット)の先頭の16ビットを同レジスタB12bの▲1▼のエリアに書き込むことが可能となる。
このようにすることで本発明の連想メモリ装置によりMACアドレスデータを連続的に検索処理する場合、あたかもMACアドレスデータが48ビット(16ビット×3サイクル)ではなく、32ビット(16ビット×2サイクル)のようにデータ入力サイクルを1つ不用にすることが出来る。
【0021】
このタイミングチャートの一例の概略図を図2に示す。
同図において、T0およびT1のタイミングで▲2▼および▲3▼のデータが検索データレジスタA12aに入力され、検索動作がスタート(T1のタイミングで)しているが、これは、すでに1つ前のMACアドレスデータの検索データ処理サイクルで、今回のMACアドレスデータの先頭16ビットが同じレジスタA12aのエリア▲1▼(図1参照)に入力されていると仮定している。
【0022】
また、今回のMACアドレスデータの検索動作が同図T1から開始されると同時に、次のサイクルのT2で次のMACアドレスデータの先頭16ビットが検索データレジスタB12bの▲1▼のエリア(図1参照)に書き込まれる。
同様に、T6のタイミングから次のMACアドレスデータの検索処理が開始されるが、そのT6(T0)から2サイクルで残り32bitのデータがエリア▲2▼,▲3▼と順次書き込まれ、T8(T2)のタイミングでは、更に次のMACアドレスデータの先頭16ビットが検索データレジスタA12aの図1のエリア▲1▼に書き込まれる。
【0023】
これらの検索データレジスタA12aおよび検索データレジスタB12bを交互に制御するものが、図1に示す検索データレジスタ制御および検索制御回路15である。
この検索データレジスタ制御および検索制御回路15には、図示しないが少なくとも1つのデータ書き込み切り換えレジスタを持ち、検索データレジスタA12aと検索データレジスタB12bの切りかえをコントロールする。即ち、この例では、入出力ポート11から検索データレジスタA12aおよびB12bの一方への書き込み回数をカウントし、それが3回になれば、検索データレジスタA12aおよびB12bのもう一方へ書き込み先を変更するものである。
【0024】
つまり、この切り換えレジスタにより両検索データレジスタA12aおよびB12bがトグルするようになっているわけである。もちろん、このトグル制御は初期値を持ち、この連想メモリ装置をリセットすると、最初の検索データレジスタへの16ビットの書き込みは、例えば検索データレジスタA12aの方に定義される。
また、このようにトグルの初期値を持つことで、検索データレジスタA12aから検索データレジスタB12bへ、およびその逆に検索データレジスタB12bから検索データレジスタA12aへのデータ書き込みの切り換えを定義するレジスタを2つ持ち、切り換えタイミングを別々に制御することも可能である。
【0025】
さらに、今までの説明では検索データレジスタA12aまたは検索データレジスタB12bへのデータの書き込みが完了すると同時に各検索動作がスタートしていたが、この検索動作のタイミングは、別の検索動作タイミング定義レジスタを設けることもできる。その場合も、各検索データレジスタA12aまたは検索データレジスタB12bに対して1つあるいは別々に設けることができる。
この定義レジスタを設けることで、例えば上述した例では、48ビットすなわち16ビットデータが3回入力されると検索データレジスタが入れ変わるように設定されていたが、検索動作タイミング定義レジスタを例えば2回に定義しておくと、各検索データレジスタA12aまたはB12bの図1に示す▲2▼のエリアに検索データが入力された時に、検索動作をスタートさせることが可能となり、検索データの書き込み先の検索データレジスタA12aおよびB12bの切り換えと検索開始タイミングを別々に制御することが可能になる。
【0026】
このように検索データレジスタA12a、B12bを2つ設けることは、一見単純に見えるが、本発明の連想メモリ装置の特性とその使用方法を注意深く考察することではじめて成しえるものである。その根拠としては、実際このレジスタの設計そのものは決して複雑ではなく、外部仕様を全く変更することなく実現できるわけであるが、従来の連想メモリ装置構成として設けられていない点からもうかがえる。
【0027】
また、この例では、説明を単純化するために検索動作(Ts)を通常のレジスタアクセス(Tw)の2倍程度に設定しており、そのため1サイクルのみの高速化にとどまっているが、実際はレジスタアクセスに対し検索動作はかなり遅く、このように検索データレジスタを2つ設けることで次の検索データの準備を完全に済ませることが可能であり、この新しい構成を持つ連想メモリ装置の高速通信への寄与は極めて大きいといえる。
【0028】
さらに、本実施例に示されるもう1つの高速化技術について以下に説明する。これもやはり、この種の装置の構成、つまりスピードよりも高集積を第1の目的として設計された大容量メモリと高速アクセスが可能なレジスタ群の両者をもち、一連の検索動作でこの両者へのアクセスが必須であることに着目し、充分な熟考の後に考案されたものである。
【0029】
図2あるいは従来例の図10において、検索動作の後に、ヒットアドレス(HHA)レジスタ14からヒットアドレス(HHA)を読み出す。もちろんこれはレジスタへのアクセスであり高速(1サイクル)での読み出しが可能であるが、この次のヒットアドレスで指示されるヒットしたメモリワード10aの付属データの読み出しは、高密度設計されたメモリ領域10へのアクセスとなり、2サイクル(メモリ領域からのデータの読み出しサイクル時間Tr=80ns)必要となる(図2および図10参照)。
【0030】
しかしながら、ヒットアドレス(HHA)の読み出しに続いて付属データを読み出すことを手順として決めてやるならば、これは図1のブロック図に示されるように、内部的には異るエリアへのアクセスであり、HHAレジスタ14の内容を入力ポート11に読み出しながら、同時にメモリ領域10の内容を一時的に内部に新たに設けたデータ保持回路18に読み出す操作をすることは可能である。
つまり図2のT3のタイミングでHHAレジスタ14のデータ読み出しと同時にメモリ領域10のヒットワードの読み出しを開始しており、このデータをデータ保持回路18に一時的に蓄積しておく。このデータ保持回路18の読み出しはT4のタイミングで開始され、この時点ではまだ正しいヒットワードのデータは出力されないが、T5の時点までには正しい値として出力される(1サイクル:データ保持回路からのデータの読み出しサイクル時間Th=40ns(図2参照))。
【0031】
このようにすることで、従来2サイクルかかっていたヒットしたメモリワード10aのデータをあたかも1サイクルで読み出せるかのように扱うことが可能となる。
もちろんこの場合は、この動作のトリガーはHHAレジスタ14の読み出しであり、このHHAレジスタ14を読み出す時は常にこの動作であるとは限らず、かえってこの動作が次の動作を防げる可能性がある。そこでこの一連のヒットアドレス(HHA)の読み出しと、そのメモリ内容の読み出しが連続する場合は、通常のHHAレジスタ14へのアクセスと異るアドレスをアドレスポート17から入力するように定義しておく。
【0032】
このような工夫により図2に示すように、一連の検索処理サイクルは6サイクル、すなわち6×40ns=240nsと従来の320nsから25%もスピードがアップしたことになる。しかも、この高速化は、外部のインタフェースを全く変更することなく、従来の周辺回路の設計容易性やコストを全く犠牲にすることなく、得ることができるのである。
また、これらの例では簡単のためにレジスタへのアクセスを1サイクル40nsと仮定しているが、実際はもっと高速にすることが可能であり、上述のように検索データは前の検索サイクルで完了し、実際にはさらに1〜2サイクル程度の時間短縮が可能であり、これらの技術の工業的価値は極めて高い。
【0033】
さらに、この技術的価値を裏付けるものとして、従来例における高速(ハイスピード)版の説明を以下に簡単に述べる。
従来のものは、その外部インタフェースの数を少なくし、周辺制御装置の設計容易化と、コストダウンを主眼として入出力ポートを16ビットにしていた。しかしながら、検索データ処理サイクルの高速化の要求により改善が望まれており、その入出力ポートを32ビット化することが、高速化を達成すべく提案されている。
【0034】
つまり、図10で48ビットのMACアドレスデータを入力するのに3回要したサイクルを2回に減らすことが提案されているわけである。この改善によって一連の検索データ処理サイクルは、320ns(40ns×8)から280ns(40ns×7)となったが、そのために外部インタフェースピンが16本(16ビット分)も増加してしまい、周辺制御装置のコストアップにつながってしまっている。
ところが本発明の第1の実施例では、外部インタフェースピンの増加を‘0’におさえ、すなわちなくし、かつ240ns(40ns×6)を実現しており、本発明の優れている点を明確に示すものとなっている。
【0035】
さらに本発明者は、ここでもう1つの高速化への提案をするものである。というのも、上述の第2の従来例のごとく外部インタフェースを変更するならば、さらにパフォーマンスが得られることを知見したからである。
図3に、本発明の連想メモリ装置の第2の実施例のブロック図を示す。
【0036】
同図に示す連想メモリ装置が図1に示す連想メモリ装置と異る点は、データ保持回路18およびHHAレジスタ14からの出力をセレクタ38をを介して、出力ポート37から出力することが可能になっている点である。
この出力ポート37は、一例として16ビットからなり、その出力のセレクトのためのセレクト信号39が設けられている。
つまり、従来例の入出力ポート11を16ビットから32ビットへ拡張したものとほぼ同数の外部インタフェースの増加になるがパフォーマンスははるかに向上する。
【0037】
図3に示す連想メモリ装置における一連の検索データ処理サイクルのタイミングチャートを示したものが図4である。
16ビットの出力ポート37を設けるだけで、検索データの入力が極めて容易になる。すなわち、図2で示されるように、T3からT4のヒットアドレス(HHA)の読み出し時や、T4からT5のヒットワードからの付属データの読み出し時に、この出力ポート37を利用することで入出力ポート11が専有されることがなくなり、次の検索のMACアドレスデータの一部を検索データレジスタA12aまたは検索データレジスタB12bに格納することが可能となる。
【0038】
図4に示すタイミングチャートのT2およびT3のタイミングで次の検索対象となるMACアドレスデータの32ビット(16ビット×2)が検索データレジスタB12bに入力される。すなわち、次の検索は、MACアドレスデータの残りの16ビットが検索データレジスタB12bに入力されたT4(T0)のタイミングで開始されるわけである。
同様にしてこのタイミングチャートでは、すでに今回の検索のMACアドレスデータの32ビット(16ビット×2)が既に入力されているものと仮定して、T0のタイミングで最後の16ビットが検索データレジスタA12aに入力されると同時に検索動作が開始されるものとして説明する。
【0039】
T0のタイミングから検索動作がスタートし、T2でヒットアドレスの読み出しがHHAレジスタ14から行われる。この時第1の実施例と同様にヒットしたメモリワード10aの内容の読み出しも同時に行われ、T4のタイミングで出力ポート37に出力される。
また、従来例あるいは本発明の第1の実施例では、T4の後に次の検索データ処理サイクルが始まる前にダミーサイクルを挿入する必要があった。これは、ヒットワードの内容の読み出しデータと次の検索のためのデータが同一入出力ポート11でぶつかるのを防ぐためであったが、この第2の実施例のごとくヒットワードの内容と読み出す出力ポート37と、次の検索のデータを書き込む入出力ポート11が異るためにダミーサイクルが不要になる。
【0040】
以上の結果、本実施例では、一連の検索データ処理サイクルは何と4サイクルの160ns(40ns×4)となり、16ビットの入出力ポート11を有する図9に示す従来例の320nsの1/2となり、2倍高速化されている。
また、32ビットの入出力ポートを持つ従来の高速版の一連の検索データ処理サイクルの7サイクル280nsと比較しても、1.75倍改善されており、本発明の第1の実施例との6サイクルと比較しても、1.5倍のスピードアップとなっている。
また、これは高速データ通信での使用を求めるユーザの200nsを充分満足するものとなっている。
すなわち、従来デバイスの改善として32ビットの入出力ポートを持つものとほぼ同じ外部インタフェースを持ちながら、その性能で格段に優れたものとなっており、これは通信で使用される方法と、この種の装置が持つ特性を充分考慮し、創意工夫をすることで始めてなし得たものであり、その工業的価値は今後の高速データ通信にとって極めて重要なハイパフォーマンス、ローコストの連想メモリ装置となりうるものである。
【0041】
ところで、上述する実施例は、パケットデータの先頭部に存在するMACアドレスに対応するポート番号等の付属データを取得するために、一連の動作として、検索動作の後、ヒットアドレスのメモリワード10aに格納されているポート番号等の付属データを読み出す場合の一例を示したものである。
以下の実施例においては、付属データを常時最新の情報に更新するために、一連の動作として、検索動作の後、ヒットアドレスのメモリワード10aに格納されている付属データを書き替える場合の一例について説明する。
【0042】
例えば、本発明の連想メモリ装置を用いて、パケットデータの先頭部に存在するMACアドレスに対応するポート番号等の付属データを取得するスイッチング機器においては、それぞれのポートに、それぞれのパーソナルコンピュータ(以下、PCという)が接続されて使用される。
【0043】
ここで、あるPCを接続するポートをポート1からポート3に変更した場合、このPCに対応するMACアドレスのデータが格納されたワードメモリ10aの付属データに格納されたポート番号をポート1からポート3に更新しておかなければ、このPCへ転送されるパケットデータは、実際に接続されているポート3ではなく、以前に接続されていたポート1に転送されてしまう。これを防止するために、それぞれのPCが接続されているポート番号を常時最新の情報に更新する必要がある。
【0044】
また、ワードメモリ10aのワード数は、ネットワーク上の全体のPCの台数よりも少ないのが一般的であり、各メモリワード10aには、選択的に特定のPCの情報だけが格納される。連想メモリ装置の使用効率を向上するために、例えば付属データとして、使用時間を管理するためのタイムスタンプ情報を格納し、このタイムスタンプ情報を常に更新して、使用頻度の高いPCの情報だけをワードメモリ10aに登録している。従って、それぞれのワードメモリ10aのタイムスタンプ情報を常時最新の情報に更新する必要がある。
【0045】
このように、連想メモリ装置の一般的な使用条件下では、検索動作の後、ヒットアドレスのメモリワード10aからの付属データの読み出し(リード)、あるいは、ヒットアドレスのメモリワード10aへの更新された付属データの書き込み(ライト)を一連の動作として、この一連の動作が連続的に繰り返し行われる。
【0046】
ここで、図5に、本発明の連想メモリ装置におけるライト、リードおよび検索の各処理サイクルの一例の概念図を示す。同図に示すように、ヒットアドレスのメモリワード10aへの付属データのライトは、まず、L&D(Latch & Decode :ラッチおよびデコード)フェーズにおいて、外部からのアドレスをラッチし、これをデコードし、且つその時の外部からの要求がデータライトであることで、この外部からのアドレスがヒットしたメモリワードを指し、且つデータの書き込みであることを確認し、その後、EXEC(Execution :実行)フェーズにおいて、ヒットアドレスで指定されるメモリワード10aに付属データをライトすることによって行われる。この時の書き込みデータは、前述のL&Dフェーズにおいてラッチされた外部から入力されるデータが使用される。
【0047】
また、付属データのリードは、上記同様L&Dフェーズで、外部から与えられたアドレスがヒットしたメモリワードを示し、且つその時の要求がデータリードであると、EXECフェーズにおいて、ヒットアドレスで指定されるメモリワード10aから、ポート番号やタイムスタンプ情報等の付属データをリードし、WAIT(ウエイト)フェーズにおいて、ワードメモリ10aからリードされた付属データをデータ保持回路18にラッチし、OUTPUT(出力)フェーズにおいて、データ保持回路18にラッチされた付属データを出力ポート37から出力することにより行われる。
【0048】
検索は、L&Dフェーズにおいて、アドレスポート17から入力されたアドレスをラッチし、これをデコードすることで、そのアドレスが検索を示すことが解釈され、EXECフェーズにおいて、デコードされたアドレスの一部で指定される検索データレジスタA12aまたはB12bの検索データと各メモリワード10aのMACアドレスのデータとを比較し、WAITフェーズにおいて、ヒットアドレスをHHAレジスタ14にラッチし、OUTPUTフェーズにおいて、HHAレジスタ14にラッチされたヒットアドレスを出力ポート37から出力することにより行われる。
【0049】
このように連続した一連の動作をパイプライン的に行う場合の例を図6に示す。この一連の動作とは、検索データレジスタA12aの検索データを用いて検索Aを行った後、この検索Aによって出力されるヒットアドレスのワードメモリ10aに付属データのリードまたはライト、この実施例においてはリード(R/WA)を行い、次に、検索データレジスタB12bの検索データを用いて検索Bを行った後、この検索Bによって出力されるヒットアドレスのメモリワード10aに付属データのライト(R/WB)を行うことを交互に繰り返すものとする。
【0050】
図6のタイミングチャートに示すように、▲1▼番目の外部からの要求動作の検索Aでは、EXECフェーズの後、メモリ領域10からヒットアドレス(HHA)が出力される。一方、この検索動作から得られるヒットアドレス(HHA)のメモリワード10aの付属データをリードするための外部からの要求を、図6の▲2▼番目の外部からの要求動作のタイミングで入力すると、そのリード動作の実行のEXECフェーズが、▲1▼番目の検索動作のEXECフェーズの直後に実行されてしまい、WAITフェーズを経ていないので、正しいHHAアドレスによるリードが実行できない。
【0051】
そこで、この外部からのリード要求動作を図6の▲3▼番目のタイミングで入力する。こうすることで、▲1▼番目の検索動作の結果がWAITの後のタイミングで、リードのEXECフェーズが実行されるために、HHAレジスタ14にラッチされた正しいヒットアドレス(HHA)を用いてリード動作が実行される。外部からの要求動作の▲4▼番目の検索Bおよび▲6▼番目の検索Bのヒットアドレスのメモリワード10aへの付属データのライト(R/WB)についても全く同様である。しかしながら、このように正しく外部からの要求動作が実行されるには、図6の▲2▼番目や▲5▼番目のアイドル状態が必要となる。
【0052】
従って、使用効率の点から言えば、検索Aの後、直ちに付属データのリード(R/WA)を行い、続いて、検索Bの後、直ちに付属データのライト(R/WB)を行い、以後同様にして、検索および付属データのリード/ライトを繰り返し行うのが好ましいのは言うまでもないことである。しかしながら、上記理由により、検索Aと付属データのリード(R/WA)との間、および、検索Bと付属データのライト(R/WB)との間に、何も行われないアイドル状態の期間が挿入されるため、使用効率を向上させことができないという問題点が生じる。
【0053】
この問題点を解決するものが、図7に示す連想メモリ装置である。
図示例の連想メモリ装置は、本発明の連想メモリ装置の第3の実施例となるもので、同図に示す連想メモリ装置が、図3に示す連想メモリ装置と異なる点は、2つのHHAレジスタA14a,B14bが設けられている点である。これらのHHAレジスタA14a,B14bには、それぞれ検索データレジスタA12a,B12bの検索データに一致するMACアドレスデータが格納されたメモリワード10aのヒットアドレスが格納される。
【0054】
すなわち、検索データレジスタA12aの検索データを使って各メモリワード10aを検索したときには、この検索データに一致するMACアドレスのデータが格納されたメモリワード10aのアドレスが、ヒットアドレスとしてHHAレジスタA14aに格納される。また、検索データレジスタB12bの検索データを使って、各メモリワード10aを検索したときには、この検索データに一致するMACアドレスのデータが格納されたメモリワード10aのアドレスが、ヒットアドレスとしてHHAレジスタB14bに格納される。
【0055】
なお、図示していないが、ヒットフラグ、すなわち、検索動作の後、検索データレジスタA12aまたはB12bの検索データに一致するMACアドレスのデータが格納されたワードメモリ10aが存在する(ヒット)かどうかという情報を保持するヒットフラグレジスタや、マルチヒットフラグ、すなわち、検索データに一致するMACアドレスのデータが格納されたワードメモリ10aが複数存在する(マルチヒット)かどうかという情報を保持するマルチヒットフラグレジスタ等も、ヒットしたかどうか、マルチヒットかどうかを確認するために、必要に応じてそれぞれ2つ設けても良い。
【0056】
続いて、図7の連想メモリ装置における一連の検索データ処理サイクルのタイミングチャートを図8に示す。ここでは、検索データレジスタA12aを使用して検索Aを行った後、この検索Aの前に行われた検索Bによって出力されるヒットアドレスのワードメモリ10aに付属データのライト(R/WB)を行い、次に、検索データレジスタB12bを使用して検索Bを行った後、この検索Bの前に行われた検索Aによって出力されるヒットアドレスのメモリワード10aに付属データのリード(R/WA)を行うことを交互に繰り返すものとする。
【0057】
図8のタイミングチャートに示すように、▲1▼番目の検索Aでは、EXECフェーズの後、メモリ領域10からヒットアドレス(HHA)が出力され、WAITフェーズでHHAレジスタA14aにラッチされる。この検索Aに続く▲2▼番目の付属データのライト(R/WB)では、図示していないが、検索Aの直前に行われた検索Bによって、HHAレジスタB14bにラッチされたヒットアドレスをEXECフェーズで使用し、▲1▼番目の検索Aの直前に行われた検索Bのヒットアドレスのワードメモリ10aに新しい付属データをライトする。
【0058】
また、この▲2▼番目の付属データのライト(R/WB)に続いて▲3▼番目の検索Bが行われ、EXECフェーズの後、メモリ領域10からヒットアドレス(HHA)が出力され、WAITフェーズでHHAレジスタB14bにラッチされる。この▲3▼番目の検索Bに続く▲4▼番目の付属データのリード(R/WA)では、▲3▼番目の検索Bの直前に行われた▲1▼番目の検索AによってHHAレジスタA14aにラッチされたヒットアドレスをEXECフェーズで使用し、検索Aのヒットアドレスのワードメモリ10aから付属データをリードする。
【0059】
このように、図7の連想メモリ装置では、2つのHHAレジスタA14a,B14bを設け、検索Aの後、この検索Aの直前に行われた検索Bのヒットアドレスのワードメモリ10aに付属データのライト(R/WB)を行い、同じように、検索Bの後、この検索Bの直前に行われた検索Aより得られるヒットアドレスのワードメモリ10aから付属データをリード(R/WA)することができる。これにより、検索と付属データのリード/ライトとの間に、アイドル状態の期間が挿入されることなく一連の検索動作を行うことができるようになり、連想メモリ装置の使用効率を向上させることができる。図8の実施例では、▲1▼から▲4▼番までで一連の動作が終了する。一方、図6では、これが▲1▼から▲6▼番までかかってしまう。
【0060】
【発明の効果】
以上詳述したように、本発明では、従来の周辺制御回路の設計の容易性やコストダウンのために外部インタフェースの数(ピン数)の増加を抑え、かつ、通信データの処理手順とこの種の連想メモリ装置の特性を鑑み熟考のすえ、以下の4点の創意工夫をなすことで飛躍的に、その一連の検索データの処理スピードを改善することができたものである。
1)検索データレジスタを2つ設け、一方が比較的長いサイクルを要する検索動作中に、次の検索データの一部をもう一方の検索データレジスタに入力し、これを交互に制御することで一連の検索データ処理サイクルを短くする。
2)メモリ領域からのデータの読み出しを、他のレジスタ(HHAレジスタ)アクセスと同時に行い、一時的に内部保持回路に保持し、次の短いサイクルでこの内部保持回路からデータを読み出すことで見かけ上のスピード向上をはかっている。
3)また、従来装置のスピード改善版のように単に入出力ポートを拡大するのではなく、高速化のためにネックとなっている要素を分析し、16ビットの出力ポートを設けることで、ほぼ同じ外部インタフェースの増加に抑えながら、従来のものの2倍のスピードアップを達成している。
4)さらに、2つのHHAレジスタを設け、一方が検索のために使われているときに、他方にラッチされた、この検索の直前に行われた検索のヒットアドレスのワードメモリに付属データを書き込むことを交互に制御することによって、無駄なアイドル状態のサイクルが発生するのを防止している。
以上の創意工夫により、本発明の連想メモリ装置は極めてコストパフォーマンスの良い装置となっており、その工業的価値は大きいものである。
【図面の簡単な説明】
【図1】 本発明に係る連想メモリ装置の一実施例のブロック図である。
【図2】 図1に示す連想メモリ装置の検索データ処理サイクルの一例の概略タイミングチャートである。
【図3】 本発明に係る連想メモリ装置の別の実施例のブロック図である。
【図4】 図3に示す連想メモリ装置の検索データ処理サイクルの一例の概略タイミングチャートである。
【図5】 本発明の連想メモリ装置におけるライト、リードおよび検索の各処理サイクルの一例の概念図である。
【図6】 図3に示す連想メモリ装置の検索データ処理サイクルの別の例の概略タイミングチャートである。
【図7】 本発明に係る連想メモリ装置のさらに別の実施例のブロック図である。
【図8】 図7に示す連想メモリ装置の検索データ処理サイクルの一例の概略タイミングチャートである。
【図9】 従来の連想メモリ装置のブロック図である。
【図10】 図9に示す連想メモリ装置の検索動作のタイミングチャートである。
【符号の説明】
10 メモリ領域
10a メモリワード
11 入出力ポート
12a,12b 検索データレジスタ(A,B)
13 マスクレジスタ
14,14a,14b ヒットアドレス(HHA)レジスタ
15,35 検索データレジスタ制御および検索制御回路
16,36 連想メモリ制御回路
17 アドレスポート
18 データ保持回路
37 出力ポート
38 セレクタ
39 セレクト信号
[0001]
BACKGROUND OF THE INVENTION
The present invention relates to an associative memory device capable of high-speed operation while minimizing the interface with the outside.
[0002]
[Prior art]
Conventionally, this type of associative memory device has been developed and used industrially for port switching of packet data of LAN (Local Area Network) devices. However, since the conventional one was developed in a situation where the demand for high-speed data communication is not so strict as it is nowadays, the focus was mainly on facilitating the design of the peripheral circuit. . Therefore, only one input / output port smaller than the search data width is provided. This conventional example is specifically shown below.
[0003]
FIG. 9 shows a block diagram of a conventional apparatus. The conventional associative memory device includes a 16-bit input / output port 51, a 64-bit search data register 52 for inputting search data input from this port, and which bits of the search data register 52 are cared for during a search operation. A hit register (HHA) for storing a mask register 53 for specifying (to be searched), a memory area 50 to be searched, and a memory address 50a in the memory area 50 indicating which memory word 50a is matched by the search operation The address register (HHA register) 54 is provided, and when the search data register 52 is input with a certain number of bits from the input / output port 51, in this case 48 bits, that is, when data is input three times ((1) in the figure) Associative memory control including a search control circuit 55 that automatically starts a search operation (when data from (3) to (3) are input) Consists of the road 56, address port 57 to access these registers, etc. are prepared.
[0004]
In this example, the memory word 50a constituting the memory area 50 is composed of 64 bits, of which 48 bits indicate the MAC address to be searched, and the remaining 16 bits store auxiliary data such as a port number. . The port number Pk indicates a port to which a device (terminal) having the MAC address belongs.
A destination MAC address existing at the head of each communication packet data is input to this associative memory device, and a search operation is performed. The address of the memory word hit by this search operation (hit address (HHA)) is stored in the hit address register 54. Further, the port number Pk stored in the attached data of the memory word 50a hit is read, and the output port of the packet data is determined by the port number.
[0005]
Access to ordinary registers such as the search data register 52, the hit address register 54, and the mask register 53 can be performed at a high speed of about 30 to 40 ns. However, the access and search operations to the memory area 50 are designed with a high density as the target memory area 50, making high-speed access difficult, and the access speed becomes about 80 ns, slowing down the search processing speed. It is a cause.
[0006]
  Here, a general search operation procedure is shown below.
    A) Input of search data (48 bits)
    B) Search operation
    C) Reading the hit address (HHA)
    D) Hit memoryAttachedReading data
  Here, the operation C) is not necessary if only the output port number of the packet data is known. In many cases, however, the 16 bits alone often does not have a sufficient attached data width, and an external RAM is used outside. In many cases, in this case, an external RAM corresponding to the address (HHA) of the hit memory is defined, and data is read from the external RAM at the address (HHA).
[0007]
FIG. 10 shows an outline of the timing of operations A) to D). In this timing diagram, one long square represents one cycle of 40 ns, and in this example, the search data processing cycle from T0 to T8 is 8 cycles. Further, the fact that T0 and T1 continue from the bottom to the right of T8 represents that the next search data processing cycle continues.
Here, first, data of 16 bits is input to the search data register 52 at timings T0, T1, and T2. However, at the timing of T2, the search control circuit 55 executes the search operation simultaneously with the input of this data. This search operation is an access to the memory area 50 and requires 80 ns. Thereafter, the read operation from the hit address register 54 is started at the timing of T4, and read from the input / output port 51 at the timing of T5 after 40 ns.
[0008]
  Next, hit word 50aAttachedReading of the data Pk is started at the timing of T5. This reading of data is an access to the memory area 50 and requires 80 ns. At the timing of T7, hit wordAttachedData, that is, the port number Pk is output from the input / output port 51.
  Further, the input / output port 51 is also used as a search data write port, and the search data cannot be written at the timing T7 for processing the next search data. Therefore, one dummy cycle is required until the next cycle. That is, a series of search data processing cycles takes 8 cycles (320 ns).
[0009]
[Problems to be solved by the invention]
On the other hand, in recent high-speed data communication, there is a demand for speeding up this series of search data processing cycles to be closer to 200 ns and further to be shorter than 200 ns. However, as can be seen in this conventional example, the conventional associative memory device having only one input / output port smaller than the search data width has a sufficient performance for this requirement in order to facilitate the design of the peripheral circuit. It can no longer be provided.
[0010]
SUMMARY OF THE INVENTION An object of the present invention is to provide an associative memory device that solves the above-described problems of the prior art and that has high performance and high performance without impairing the design of peripheral circuits of the conventional associative memory.
[0011]
[Means for Solving the Problems]
  To achieve the above object, the present invention provides a data input port to which W-bit data is input,
  An N (W <N) -bit first buffer in which W-bit data input via the data input port is stored, and M(W <M)A second buffer of bits;
  Input control means for storing the W-bit data in the first or second buffer;
  Detecting means for detecting that the W-bit data is input k times (k × W ≦ N) or r times (r × W ≦ M) to the second buffer; Switching to switch the buffer storing W-bit data input via the data input port from the first or second buffer to the second or first buffer according to a detection signal from the detection means Means and
  Search control means for performing a search operation to the memory area of the associative memory using the data of the first or second buffer;
The search operation cycle time Ts and the cycle time Tw for writing the W-bit data to the first or second buffer satisfy Tw <Ts.While the search operation to the memory area of the associative memory is being performed using the data of the first or second buffer, the W or W for the next search operation is performed in the second or first buffer. An associative memory device characterized by inputting bit data is provided.
The present invention also provides a data input port to which W-bit data is input;
An N (W <N) bit first buffer and an M (W <M) bit second buffer in which W bit data input via the data input port is stored;
Input control means for storing the W-bit data in the first or second buffer;
Detecting means for detecting that the W-bit data is input k times (k × W ≦ N) or r times (r × W ≦ M) to the second buffer; Switching to switch the buffer storing W-bit data input via the data input port from the first or second buffer to the second or first buffer according to a detection signal from the detection means Means and
Search control means for performing a search operation to the memory area of the associative memory using the data of the first or second buffer;
An output port that outputs an address of a hit word in the memory area of the associative memory obtained by the search operation and at least a part of the contents thereof;
The cycle time Ts of the search operation and the cycle time Tw of writing the W-bit data to the first or second buffer satisfy Tw <Ts, and the data of the first or second buffer And after the search operation to the memory area of the associative memory is completed, the W bit data for the next search operation is input to the second or first buffer. Providing equipment.
[0012]
  Here, the read cycle time Tr of data from the memory area of the associative memory is thewritingLonger than cycle time Tw (Tw <Tr), from this memory areaData at the same time as the search operation is completedReadingStart reading andA holding means DH for temporarily holding the read data, and a data read cycle from the holding means DHtimeTh is the abovereadingIt is preferably shorter than the cycle time Tr (Th <Tr).
  Also, a search operation to the memory area of the associative memoryFinishSometimes it is preferable to have an automatic holding control means for automatically holding at least a part of the memory word hit by the search in the holding means DH.
  further,First and second hit address registers respectively storing addresses of memory words in which data matching data in the first or second buffer obtained by a search operation to the memory area of the associative memory is stored A word memory of an address stored in the second or first hit address register after performing a search operation to the memory area of the associative memory using the data of the first or second buffer Update at least part of the attached data stored inIs preferred.
[0013]
DETAILED DESCRIPTION OF THE INVENTION
A content addressable memory device according to the present invention will be described in detail below based on a preferred embodiment shown in the accompanying drawings.
[0014]
  FIG. 1 shows a block diagram of an embodiment of an associative memory device of the present invention.
  The associative memory device shown in FIG. 1 has a memory area 10 consisting of a plurality of 64-bit memory words 10a to be searched, and 16-bit search data, and the hit address (HHA) of the memory word 10a matched by the search. )andAttachedInput / output port 11 to which data (port number Pk) is output, search data registers A12a and B12b that hold search data input from input / output port 11, and bits other than the search target bits in the search data Mask register 13 for masking, hit address register (HHA register) 14 for storing the hit address (HHA) of the memory word 10a having data that matches (hit) the search data, and input / output to the search data registers A12a and B12b The search data register control and search control circuit 15 that controls the search operation and the associative memory control circuit 16 that includes the control circuit 15 and controls the entire associative memory device are controlled alternately. And search data registers A12a, B12b, And Tsu DOO address register 14 and control circuit 15 and the address port 17 for accessing the like 16, hit in the search data memory word 10aAttachedAnd a data holding circuit 18 for temporarily holding contents including data.
[0015]
This associative memory device has a 16-bit input / output port 11 as in the conventional example shown in FIG. 9, and MAC address data (48 bits) is input from this input / output port 11 three times. Done. In the illustrated example, the appearance (particularly pin count) is not different from the conventional one shown in FIG. 9, and the number of control pins required by the peripheral device for controlling this associative memory device is exactly the same. If these two devices are mounted on the same board, the mounting area required for the mounting is completely the same as the conventional one.
[0016]
However, the content of this associative memory device is greatly different from the conventional example of FIG. 9 in that two search data registers A12a and B12b are provided. An operation method of the search data register A 12a and the search data register B 12b in the illustrated example apparatus will be described below.
[0017]
First, 32 bits of the MAC address data (48 bits) are stored 16 bits at a time in the areas (1) and (2) of the search data register A12a. This storage is writing to the register and is performed at high speed (1 cycle: write cycle time Tw = 40 ns (see FIG. 2)).
Next, the remaining 16 bits are written into the area (3) of the search data register A12a. At the same time, the search operation to the memory area 10 is performed with the 48-bit MAC address data stored in the search data register A12a. Be started.
[0018]
At this time, like the conventional one, the mask register 13 determines which bit of the search data register A 12a is the search target bit. In this case, 48 bits from the areas (1) to (3) of the search data register A12a are target bits, and 16 bits from the area (4) are non-target. For example, the search data register A12a of the mask register 13 Masking is performed by defining “0” in 48 bits corresponding to the areas (1) to (3) and defining “1” in 16 bits corresponding to the area (4).
[0019]
By the way, the search operation to the memory area 10 is difficult to perform at high speed, and it necessarily takes two cycles (search operation cycle time Ts = 80 ns (see FIG. 2)). The first half of these two cycles is the writing of data to the area (3) of the search data register A12a. During this time, the input / output port 11 is occupied by the write data. The output port 11 is in an idle state.
Originally, the 16-bit input / output port 11 is adopted in consideration of the design of the peripheral control circuit and cost reduction, so 3 cycles are required for data input of the MAC address (48 bits). From the standpoint of maximizing performance under this limitation, the idle state of the input / output port 11 is extremely uneconomical.
[0020]
Therefore, by providing another search data register B12b, it is possible to write the first 16 bits of the next MAC address data (48 bits) in the area (1) of the register B12b.
In this way, when MAC address data is continuously retrieved by the associative memory device of the present invention, the MAC address data is not 48 bits (16 bits × 3 cycles), but 32 bits (16 bits × 2 cycles). 1), one data input cycle can be made unnecessary.
[0021]
A schematic diagram of an example of this timing chart is shown in FIG.
In the figure, the data (2) and (3) are input to the search data register A12a at the timings of T0 and T1, and the search operation is started (at the timing of T1). It is assumed that the first 16 bits of the current MAC address data are input to the area (1) (see FIG. 1) of the same register A12a in the MAC address data search data processing cycle.
[0022]
At the same time as the search operation of the MAC address data this time is started from T1 in the figure, at the next cycle T2, the first 16 bits of the next MAC address data are the area (1) of the search data register B12b (FIG. 1). Reference).
Similarly, the search process for the next MAC address data is started from the timing of T6, but the remaining 32 bits of data are sequentially written as areas (2) and (3) in two cycles from T6 (T0), and T8 ( At the timing of T2), the first 16 bits of the next MAC address data are further written in the area (1) in FIG. 1 of the search data register A12a.
[0023]
The search data register control and search control circuit 15 shown in FIG. 1 controls the search data register A 12a and the search data register B 12b alternately.
The search data register control and search control circuit 15 has at least one data write switching register (not shown), and controls switching between the search data register A12a and the search data register B12b. That is, in this example, the number of times of writing from the input / output port 11 to one of the search data registers A12a and B12b is counted, and when it reaches 3, the write destination is changed to the other of the search data registers A12a and B12b. Is.
[0024]
That is, both search data registers A12a and B12b are toggled by this switching register. Of course, this toggle control has an initial value, and when this associative memory device is reset, writing of 16 bits to the first search data register is defined in the search data register A12a, for example.
In addition, by having the initial value of the toggle in this way, two registers that define switching of data writing from the search data register A12a to the search data register B12b and vice versa are searched. It is also possible to control the switching timing separately.
[0025]
Further, in the description so far, each search operation has been started simultaneously with the completion of the writing of data to the search data register A12a or the search data register B12b. However, the timing of this search operation is determined by another search operation timing definition register. It can also be provided. In this case as well, one search data register A12a or one search data register B12b can be provided or separately.
By providing this definition register, for example, in the above-described example, the search data register is set to be interchanged when 48 bits, that is, 16-bit data is input three times. However, the search operation timing definition register is set twice, for example. If the search data is input to the area (2) shown in FIG. 1 of each search data register A12a or B12b, the search operation can be started, and the search destination of the search data is searched. The switching of the data registers A12a and B12b and the search start timing can be controlled separately.
[0026]
Providing the two search data registers A12a and B12b in this way seems simple at first glance, but can be achieved only by carefully considering the characteristics of the associative memory device of the present invention and how to use it. The reason for this is that the design of the register itself is never complicated and can be realized without changing the external specifications at all. However, it can be seen that it is not provided as a conventional associative memory device configuration.
[0027]
In this example, in order to simplify the explanation, the search operation (Ts) is set to about twice the normal register access (Tw). Therefore, only one cycle speed is increased. The search operation for register access is considerably slow. By providing two search data registers in this way, it is possible to completely prepare for the next search data, and to the high-speed communication of the associative memory device having this new configuration. The contribution of can be said to be extremely large.
[0028]
Further, another speed-up technique shown in this embodiment will be described below. This also has a structure of this type of device, that is, both a large-capacity memory designed for the first purpose of higher integration than speed and a register group that can be accessed at high speed. Focusing on the fact that access is essential, it was devised after careful consideration.
[0029]
  In FIG. 2 or FIG. 10 of the conventional example, the hit address (HHA) is read from the hit address (HHA) register 14 after the search operation. Of course, this is an access to the register and can be read at a high speed (one cycle), but the hit memory word 10a indicated by the next hit addressAttachedData read requires access to the memory area 10 designed with high density, and requires two cycles (data read cycle time Tr = 80 ns from the memory area) (see FIGS. 2 and 10).
[0030]
  However, following the reading of the hit address (HHA)AttachedIf it is decided to read data as a procedure, this is an access to a different area internally as shown in the block diagram of FIG. 1, and the contents of the HHA register 14 are read to the input port 11. However, it is possible to simultaneously read the contents of the memory area 10 to the data holding circuit 18 newly provided inside.
  That is, reading of the hit word in the memory area 10 is started simultaneously with the data reading of the HHA register 14 at the timing T3 in FIG. 2 and this data is temporarily stored in the data holding circuit 18. Reading of the data holding circuit 18 is started at the timing of T4. At this time, the correct hit word data is not yet output, but is output as a correct value by the time of T5 (1 cycle: from the data holding circuit) Data read cycle time Th = 40 ns (see FIG. 2)).
[0031]
By doing so, it becomes possible to treat the data of the hit memory word 10a, which conventionally takes two cycles, as if it can be read in one cycle.
Of course, in this case, the trigger of this operation is the reading of the HHA register 14, and this operation is not always performed when the HHA register 14 is read, and this operation may prevent the next operation. Therefore, when reading of a series of hit addresses (HHA) and reading of the memory contents are continued, an address different from the normal access to the HHA register 14 is defined to be input from the address port 17.
[0032]
As shown in FIG. 2, a series of search processing cycles is 6 cycles, that is, 6 × 40 ns = 240 ns, which is 25% faster than the conventional 320 ns. Moreover, this high speed can be obtained without changing the external interface at all and without sacrificing the design ease and cost of the conventional peripheral circuit.
In these examples, it is assumed that the access to the register is 40 ns for one cycle for the sake of simplicity. However, it is actually possible to make the access faster, and as described above, the search data is completed in the previous search cycle. Actually, it is possible to further shorten the time by about 1 to 2 cycles, and the industrial value of these techniques is extremely high.
[0033]
Further, in order to support this technical value, the description of the high-speed version in the conventional example will be briefly described below.
In the conventional one, the number of external interfaces has been reduced, and the input / output ports have been made 16 bits mainly for the purpose of facilitating the design of the peripheral control device and cost reduction. However, improvement is desired due to a demand for speeding up the search data processing cycle, and it has been proposed to increase the speed of the input / output port to 32 bits.
[0034]
That is, in FIG. 10, it is proposed to reduce the number of cycles required three times to input 48-bit MAC address data to two. As a result of this improvement, the series of search data processing cycles has been changed from 320 ns (40 ns × 8) to 280 ns (40 ns × 7). This has led to increased equipment costs.
However, in the first embodiment of the present invention, the increase in the number of external interface pins is suppressed to “0”, that is, 240 ns (40 ns × 6) is realized, clearly showing the superiority of the present invention. It has become a thing.
[0035]
Furthermore, the present inventor proposes another speedup here. This is because it has been found that if the external interface is changed as in the second conventional example, further performance can be obtained.
FIG. 3 shows a block diagram of a second embodiment of the content addressable memory device of the present invention.
[0036]
1 is different from the associative memory device shown in FIG. 1 in that the output from the data holding circuit 18 and the HHA register 14 can be output from the output port 37 via the selector 38. It is a point.
The output port 37 has 16 bits as an example, and a select signal 39 for selecting the output is provided.
In other words, the number of external interfaces is almost the same as that of the conventional input / output port 11 expanded from 16 bits to 32 bits, but the performance is greatly improved.
[0037]
  FIG. 4 shows a timing chart of a series of search data processing cycles in the associative memory device shown in FIG.
  By simply providing a 16-bit output port 37, it becomes extremely easy to input search data. That is, as shown in FIG. 2, when reading the hit address (HHA) from T3 to T4, or from the hit word from T4 to T5AttachedBy using this output port 37 when reading data, the input / output port 11 is not occupied, and a part of the MAC address data for the next search is stored in the search data register A12a or the search data register B12b. Is possible.
[0038]
At the timings T2 and T3 in the timing chart shown in FIG. 4, 32 bits (16 bits × 2) of the MAC address data to be searched next are input to the search data register B12b. That is, the next search is started at the timing of T4 (T0) when the remaining 16 bits of the MAC address data are input to the search data register B12b.
Similarly, in this timing chart, assuming that 32 bits (16 bits × 2) of the MAC address data of the current search have already been input, the last 16 bits at the timing of T0 are the search data register A12a. In the following description, it is assumed that the search operation starts at the same time as the input to.
[0039]
The search operation starts from the timing T0, and the hit address is read from the HHA register 14 at T2. At this time, the contents of the hit memory word 10a are also read at the same time as in the first embodiment and output to the output port 37 at the timing of T4.
Further, in the conventional example or the first embodiment of the present invention, it is necessary to insert a dummy cycle before the next search data processing cycle starts after T4. This was to prevent the read data of the hit word content and the data for the next search from colliding at the same input / output port 11, but the output of the hit word and the output to be read as in the second embodiment. Since the port 37 is different from the input / output port 11 to which the next search data is written, a dummy cycle becomes unnecessary.
[0040]
As a result, in this embodiment, the series of search data processing cycle is 160 ns (40 ns × 4) of 4 cycles, which is 1/2 of 320 ns of the conventional example shown in FIG. Two times faster.
In addition, compared with 7 cycles 280 ns of a series of search data processing cycles of the conventional high-speed version having a 32-bit input / output port, it is improved 1.75 times, which is different from the first embodiment of the present invention. Compared to 6 cycles, it is 1.5 times faster.
In addition, this sufficiently satisfies the user's 200 ns demanding use in high-speed data communication.
In other words, as an improvement of the conventional device, while having almost the same external interface as that having a 32-bit input / output port, it is remarkably superior in its performance. It was possible for the first time by taking into account the unique characteristics of the device, and creativity, and its industrial value could be a high-performance, low-cost associative memory device that is extremely important for future high-speed data communications. .
[0041]
By the way, in the above-described embodiment, in order to acquire the attached data such as the port number corresponding to the MAC address existing at the head of the packet data, as a series of operations, after the search operation, the memory word 10a of the hit address is stored. An example in the case of reading attached data such as a stored port number is shown.
In the following embodiment, an example of rewriting the attached data stored in the memory word 10a of the hit address after the search operation as a series of operations in order to constantly update the attached data to the latest information. explain.
[0042]
For example, in a switching device that acquires attached data such as a port number corresponding to a MAC address existing at the beginning of packet data using the content addressable memory device of the present invention, each port is connected to a personal computer (hereinafter referred to as a personal computer). And PC) are connected and used.
[0043]
Here, when the port for connecting a PC is changed from port 1 to port 3, the port number stored in the attached data of the word memory 10a storing the data of the MAC address corresponding to this PC is changed from port 1 to port. If it is not updated to 3, the packet data transferred to this PC will be transferred to the port 1 connected before, not to the port 3 actually connected. In order to prevent this, it is necessary to constantly update the port number to which each PC is connected to the latest information.
[0044]
The number of words in the word memory 10a is generally smaller than the total number of PCs on the network, and each memory word 10a selectively stores only specific PC information. In order to improve the use efficiency of the associative memory device, for example, time stamp information for managing the use time is stored as attached data, and this time stamp information is constantly updated so that only frequently used PC information is stored. It is registered in the word memory 10a. Therefore, it is necessary to constantly update the time stamp information of each word memory 10a to the latest information.
[0045]
As described above, under the general use condition of the associative memory device, after the search operation, the attached data is read (read) from the memory word 10a at the hit address or updated to the memory word 10a at the hit address. The series of operations is continuously repeated by writing the attached data (writing) as a series of operations.
[0046]
Here, FIG. 5 shows a conceptual diagram of an example of each processing cycle of write, read, and search in the content addressable memory device of the present invention. As shown in the figure, the writing of attached data to the memory word 10a of the hit address is performed by first latching an address from the outside in the L & D (Latch & Decode) phase, decoding it, and When the external request at that time is data write, this external address points to the hit memory word and confirms that it is a data write, and then hit in the EXEC (Execution) phase. This is done by writing the attached data to the memory word 10a specified by the address. As the write data at this time, externally input data latched in the aforementioned L & D phase is used.
[0047]
In addition, the read of the attached data indicates the memory word in which the address given from the outside is hit in the L & D phase, and if the request at that time is the data read, the memory specified by the hit address in the EXEC phase Attached data such as port number and time stamp information is read from the word 10a, and in the WAIT (wait) phase, the attached data read from the word memory 10a is latched in the data holding circuit 18, and in the OUTPUT (output) phase, This is done by outputting the attached data latched in the data holding circuit 18 from the output port 37.
[0048]
In the L & D phase, the address input from the address port 17 is latched in the L & D phase, and this is decoded to interpret that the address indicates the search. In the EXEC phase, a part of the decoded address is specified. The search data in the search data register A12a or B12b and the MAC address data of each memory word 10a are compared, the hit address is latched in the HHA register 14 in the WAIT phase, and is latched in the HHA register 14 in the OUTPUT phase. The hit address is output from the output port 37.
[0049]
FIG. 6 shows an example in which such a series of continuous operations are performed in a pipeline manner. This series of operations means that after the search A is performed using the search data of the search data register A12a, the attached data is read or written to the word memory 10a of the hit address output by the search A, in this embodiment. A read (R / WA) is performed, and then a search B is performed using the search data in the search data register B12b, and then the attached data is written to the memory word 10a of the hit address output by the search B (R / WA). WB) is repeated alternately.
[0050]
As shown in the timing chart of FIG. 6, in the (1) th request operation search A from the outside, a hit address (HHA) is output from the memory area 10 after the EXEC phase. On the other hand, when an external request for reading the data attached to the memory word 10a of the hit address (HHA) obtained from this search operation is input at the timing of the second external request operation in FIG. The EXEC phase of the execution of the read operation is executed immediately after the EXEC phase of the (1) -th search operation, and since the WAIT phase has not passed, the read with the correct HHA address cannot be executed.
[0051]
Therefore, this external read request operation is input at the (3) th timing in FIG. By doing so, the result of the first search operation is executed at the timing after WAIT, and the read EXEC phase is executed, so that the read is performed using the correct hit address (HHA) latched in the HHA register 14. The action is executed. The same applies to the writing (R / WB) of the attached data to the memory word 10a of the hit address of the (4) th search B and (6) th search B of the request operation from the outside. However, in order to correctly execute the request operation from the outside in this way, the (2) th and (5) th idle states in FIG. 6 are required.
[0052]
Therefore, in terms of usage efficiency, after the search A, the attached data is read (R / WA) immediately, and after the search B, the attached data is immediately written (R / WB). Similarly, it goes without saying that it is preferable to repeatedly perform retrieval and reading / writing of attached data. However, for the above reason, the idle period during which nothing is performed between the search A and the read of the attached data (R / WA) and between the search B and the write of the attached data (R / WB). This causes a problem that the use efficiency cannot be improved.
[0053]
The associative memory device shown in FIG. 7 solves this problem.
The content addressable memory device of the illustrated example is a third embodiment of the content addressable memory device of the present invention. The content addressable memory device shown in the figure is different from the content addressable memory device shown in FIG. 3 with two HHA registers. A14a and B14b are provided. These HHA registers A14a and B14b store hit addresses of the memory word 10a in which MAC address data matching the search data of the search data registers A12a and B12b is stored.
[0054]
That is, when each memory word 10a is searched using the search data of the search data register A12a, the address of the memory word 10a in which the data of the MAC address matching the search data is stored in the HHA register A14a as a hit address. Is done. When each memory word 10a is searched using the search data in the search data register B12b, the address of the memory word 10a in which the data of the MAC address that matches the search data is stored in the HHA register B14b as a hit address. Stored.
[0055]
Although not shown, it is a hit flag, that is, whether or not there is a word memory 10a in which data of a MAC address that matches the search data in the search data register A12a or B12b exists after the search operation (hit). Hit flag register for holding information, and multi-hit flag, that is, a multi-hit flag register for holding information indicating whether or not there are a plurality of word memories 10a (multi-hit) storing MAC address data matching the search data In order to confirm whether or not a hit has occurred, it is also possible to provide two as necessary.
[0056]
Next, FIG. 8 shows a timing chart of a series of search data processing cycles in the associative memory device of FIG. Here, after the search A is performed using the search data register A12a, the attached data is written (R / WB) to the word memory 10a of the hit address output by the search B performed before the search A. Next, after the search B is performed using the search data register B12b, the attached data is read into the memory word 10a of the hit address output by the search A performed before the search B (R / WA). ) Shall be repeated alternately.
[0057]
As shown in the timing chart of FIG. 8, in the first search A, after the EXEC phase, the hit address (HHA) is output from the memory area 10 and latched in the HHA register A 14a in the WAIT phase. In the (2) th append data write (R / WB) following the search A, although not shown, the hit address latched in the HHA register B14b by the search B performed immediately before the search A is executed. Used in the phase, new attached data is written to the word memory 10a of the hit address of the search B performed immediately before the first search A.
[0058]
In addition, the (3) th search B is performed following the (2) th append data write (R / WB), and after the EXEC phase, a hit address (HHA) is output from the memory area 10 and WAIT In the phase, it is latched in the HHA register B14b. In the read (R / WA) of the (4) th attached data following the (3) th search B, the HHA register A14a is obtained by the (1) th search A performed immediately before the (3) th search B. Is used in the EXEC phase, and the attached data is read from the word memory 10a of the hit address of the search A.
[0059]
As described above, the associative memory device of FIG. 7 is provided with two HHA registers A14a and B14b. After the search A, the write of attached data to the word memory 10a of the hit address of the search B performed immediately before the search A is performed. (R / WB) is performed, and similarly, after the search B, the attached data is read (R / WA) from the word memory 10a of the hit address obtained from the search A performed immediately before the search B. it can. As a result, a series of search operations can be performed without inserting an idle period between the search and the read / write of the attached data, and the use efficiency of the associative memory device can be improved. it can. In the embodiment of FIG. 8, the series of operations is completed from (1) to (4). On the other hand, in FIG. 6, this takes from (1) to (6).
[0060]
【The invention's effect】
As described above in detail, the present invention suppresses an increase in the number of external interfaces (number of pins) for ease of design of the conventional peripheral control circuit and cost reduction, and the communication data processing procedure and this type In consideration of the characteristics of the associative memory device, the following four points of ingenuity were drastically improved, and the processing speed of the series of search data could be dramatically improved.
1) Two search data registers are provided, and during a search operation that requires a relatively long cycle, a part of the next search data is input to the other search data register, and this is controlled alternately. Shorten the search data processing cycle.
2) Data is read from the memory area simultaneously with other register (HHA register) access, temporarily held in the internal holding circuit, and apparently read out from this internal holding circuit in the next short cycle We are trying to improve the speed.
3) Also, instead of simply expanding the input / output ports as in the speed-improved version of the conventional device, the elements that are the bottleneck for speeding up are analyzed and a 16-bit output port is provided. While suppressing the increase in the number of external interfaces, the speed is doubled compared to the conventional one.
4) Further, two HHA registers are provided, and when one is used for searching, the attached data is written in the word memory of the hit address of the search performed immediately before this search, which is latched on the other. By alternately controlling this, it is possible to prevent useless idle cycles.
Due to the above inventive idea, the associative memory device of the present invention has a very good cost performance, and its industrial value is great.
[Brief description of the drawings]
FIG. 1 is a block diagram of an embodiment of an associative memory device according to the present invention.
2 is a schematic timing chart of an example of a search data processing cycle of the associative memory device shown in FIG. 1; FIG.
FIG. 3 is a block diagram of another embodiment of an associative memory device according to the present invention;
4 is a schematic timing chart of an example of a search data processing cycle of the associative memory device shown in FIG. 3;
FIG. 5 is a conceptual diagram illustrating an example of processing cycles of write, read, and search in the content addressable memory device of the present invention.
6 is a schematic timing chart of another example of the search data processing cycle of the associative memory device shown in FIG. 3; FIG.
FIG. 7 is a block diagram of still another embodiment of an associative memory device according to the present invention.
8 is a schematic timing chart of an example of a search data processing cycle of the associative memory device shown in FIG. 7;
FIG. 9 is a block diagram of a conventional content addressable memory device.
10 is a timing chart of the search operation of the associative memory device shown in FIG. 9. FIG.
[Explanation of symbols]
10 Memory area
10a memory word
11 I / O ports
12a, 12b Search data register (A, B)
13 Mask register
14, 14a, 14b Hit address (HHA) register
15, 35 Search data register control and search control circuit
16, 36 associative memory control circuit
17 Address port
18 Data holding circuit
37 output port
38 selector
39 Select signal

Claims (5)

Wビットのデータが入力されるデータ入力ポートと、
このデータ入力ポートを介して入力されるWビットのデータが格納されるN(W<N)ビットの第1のバッファおよびM(W<M)ビットの第2のバッファと、
前記Wビットのデータを前記第1または第2のバッファに格納する入力制御手段と、
前記Wビットのデータが、前記第1のバッファにk回(k×W≦N)または前記第2のバッファにr回(r×W≦M)入力されたことを検知する検知手段と、この検知手段からの検知信号により、前記データ入力ポートを介して入力されるWビットのデータが格納されるバッファを、前記第1または第2のバッファから、前記第2または第1のバッファに切り替える切り替え手段、および、
前記第1または第2のバッファのデータを用いて、連想メモリのメモリ領域への検索動作を行う検索制御手段とを有し、
前記検索動作のサイクル時間Tsと、前記Wビットのデータを前記第1または第2のバッファへデータを書き込むサイクル時間Twとが、Tw<Tsを満足し、前記第1または第2のバッファのデータを用いて、前記連想メモリのメモリ領域への検索動作が行われている間に、前記第2または第1のバッファに次の検索動作のための前記Wビットのデータを入力することを特徴とする連想メモリ装置。
A data input port to which W-bit data is input;
An N (W <N) -bit first buffer and an M (W <M) -bit second buffer in which W-bit data input via the data input port is stored;
Input control means for storing the W-bit data in the first or second buffer;
Detecting means for detecting that the W-bit data is input k times (k × W ≦ N) or r times (r × W ≦ M) to the second buffer; Switching to switch the buffer storing W-bit data input via the data input port from the first or second buffer to the second or first buffer according to a detection signal from the detection means Means and
Search control means for performing a search operation to the memory area of the associative memory using the data of the first or second buffer;
The cycle time Ts of the search operation and the cycle time Tw of writing the W-bit data to the first or second buffer satisfy Tw <Ts, and the data of the first or second buffer The W-bit data for the next search operation is input to the second or first buffer while the search operation to the memory area of the associative memory is being performed. Associative memory device.
Wビットのデータが入力されるデータ入力ポートと、  A data input port to which W-bit data is input;
このデータ入力ポートを介して入力されるWビットのデータが格納されるN(W<N)ビットの第1のバッファおよびM(W<M)ビットの第2のバッファと、  An N (W <N) bit first buffer and an M (W <M) bit second buffer in which W bit data input via the data input port is stored;
前記Wビットのデータを前記第1または第2のバッファに格納する入力制御手段と、  Input control means for storing the W-bit data in the first or second buffer;
前記Wビットのデータが、前記第1のバッファにk回(k×W≦N)または前記第2のバッファにr回(r×W≦M)入力されたことを検知する検知手段と、この検知手段からの検知信号により、前記データ入力ポートを介して入力されるWビットのデータが格納されるバッファを、前記第1または第2のバッファから、前記第2または第1のバッファに切り替える切り替え手段、および、  Detecting means for detecting that the W-bit data is input k times (k × W ≦ N) or r times (r × W ≦ M) to the second buffer; Switching to switch the buffer storing W-bit data input via the data input port from the first or second buffer to the second or first buffer according to a detection signal from the detection means Means and
前記第1または第2のバッファのデータを用いて、連想メモリのメモリ領域への検索動作を行う検索制御手段と、  Search control means for performing a search operation to the memory area of the associative memory using the data of the first or second buffer;
前記検索動作により得られた前記連想メモリのメモリ領域のヒットワードのアドレスおよびその内容の少なくとも一部を出力する出力ポートを有し、  An output port that outputs an address of a hit word in the memory area of the associative memory obtained by the search operation and at least a part of the contents thereof;
前記検索動作のサイクル時間Tsと、前記Wビットのデータを前記第1または第2のバッファへデータを書き込むサイクル時間Twとが、Tw<Tsを満足し、前記第1または第2のバッファのデータを用いて、前記連想メモリのメモリ領域への検索動作が終了した後に、前記第2または第1のバッファに次の検索動作のための前記Wビットのデータを入力することを特徴とする連想メモリ装置。  The cycle time Ts of the search operation and the cycle time Tw of writing the W-bit data to the first or second buffer satisfy Tw <Ts, and the data of the first or second buffer And after the search operation to the memory area of the associative memory is completed, the W bit data for the next search operation is input to the second or first buffer. apparatus.
前記連想メモリのメモリ領域からのデータの読み出しサイクル時間Trが、前記書き込みサイクル時間Twよりも長く(Tw<Tr)、このメモリ領域から前記検索動作の終了と同時にデータの読み出しを開始するとともに、該読み出されたデータを一時保持する保持手段DHを有し、この保持手段DHからのデータの読み出しサイクル時間Thが前記読み出しサイクル時間Trよりも短い(Th<Tr)ことを特徴とする請求項2に記載の連想メモリ装置。Read cycle time Tr of the data from the memory area of the associative memory, the longer than the write cycle time Tw (Tw <Tr), starts the Shi read out from the memory area and end at the same time data of said search operation , has a holding means DH for temporarily holding the read out data, the read cycle time Th of the data from the holding means DH is characterized short (Th <Tr) than the read cycle time Tr claims Item 4. The associative memory device according to Item 2. 前記連想メモリのメモリ領域への検索動作終了時に、検索ヒットしたメモリワードの少なくとも一部を自動的に前記保持手段DHに保持する自動保持制御手段を有することを特徴とする請求項3に記載の連想メモリ装置。4. The automatic holding control means for automatically holding at least a part of the memory word hit by the search in the holding means DH at the end of the search operation to the memory area of the associative memory. Associative memory device. 前記連想メモリのメモリ領域への検索動作により得られる、前記第1または第2のバッファのデータに一致するデータが格納されたメモリワードのアドレスをそれぞれ格納する第1および第2のヒットアドレスレジスタを有し、前記第1または第2のバッファのデータを用いて、前記連想メモリのメモリ領域への検索動作を行った後に、前記第2または第1のヒットアドレスレジスタに格納されたアドレスのワードメモリに格納された付属データの少なくとも一部を最新の情報に更新することを特徴とする請求項1、2、3または4に記載の連想メモリ装置。First and second hit address registers respectively storing addresses of memory words in which data matching data in the first or second buffer obtained by a search operation to the memory area of the associative memory is stored A word of an address stored in the second or first hit address register after performing a search operation to the memory area of the associative memory using the data of the first or second buffer The content addressable memory device according to claim 1, 2, 3, or 4 , wherein at least part of the attached data stored in the memory is updated to the latest information .
JP05503997A 1996-10-14 1997-03-10 Associative memory device Expired - Fee Related JP3766166B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP05503997A JP3766166B2 (en) 1996-10-14 1997-03-10 Associative memory device

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP8-270835 1996-10-14
JP27083596 1996-10-14
JP05503997A JP3766166B2 (en) 1996-10-14 1997-03-10 Associative memory device

Publications (2)

Publication Number Publication Date
JPH10177794A JPH10177794A (en) 1998-06-30
JP3766166B2 true JP3766166B2 (en) 2006-04-12

Family

ID=26395880

Family Applications (1)

Application Number Title Priority Date Filing Date
JP05503997A Expired - Fee Related JP3766166B2 (en) 1996-10-14 1997-03-10 Associative memory device

Country Status (1)

Country Link
JP (1) JP3766166B2 (en)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006120186A (en) * 2004-10-19 2006-05-11 Hitachi Ltd Semiconductor integrated circuit and image processing system using the same

Also Published As

Publication number Publication date
JPH10177794A (en) 1998-06-30

Similar Documents

Publication Publication Date Title
JP3532932B2 (en) Randomly accessible memory with time overlapping memory access
US5239642A (en) Data processor with shared control and drive circuitry for both breakpoint and content addressable storage devices
WO2000033184A1 (en) Shared instruction cache for multiple processors
JPH11203860A (en) Semiconductor memory device
JP2004157593A (en) Multiport integration cache
CN102870089A (en) System and method for storing data in virtualized high speed memory system
JPH04217051A (en) Microprocessor
JP2012507795A (en) Method and system for improving latency and reliability of serial port memory communication
US5440717A (en) Computer pipeline including dual-ported, content-addressable writebuffer
US7120731B1 (en) CAM-based search engines that support pipelined multi-database search operations using replacement search key segments
KR19990087357A (en) Simplified Clock DRAM with Fast Command Input
US6125426A (en) Associative memory device
JP2002007373A (en) Semiconductor device
CN116166186A (en) Cache controller based on dual-port Sram and working method
JP2004194321A (en) A Mechanism to Reduce Lookup Latency in Pipelined Hardware Implementation of a Try-Based IP Lookup Algorithm
JP3766166B2 (en) Associative memory device
US6070223A (en) Associative memory device and network frame switch
CN102663051A (en) Method and system for searching content addressable memory
US7260675B1 (en) CAM-based search engines that support pipelined multi-database search operations using encoded multi-database identifiers
JPS6149250A (en) Buffer memory control system
US20020069350A1 (en) Apparatus and method for executing a block data transfer instruction inside processor
US7353330B2 (en) Method and apparatus for performing repeated content addressable memory searches
JP2002149488A (en) Integrated circuit device and cache memory control method
JP2004021896A (en) Cache fill control method and cpu
CN116136828A (en) A multi-port storage device, reading and writing method, and device

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20050808

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20050823

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20051024

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: 20060117

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20060126

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: 20090203

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20100203

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20110203

Year of fee payment: 5

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

Free format text: PAYMENT UNTIL: 20120203

Year of fee payment: 6

LAPS Cancellation because of no payment of annual fees