JP2004046988A - 連想メモリ装置及びそれを用いた中継装置 - Google Patents

連想メモリ装置及びそれを用いた中継装置 Download PDF

Info

Publication number
JP2004046988A
JP2004046988A JP2002204561A JP2002204561A JP2004046988A JP 2004046988 A JP2004046988 A JP 2004046988A JP 2002204561 A JP2002204561 A JP 2002204561A JP 2002204561 A JP2002204561 A JP 2002204561A JP 2004046988 A JP2004046988 A JP 2004046988A
Authority
JP
Japan
Prior art keywords
search
group
memory device
input
associative memory
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.)
Granted
Application number
JP2002204561A
Other languages
English (en)
Other versions
JP4105910B2 (ja
Inventor
Daisuke Namihira
浪平 大輔
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.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
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 Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2002204561A priority Critical patent/JP4105910B2/ja
Priority to US10/348,838 priority patent/US6950899B2/en
Publication of JP2004046988A publication Critical patent/JP2004046988A/ja
Application granted granted Critical
Publication of JP4105910B2 publication Critical patent/JP4105910B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C15/00Digital stores in which information comprising one or more characteristic parts is written into the store and in which information is read-out by searching for one or more of these characteristic parts, i.e. associative or content-addressed stores
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/903Querying
    • G06F16/90335Query processing
    • G06F16/90339Query processing by using parallel associative memories or content-addressable memories

Abstract

【課題】本発明は、高速性を実現できると共に簡単に実装可能な連想メモリ装置及びそれを用いた中継装置を提供することを目的とする。
【解決手段】論理的に複数のグループに分割されたエントリを持つメモリを有し、メモリに格納されているデータをキーとして入力し、キーが格納されているアドレスを返却する連想メモリ装置であって、1回の検索命令で、前記複数のグループの一または複数を検索対象として指定され、検索対象となった各グループの検索結果を順次返却することにより、1回の検索命令入力で、複数のグループの検索結果を順次返却することができ、高速検索が可能となる。
【選択図】    図4

Description

【0001】
【発明の属する技術分野】
本発明は、連想メモリ装置及びそれを用いた中継装置に関し、メモリに格納されているデータを検索するためにキーが入力され、そのキーが格納されているアドレスを返却する連想メモリ装置及びそれを用いた中継装置に関する。
【0002】
【従来の技術】
宛先検索や優先度検索、フィルタリング検索といったさまざまな検索をする必要のあるネットワークの中継装置でCAMが利用されている。CAM(Content Addressable Memory)即ち連想メモリ装置は、メモリ(CAMエントリ)に格納されているデータをキーとして入力し、そのキーが格納されているCAMエントリのアドレスを返却する機能を実現する。
【0003】
従来のCAMにおいて実現されている機能は、検索キーを入力として、そのキーに合致するCAMエントリのアドレスを1つ返却するというものである。また、検索キーに複数のCAMエントリが合致した場合は、複数のCAMエントリに合致したことは通知されるものの、返却される検索結果は、通常最も若いアドレスだけである。
【0004】
これに対し、ネットワークの中継装置、特にIP(Internet Protocol)パケットを中継するルータや、LAN(Local Area Network)におけるイーサネット(登録商標)のMAC(Media Access Control)フレームをスイッチングするレイヤ2スイッチ等において、宛先検索や優先制御、フィルタリング等の検索において、CAMの使用が多くなって来ており、これら全ての検索処理を現在あるCAMで行う場合は、1回の検索操作に対して1つの結果のみしか返すことができないため、それぞれの検索を別々に行っている。すなわち1つのフレームもしくはパケットに対し、複数回の検索を行っている。
【0005】
【発明が解決しようとする課題】
従来は検索キー長も短かったため、1回の検索操作を入力するのに1τ(τは1クロックサイクル)の時間で入力できできたが、近年ネットワークの中継装置も多機能となったことからCAMの検索キー長も増大しており、その結果、検索キーを複数に分割して入力することが必要となり、1回の検索操作を入力するのに数τの時間が必要となった。図1は、検索キーを4つに分割したため、検索入力に4τを必要とする例の信号タイミングチャートを示す。
【0006】
そのため、複数回の検索を同じCAMに行う場合は、1回の検索操作を入力するのに必要な時間×検索回数となり、その結果、超高速回線を扱う中継装置においては、その検索時間がネックとなるため、単一のCAMで複数の検索を行うことは現実的ではない。図2は、1回の検索入力に4τ必要である場合に3回の検索を行った例の信号タイミングチャートを示す。
【0007】
また、複数回の検索のそれぞれにおいて専用のCAMを持たせ、それぞれのCAMでは1度の検索を行い、複数のCAMを並列で実行すれば、性能の面では改善可能である。
【0008】
しかしながら、複数のCAMを実装することから、それぞれのCAMと、それぞれのCAMを制御する制御チップをそれぞれ実装しなければならず、実装面積が大きくなってしまう。また、複数のCAMを単一の制御チップで制御した場合、制御チップに必要とするピン数が増大し、また制御チップでの制御が複雑になるとい問題が生じる。また、何れの方式も実装チップ数が増えることから、実装する装置の価格面で非常に不利であるという問題があった。
【0009】
本発明は、上記の点に鑑みなされたものであり、高速性を実現できると共に簡単に実装可能な連想メモリ装置及びそれを用いた中継装置を提供することを目的とする。
【0010】
【課題を解決するための手段】
請求項1に記載の発明は、1回で前記複数のグループの一または複数を検索対象として指定する検索命令をデコードし、検索対象となった各グループを指定するグループ信号とイネーブル信号を発生する命令デコード部を有し、グループ信号とイネーブル信号及びキーを入力して、グループ信号で指定された各グループを検索し、検索結果を順次返却することにより、1回の検索命令入力で、複数のグループの検索結果を順次返却することができ、高速検索が可能となる。
【0011】
請求項2に記載の発明では、検索入力は、一または複数の検索対象のグループを指定する検索対象グループ指定部を有することにより、各検索入力毎に検索対象を指定することが可能となる。
【0012】
請求項3に記載の発明は、検索対象とする一または複数のグループを予め設定される検索対象グループ格納部を有することにより、予め設定されたグループを検索対象として検索を行うことができる。
【0013】
請求項4に記載の発明は、検索対象グループ格納部に検索対象とするグループが予め設定されていても、検索入力の検索対象グループ指定部で検索対象のグループが指定されると、検索入力の検索対象グループを検索対象とすることにより、検索入力の検索対象グループを優先させて検索を行うことができる。
【0014】
請求項5に記載の発明では、検索入力は、複数回続けて行われ、検索対象とするグループの検索結果の返却順序を指定することにより、グループの検索結果の返却順序を各種指定することができる。
【0015】
請求項6に記載の発明では、検索対象グループ格納部は、検索対象とするグループの検索結果の返却順序を予め設定されることにより、グループの検索結果の返却順序を各種指定することができる。
【0016】
請求項7に記載の発明では、検索対象グループ格納部に検索対象とするグループの検索結果の返却順序が予め設定されていても、検索入力で検索対象のグループの検索結果の返却順序が指定されると、検索入力の検索対象グループの検索結果の返却順序で返却を検索対象とすることにより、検索入力の検索対象グループの検索結果の返却順序を優先させることができる。
【0017】
請求項8に記載の発明では、エントリは、自エントリが属するグループを格納するグループ格納部を有することにより、グループのグループ数や各グループのエントリ数や各エントリの属するグループを自由に変更することができる。
【0018】
請求項9に記載の発明では、エントリは、自エントリのキーを格納するエントリ格納部を有することにより、各エントリのキーを自由に変更することができる。
【0019】
【発明の実施の形態】
本発明では、1回の検索操作で、指定した複数のメモリグループに対する検索結果を順に全て返却するCAMを実現する。例えば、1回の検索入力において検索キーを入力するのに4τの時間がかかるとし、かつ1回の検索入力で宛先検索、優先度検索、フィルタリング検索を行うとした場合、宛先検索のためのエントリデータをメモリグループ1、優先度検索のためのエントリデータをメモリグループ2、フィルタリング検索のためのエントリデータをメモリグループ3と定義されているとする。このとき、図3に信号タイミングチャートを示すように、メモリグループ1、2、3に対する検索を行うように、つまり、1回の検索入力でメモリグループ1、2、3の結果が順に返却されるように指定することで、上記3つの検索が1フレーム毎に4τの時間で終了することとなる。
【0020】
なお、従来のCAMで同一のことをした場合、図2で示したように、検索操作入力時間×検索回数の時間がかかるため、12τの時間が必要となる。この時間の差は、検索を行う対象が増えれば増えるほど大きくなる。
【0021】
図4は、上記機能を実現する本発明の連想メモリ装置の一実施例の全体構成図を示す。ここでは、CAMのエントリ数をn(=2)、メモリグループ数をg、検索キーのキー長をpとした時の例で示している。
【0022】
同図中、命令デコード部11では、入力された命令(命令コード)を基に、検索の命令であった時は、出力のイネーブル信号S_ENをイネーブル(‘1’でイネーブル)にする。ここで、従来のCAMであれば、1回の検索命令でS_ENは1τだけイネーブルとなる、もしくは一度の検索に該当する長さ分だけイネーブルとなるが、本発明装置においては、検索対象とするメモリグループ数の時間だけイネーブルとする。また、それぞれのイネーブルに対応するグループ信号grpに、それぞれのイネーブルに対して検索を行うメモリグループを指定することで、指定した複数メモリグループそれぞれの結果を順に検索対象とする機構を実現している。
【0023】
図4の下部に一度の検索命令でメモリグループ1、2、3を検索対象とした場合の信号タイミングチャートを示している。この場合、検索対象とするメモリグループ数は3つなので、イネーブル信号S_ENは3τ分だけ‘1’とし、その3τの中に、順にメモリグループ1、メモリグループ2、メモリグループ3を指定している。
【0024】
これによって、後段には検索が複数回行われることとなる。すなわち一度の検索入力によって指定メモリグループを順に検索し、それぞれの結果が順に返却する機構が実現可能となる。
【0025】
ここで、命令デコード部11の出力する信号grpは、gビットの信号として検索対象とするメモリグループに対応するビットを‘1’にすることで、検索対象を指定している。これ以外にも、メモリグループの番号を数字で指定する方法、例えばグループ数が16まで設定可能である場合、信号grpは4ビットとし、メモリグループ番号3を指定する場合は信号grpを0b0011(0bは2進表示を表す)となるような指定方法であっても構わない。なお、検索入力時のメモリグループ指定や、信号S_EN、信号grpの出力を行うための詳細構成に関しては、後述の詳細構成図を基に説明する。
【0026】
次に、メモリであるCAMエントリ部12には、各エントリのデータが入っており、検索時つまり、信号S_ENがイネーブルとなった時に、信号grpで指定されたメモリグループに属する各エントリと、入力されたキーKeyとの比較を行い、ヒット信号hitを出力する。
【0027】
命令デコード部11において、複数の検索指定が行われていることから、検索時における比較に関しては、従来のCAMと同一の方式でよい。信号grpで指定されたメモリグループに属するエントリの検出方式及び、当該エントリのみを検索対象とする方式に関しては、後述の詳細構成図を基に説明する。
【0028】
結果選択部13では、イネーブル信号ENでのイネーブル指定時に各エントリから出て来た合計n本のヒット信号hitから、1つの結果を選択し、そのエントリのアドレスを出力する。結果選択部13は従来のCAMにおいて実現されている方式と同一の構成で実現可能である。検索指示が命令デコード部11にて複数回出力される構成となっているため、それぞれのイネーブル信号においては、1つの結果を返す従来の方式でよいため、詳細な説明は省略する。
【0029】
次に、本発明の各部分における詳細な構成を示す。
【0030】
図5は、命令デコード部11の第1実施例のブロック図を示す。同図中、命令識別部21は、命令入力を受け付け、後段に適切な指示を行う。ここで、この命令入力の一実施例を図6に示す。図6に示すように、命令入力には命令コード部と検索対象メモリグループ指定部(検索対象グループ指定部)が設けられている。命令コード部には、検索やエントリ格納といった各種コマンドのコード番号が入る。本発明は検索に関するものであるため、以後、検索の命令コードに関する部分のみ説明する。検索に関する命令コードは以下の2つを用意する。
【0031】
検索指示1:命令入力の検索対象メモリグループ指定部に指定されたメモリグループを検索対象に指定する検索命令。
【0032】
検索指示2:図5に示す検索対象メモリグループ格納部(検索対象グループ格納部)22の内容を検索対象に指定する検索命令。
【0033】
命令入力の検索対象メモリグループ指定部は、検索命令の対象とするメモリグループを指定する部分である。ここで、このメモリグループ指定方法は、各メモリグループが検索対象メモリグループ指定部の各ビットにマッピングされており、検索対象としたいメモリグループに対応するビットを‘1’とすることで指定を行う。例えば、メモリグループ1、2、3を検索対象としたい場合は、これらに対応するビット(3ビット分)を‘1’とする。
【0034】
このような命令コードは図5に示す命令識別部21で受け付けられる。命令識別部21では、命令入力の命令コード部が検索を指示している時、サーチ開始信号を1τだけ‘1’とする。また、検索対象メモリグループ指定部の中で‘1’となっているビット数−1を計算し、カウント信号Countにその値を出力する。例えば、メモリグループの指定が4つで検索結果を4回返す場合は、カウント信号の値は3となる。
【0035】
なお、命令入力の命令コード部に、検索指示と検索結果を返す数を入力してもらい、命令識別部21では、その数−1をカウント信号で出力するといった形態でもよい。ここで、命令入力Instructionが上記の検索指示1であった場合はセル信号selは‘0’とし、検索指示2であった場合はセル信号を‘1’としてセレクタ部23に供給し、検索対象メモリグループの選択を行うために判別させる。
【0036】
最後に、命令入力内の検索対象メモリグループ指定部の内容を信号grp_in0[g−1:0]にそのまま出力してセレクタ部23に供給する。
【0037】
検索対象メモリグループ格納部22は、検索対象メモリグループを命令入力内に設定しなかった場合(検索支持2を指示した時)に使用する検索対象メモリグループの内容を格納しており、このメモリグループの内容はユーザから指定可能である。また、その内容が常にgrp_in1[g−1:0]信号としてセレクタ23に対して出力される。
【0038】
セレクタ部23では、イネーブル信号ENが‘1’である時、信号selが‘0’なら信号grp_in0[g−1:0]を信号grp_outとして出力し、信号selが‘1’なら信号grp_in1[g−1:0]を信号grp_outとして出力する。またイネーブル信号が‘0’である時は、最後にイネーブル信号が‘1’であった時の出力内容を保持する。これにより、検索命令の種類に応じて、命令入力内の検索対象メモリグループか、検索対象メモリグループ格納部22に格納されている検索対象メモリグループのどちらを使用するか指定することが可能となる。
【0039】
検索開始トリガ指定部(つまり検索開始指定手段)24は、前回の検索指示がまだ終わっていない内に次の検索命令がやって来た時、例えば、前回の検索指示で、検索対象グループを10グループ指定したが、5τ後に次の検索指示があった場合等に、それを受け付けるかどうかを判別する。
【0040】
検索入力割り込み指定格納部(つまり検索入力割り込み指定手段)241は、前回の検索指示がまだ終わっていない内に次の検索指示を受けて割り込ませるかどうかをユーザから指定され格納する。受けて良い設定がなされた時は、イネーブル信号I_ENを‘1’とし、受け付けないようにする設定がなされた時は、信号I_ENを‘0’とする。
【0041】
また、SSカウンタ部242は、イネーブル信号ENが‘1’の時、命令識別部21からのCount入力を内部に格納し、1τ後から格納したCount入力が0になるまCout出力を‘1’とする。これは、入力内容を格納するのに1τ必要であるため、Cout出力は1τ遅れるからであり、Count入力の入力時とCout出力の出力開始時が1τずれるので、Count入力は検索結果を返す数−1を入力して、ずれを補っている。
【0042】
ここで、イネーブル信号ENは、信号I_ENとCout出力のNOT(否定)をOR(論理和)し、その結果を命令識別部21からのサーチスタート信号とAND(論理積)している。まず、信号I_ENとCout出力のNOTをORする部分は、Cout出力が‘1’(すなわち前回の検索結果返却に要する時刻がまだ経過していない状態)で、かつ信号I_ENが‘0’(前回の検索指示が終わっていないうちは次の検索指示を受け付けてはいけない場合)の時のみ、結果が‘0’となる。
【0043】
この時は、サーチスタート信号とのANDの結果が‘0’となる。すなわち、次の検索指示を受け付けてはいけない場合はサーチスタート指示が来ても信号EN(=サーチスタートアウト信号)は‘0’となるため、次の検索指示が無視され、サーチスタート指示の受け付けを拒否することが可能となる。
【0044】
また、サーチスタート信号とカウント信号のORをイネーブル信号S_ENとして出力しているが、これはサーチスタート指示があってから、検索結果を返す個数分のクロック数だけ‘1’を出力して後段の検索指示を行うためである。また、SSカウンタ242のCout出力はサーチスタート信号の入力時には‘1’とならない(前回の内容が出力されている)ので、サーチスタート信号入力があった時点においても信号S_ENに‘1’を出力させるため、ORを取っている。
【0045】
遅延部25は、検索キーは1τで入力できないため、検索キーの入力が完了するまでの間、各信号に遅延を与える。また、遅延部26は、命令入力から、サーチスタート信号が出るまでの間分、検索キー入力に遅延を与える。
【0046】
検索キー生成部27は、検索キーの部分入力をそれぞれ保持し、全て入って来た後に得られた検索キーを全て後段に伝える。図5では、キー長pビットの検索キー入力に4τ必要とする場合を示している。検索キー生成部27では、信号SS_1(=サーチスタートアウト)が‘1’となる時に、検索キー入力の1τ目が来るように遅延部26において遅延処理がなされているため、最初の検索キー入力(最初のp/4ビット分)は、フリップフロップ271に格納される。フリップフロップ271〜274はイネーブル入力付きのp/4ビット分のフリップフロップであり、イネーブルが‘1’の時、データD_inの内容をラッチするものである。
【0047】
次に、検索キーの2τ目の入力時は、信号SS_1が1τ遅延されてフリップフロップ272でイネーブルとなるため、検索キー入力はフリップフロップ272に格納される。同様に3τ目、4τ目の検索キー入力は、順にフリップフロップ273、274に格納される。
【0048】
全て格納が終わった後にサーチスタート信号(=SS_2)が
‘1’となるように遅延部25で遅延処理がなされているため、信号SS_2が‘1’となった時は、フリップフロップ271〜274に検索キーの内容が全て入っている状態である。これらがフリップフロップ275に供給され、フリップフロップ275においてpビットの検索キーが全て格納されることとなる。また、その内容は次にSS2が‘1’となるまでKey[p−1:0]に出力される。
【0049】
グループ選択部28では、信号grp_inにて入力された検索対象メモリグループを、サイクル毎に検索対象とするグループに分ける。例えば、検索対象メモリグループがメモリグループ1、2、3であった場合、1τ目はメモリグループ1に対応する信号grpのみ‘1’とし、2τ目はメモリグループ2に対応する信号grpのみ‘1’、3τ目はメモリグループ3に対応する信号grpのみ‘1’となるように分ける。これは、複数個の検索結果を返す必要があるためである。
【0050】
ここで、回路部281では、信号grp_in[0]と、それの1τ遅延(FF出力部分)とのXOR(排他的論理和)を取っているため、もしも信号grp_in[0]が‘1’であった場合は、1τだけ‘1’となる。また、信号grp_in[0]の1τ遅延信号(フリップフロップ出力部分)は、サーチスタート信号のNOTとANDを取っていることから、サーチスタート信号が‘1’の時(すなわち新規検索開始時)は、AND結果が‘0’となり、信号grp_in[0]とのXOR結果(信号grp[0])は、grp_in[0]の値そのものが出力されることとなる。すなわち、サーチスタート信号によってリセットがかかる意味合いとなる。これによって、信号grp_in[0]が‘1’である時は、サーチスタート信号が‘1’となる1τだけ信号grp[0]が‘1’となる。
【0051】
回路部282では回路部281と基本的に同じ回路だが、回路部281の出力の1τ遅延がサーチスタート信号とORがけされている。これは、信号grp[0]が‘1’である時はリセットがかかり、信号grp[1]がそのまま出力されるようになる。従って、信号grp[1]が‘1’であるとき、信号grp[0]が‘1’であれば、回路部282の出力は2τ分‘1’となる。信号grp[0]が‘0’のときは1τのみ‘1’となる。
【0052】
同様に、回路部283では上部の出力(回路部281,282の出力を含め)全てをORがけした内容の1τ遅延がリセット入力となっている。すなわち、信号grp_in[g−1]が‘1’ならば、信号grp[0]〜grp[g−2]のどれかが‘1’である場合、かならず回路部283の出力が‘1’となり、さらにもう1τ分‘1’の出力が続くこととなる。
【0053】
例えば、信号grp_in[0],grp_in[1],grp_in[g−1]の3つが‘1’である時、つまり、これらに対応する3つのメモリグループを検索対象とした時は、最初の1τ目では回路部281,282,283の出力が‘1’となり、2τ目は回路部282,283の出力が‘1’となり、3τ目は回路部283の出力のみ‘1’となる。
【0054】
ここで、回路部282、283の出力は上部の出力のNOTとANDを取っていることから、上部の出力が‘1’となっている場合は、‘0’に落とされることとなる。これにより、最初の1τは信号grp[0]のみ‘1’となり、次の2τ目では信号grp[1]のみ‘1’となり、3τ目では信号grp[g−1]のみ‘1’となる結果が得られ、検索対象とするメモリグループが順に1つずつ出力される結果が得られる。
【0055】
最後に、遅延部29では、遅延部25と遅延部28で必要とする時間分の遅延を与える。これによって、grp出力とS_EN出力を合わせるための調節を行っている。以上により、検索対象とするメモリグループ数分だけイネーブル信号S_ENが‘1’となり、かつ検索指定をしたメモリグループが順に1つずつ信号grpとして出力されるため、1回の検索入力で検索指定の対象グループを、順に後段に指定することが可能となる。
【0056】
図7は、命令デコード部11の第2実施例のブロック図を示す。図7では、例えば検索結果の1τ目はグループ番号2、2τ目はグループ番号3、3τ目はグループ番号1を返すというようにグループ順を変更したい場合や、検索結果の1τ目はグループ番号1/2/3、2τ目はグループ番号2/3/4、3τ目はグループ番号3/4/5を返すというように、各結果を返すグループを複数指定したい場合の指定も行うことが可能である。
【0057】
図7においては、命令入力の内容が図5の実施例で示した場合と多少変更となる。図7では、検索に関する命令コードは以下の4つを用意する。
【0058】
検索指示1:命令入力の検索対象メモリグループ指定部に指定されたメモリグループを検索対象に指定する検索命令。
【0059】
メモリグループ入力指示2:検索対象メモリグループ指定部に指定されたメモリグループを検索対象に指定するが、メモリグループの指定のみを行う命令(検索指示1の命令に続いて入力される)。
【0060】
検索指示3:図7に示す検索対象メモリグループ格納部32の内容を検索対象に指定する検索命令。
【0061】
メモリグループ入力指示4:図7に示す検索対象メモリグループ格納部32の内容を検索対象に指定するが、メモリグループの指定のみを行う命令(検索指示3の命令に続いて入力される)。
【0062】
また、命令入力は例えば、図8に示すように、各τ毎に検索対象メモリグループを指定する。図8では、メモリグループ3を指定する検索指示1、メモリグループ1を指定するメモリグループ入力指示2、メモリグループ2を指定するメモリグループ入力指示2、メモリグループ4/5/6を指定するメモリグループ入力指示2、メモリグループ7/8を指定するメモリグループ入力指示2の順に命令入力が行われる。
【0063】
ここで、各τ毎のメモリグループ指定は、図6に示す命令入力中の検索対象メモリグループ指定部にて指定する。なお、複数グループの指定は、それぞれのグループに該当するビット(複数)を‘1’とすることで指定する。
【0064】
命令識別部31は、上記4つの命令を認識し、検索指示であった時は信号S_EN及びサーチスタート信号を‘1’とする。また、メモリグループ入力指示2,4の時は、信号S_ENのみを‘1’とする。また、検索対象メモリグループ指定部を使用する検索指示1,3の時はセル信号selを‘0’とし、検索対象メモリグループ格納部(検索対象グループ格納部)32を使用するメモリグループ入力指示2,4の時はセル信号を‘1’とする。これによって、各グループ入力それぞれにおいて入力した検索対象メモリグループか、格納されたメモリグループのどちらかを逐一選択することが可能となる。
【0065】
検索対象メモリグループ格納部32は、検索結果を返却するτ毎の検索対象メモリグループをそれぞれ指定する領域を持つ。例えば最大m個の結果が返却できるとした場合、m個の検索対象メモリグループを格納する領域を持つ。イネーブル信号ENが‘1’となった時から順に、それぞれに対応する検索対象メモリグループの内容をgrp_in1[g−1:0]に出力する。
【0066】
例えば、検索対象メモリグループ格納部32に、格納領域が0〜m−1のm個ある場合、信号ENが‘1’となった時は、格納領域0の検索対象メモリグループ内容をgrp_in1[g−1:0]に出力し、次は格納領域1の検索対象メモリグループ内容をgrp_in1[g−1:0]に出力する。同様に、(m−1)τ後に格納領域m−1の検索対象メモリグループ内容が、grp_in1[g−1:0]に出力される。
【0067】
セレクタ部33は、セレクタ部23と同一の構成である。また、遅延部34は遅延部25と同一であり、遅延部35は遅延部26と同一の構成である。また、検索キー生成部36は検索キー生成部27と同一の構成であるため、説明を省略する。
【0068】
遅延部37も、遅延部29と同じ意味合いの遅延を発生するが、遅延の発生量は遅延部34で発生させる遅延量と同一とする。これは信号S_ENと信号grpの出力開始タイミングを一致させるためである。ここで、遅延部34出力がそのまま信号grpとなって出力されているが、これは、命令入力Instruction内の検索対象メモリグループ、または検索対象メモリグループ格納部32の出力が、τ毎に直接指定されているためである。すなわち各τ毎の検索結果出力対象に複数のメモリグループを指定することが可能となっている。
【0069】
また、図5の実施例では、前回の検索結果返却に必要な時刻より短いインターバルで次の検索入力があった場合は、それを受け付けるかどうかといった処理があったが、図7の実施例では、入力時に各τ毎の検索結果出力対象を順次入力する構成としたことから、次の検索を行いたい場合は、隣接するチップが、命令入力の命令コードを検索指示に指定するだけで実現が可能である。
【0070】
上記2つの実施例以外にも、命令デコード部11内部に別途検索対象メモリグループテーブルを用意し、命令入力内の検索対象メモリグループ指定部の代わりに、検索対象メモリグループテーブルアドレスの指定部を設ける構成としてもよい。このテーブルには、それぞれ検索対象メモリグループが格納されており、この場合には、図5のセレクタ部23出力や図7のセレクタ部33の出力はメモリグループではなく検索対象メモリグループテーブルアドレスとなり、その出力を検索対象メモリグループテーブルの入力として、そのアドレスが格納されている検索対象メモリグループを出力する。これら出力が遅延部25や34の入力となることで、同一の機能を実現できる。
【0071】
図9は、CAMエントリ部12の第1実施例のブロック図を示す。CAMエントリ部12は信号S_ENが‘1’の時、grp[g−1:0]で指定されたメモリグループ番号に一致するエントリに対し、Key[p−1:0]で指定された検索キーとの比較を行い、一致すればヒット信号hitを出力する。
【0072】
図9において、n個のエントリ41−1〜41−nが設けられている。エントリ41−iに、i番目のエントリに対する詳細構成を示している。入力される信号S_EN,grp[g−1:0],Key[p−1:0]は、全てのエントリ41−1〜41−nに供給され、検索指示や対象メモリグループや検索キーを全エントリに対して行う指定がなされている。
【0073】
次に、エントリ41−iの内部構成の説明を行う。メモリグループ格納部(グループ格納部)42は、各エントリの属するメモリグループが格納される場所であり、ユーザから自由に設定可能とされている。また、設定されたメモリグループの内容を、常に信号grp_out信号としてメモリグループ比較部(グループ比較部)44に供給する。
【0074】
エントリ格納部43には入力された検索キーと実際に比較を行う対象であるキーが格納される。このエントリ格納部43もユーザから自由に設定可能とされている。また、格納されているキーの内容は、常に信号key_outとしてエントリ比較部46に供給する。
【0075】
メモリグループ比較部44は、イネーブル信号ENが‘1’である時、信号grp0[g−1:0]と信号grp0[g−1:0]の2入力の各ビットを比較し、1ビットでも双方‘1’となる場合、即ちメモリグループ格納部42に格納されているメモリグループ指定が、検索対象メモリグループに指定されている場合には、信号hitを1τのみ‘1’とする。これは、2入力を各ビット毎にANDを取り、それら出力全てをORすることで実現できる。
【0076】
これにより、自エントリの属するメモリグループが検索対象メモリグループに入っている場合のみ、信号hitが‘1’となる。
【0077】
遅延部45は、メモリグループ比較部44の処理に必要な時間だけ遅延を発生させる。これは、メモリグループ比較部44の信号hitの出力タイミングと、信号Key[p−1:0]の出力タイミングを一致させるためである。
【0078】
MASKレジスタ番号格納部47には、自エントリ41−iが使用するマスクレジスタのレジスタ番号が格納されており、ユーザから自由に設定可能とされている。また、MASKレジスタテーブル48には、レジスタ番号に対応して検索時に使用するマスク情報が格納されており、ユーザから自由に設定可能とされている。
【0079】
MASKレジスタ番号格納部47では、設定されたレジスタ番号に応じたマスク情報を48から取り出しエントリ比較部46に供給する。エントリ比較部46では、イネーブル信号ENが‘1’である時、入力キーKey0[p−1:0]と、エントリ格納部43の格納キーKey1[p−1:0]を比較し、全ビット一致した場合、信号hitを1τの間‘1’とする。
【0080】
ただし、MASKレジスタ番号格納部47からのMASK情報(MASK[p−1:0])を読み込み、マスク指定がなされているビット(例えば、‘1’をマスク指定とする)は検索対象から外す。例えば、MASK[a]が‘1’となっていた場合は、Key0[a]とKey1[a]の比較を行わない、もしくは、比較の一致/不一致に拘わらず、ビットaに対する比較結果は一致とする。
【0081】
なお、本実施例においては、各エントリにマスク情報の入ったレジスタ番号を格納する形態を示しているが、各エントリ毎にマスク情報そのものを格納する領域を設け、その情報をそのままエントリ比較部46に出力するといった形態であってもよい。
【0082】
ここで、遅延部45の出力する信号hitがエントリ比較部46のEN入力になっていることから、検索指示を行った時、検索対象メモリグループに属していないメモリグループのエントリは、エントリ比較部46のEN入力がイネーブルとならない。すなわち、検索対象メモリグループに属していないエントリは、検索キーの比較処理が行われない。これにより、grp[g−1:0]で指定された検索対象メモリグループに属するエントリのみを比較対象とすることが可能となる。
【0083】
図10は、CAMエントリ部12の第2実施例のブロック図を示す。この実施例では、g・m個のエントリをg個のメモリグループエントリ群に分割する。そして、S_EN信号と、信号grpの各ビット(それぞれ1つのメモリグループに対応している)をそれぞれANDし、その出力を対応するメモリグループエントリ群を構成する各エントリのイネーブル信号に入力することで、検索対象メモリグループに属するエントリ群のイネーブル信号のみ‘1’となる。すなわち、指定した検索対象メモリグループのみを検索対象とすることができる。
【0084】
各エントリの内部構成は、図9のエントリ格納部43とエントリ比較部46のみで構成されているイメージである。これは、検索対象の指定は既に出来ているので、検索キーの比較のみを行うからであり、従来のCAMで適用されている部分と同じ構成である。
【0085】
次に、本発明の連想メモリ装置を用いた中継装置について説明する。
【0086】
まず、比較対照としての従来の中継装置について、図11を用いて説明する。この中継装置では、宛先/フロー種別/フィルタリング処理の3つを検索を行う対象としている。まず、ポートから入って来た各フレームに対し、ヘッダ解析部51においてヘッダ情報を抽出し、このヘッダ情報をフレームに付加する。
【0087】
次の宛先決定部52では、ヘッダ情報の内容を付属するCAM53に渡し、宛先情報を獲得し、フレームに付加する。次のフロー種別決定部54では、ヘッダ情報の内容を付属するCAM55に渡し、フロー種別を獲得し、フレームに付加する。次のフィルタリング処理部56では、同様にヘッダ情報をCAM57に渡し、フィルタリング情報を獲得する。フィルタリング処理部56では、この結果フィルタリング対象であった場合はフレームを廃棄し、後段に中継させない処理を併せて行う。
【0088】
さらにその後段にあるキュー制御部58では、フレームに付加されたフロー種別に示された優先度情報により優先制御を行う。また、装置内スイッチ59は、フレームに付加された宛先情報に示された宛先より、該当する宛先ヘフレームをスイッチングする。また、スイッチ後の内部ヘッダ取り外し部60において、付加されたヘッダ情報/宛先情報/フロー種別を取り外し、ポートを経由して送信する。
【0089】
従来の中継装置は、宛先データ格納用CAM53、フロー種別格納用CAM55、フィルタリング情報格納用CAM57を実装し、それぞれを制御する宛先決定処理部52、フロー種別決定処理部54、フィルタリング処理部56の制御チップも実装する必要があるため、実装面積が大きくなってしまう。また、これらの制御チップを1つにまとめた場合でも、それぞれのCAMとのインタフェースは別々に持たなければならないため、ピン数が増大することから、コスト面でも不利となる上、それぞれの検索処理は内部で別々に行うので、チップ面積が減ることはない。
【0090】
これに対し、本発明の連想メモリ装置を用いた中継装置は図12に示す構成となる。この中継装置も、宛先/フロー種別/フィルタリング処理の3つを検索を行う対象としている。ポートから入って来た各フレームに対し、ヘッダ解析部51においてヘッダ情報を抽出し、このヘッダ情報をフレームに付加する。
【0091】
検索処理部62では、ヘッダ情報の内容を付属するCAM63に渡し、宛先情報とフロー種別とフィルタリング情報を獲得する。検索処理部62では、この結果フィルタリング対象であった場合はフレームを廃棄し、後段に中継させない処理を併せて行う。
【0092】
さらにその後段にあるキュー制御部58では、フレームに付加されたフロー種別に示された優先度情報により優先制御を行う。また、装置内スイッチ59は、フレームに付加された宛先情報に示された宛先より、該当する宛先ヘフレームをスイッチングする。また、スイッチ後の内部ヘッダ取り外し部60において、付加されたヘッダ情報/宛先情報/フロー種別を取り外し、ポートを経由して送信する。
【0093】
このように、1つのCAM63に対する1回の検索入力で複数の検索結果を獲得できるため、実装面積やコストの面で有利となる。また、物理的に検索数分のCAMを用意する実現方法の場合では、機能拡張を行う場合に装置自体の構成を作り直す必要があり、機能拡張に柔軟に対応できない。これに対して本発明の連想メモリ装置では、検索結果を返す回数や、それぞれの検索結果返却対象となるメモリグループを自由に指定可能であるため、既にある装置自体の構成はそのままでよい。
【0094】
このように、本発明の連想メモリ装置は、単一の検索キーで複数の結果が欲しい場合、例えばネットワークの中継装置で、あるフレームから抜き出した各種ヘッダ情報を検索キーとして、宛先検索、フロー検索、フィルタリング検索といった3種類の検索を行いたい場合でも、一度、検索入力を行えば全ての検索結果を返却することが可能であり、非常に長い検索キーを時間をかけて何度も入力する必要がなくなる。
【0095】
これにより、1フレームに対する検索時間の短縮が図られ、超高速回線への適用もlつの連想メモリ装置で対応が可能となる。また、検索結果を返す個数の設定も各検索毎に自由に行えるので、さまざまな機能拡張に対しても柔軟に対応可能である。
【0096】
(付記1) 論理的に複数のグループに分割されたエントリを持つメモリを有し、前記メモリに格納されているデータをキーとして入力し、前記キーが格納されているアドレスを返却する連想メモリ装置であって、
1回で前記複数のグループの一または複数を検索対象として指定する検索命令をデコードし、検索対象となった各グループを指定するグループ信号とイネーブル信号を発生する命令デコード部を有し、
前記グループ信号とイネーブル信号及び前記キーを入力して、前記グループ信号で指定された各グループを検索し、検索結果を順次返却することを特徴とする連想メモリ装置。
【0097】
(付記2) 付記1記載の連想メモリ装置において、
前記検索入力は、検索対象の一または複数のグループを指定する検索対象グループ指定部を有することを特徴とする連想メモリ装置。
【0098】
(付記3) 付記1または2記載の連想メモリ装置において、
検索対象とする一または複数のグループを予め設定される検索対象グループ格納部を有することを特徴とする連想メモリ装置。
【0099】
(付記4) 付記3記載の連想メモリ装置において、
前記検索対象グループ格納部に検索対象とするグループが予め設定されていても、前記検索入力の検索対象グループ指定部で検索対象のグループが指定されると、前記検索入力の検索対象グループを検索対象とすることを特徴とする連想メモリ装置。
【0100】
(付記5) 付記2記載の連想メモリ装置において、
前記検索入力は、複数回続けて行われ、検索対象とするグループの検索結果の返却順序を指定することを特徴とする連想メモリ装置。
【0101】
(付記6) 付記3記載の連想メモリ装置において、
前記検索対象グループ格納部は、検索対象とするグループの検索結果の返却順序を予め設定されることを特徴とする連想メモリ装置。
【0102】
(付記7) 付記6記載の連想メモリ装置において、
前記検索対象グループ格納部に検索対象とするグループの検索結果の返却順序が予め設定されていても、前記検索入力で検索対象のグループの検索結果の返却順序が指定されると、前記検索入力の検索対象グループの検索結果の返却順序で返却を検索対象とすることを特徴とする連想メモリ装置。
【0103】
(付記8) 付記1記載の連想メモリ装置において、
前記エントリは、自エントリが属するグループを格納するグループ格納部を有することを特徴とする連想メモリ装置。
【0104】
(付記9) 付記1記載の連想メモリ装置において、
前記エントリは、自エントリのキーを格納するエントリ格納部を有することを特徴とする連想メモリ装置。
【0105】
(付記10) 付記1乃至9のいずれかに記載の連想メモリ装置を用いて構成したことを特徴とする中継装置。
【0106】
(付記11) 付記1記載の連想メモリ装置において、
前記検索対象となった各グループに対する検索結果の全てを返却するのに必要な期間は、次の検索指示の受け付けを禁止する検索開始指定手段を
有することを特徴とする連想メモリ装置。
【0107】
(付記12) 付記11記載の連想メモリ装置において、
前記検索開始トリガ指定部は、検索対象となった各グループに対する検索結果の全てを返却するのに必要な期間内に、次の検索指示を受け付けて割り込ませる設定を行う検索入力割り込み指定手段を
有することを特徴とする連想メモリ装置。
【0108】
【発明の効果】
上述の如く、請求項1に記載の発明は、1回で前記複数のグループの一または複数を検索対象として指定する検索命令をデコードし、検索対象となった各グループを指定するグループ信号とイネーブル信号を発生する命令デコード部を有し、グループ信号とイネーブル信号及びキーを入力して、グループ信号で指定された各グループを検索し、検索結果を順次返却することにより、1回の検索命令入力で、複数のグループの検索結果を順次返却することができ、高速検索が可能となる。
【0109】
請求項2に記載の発明では、検索入力は、一または複数の検索対象のグループを指定する検索対象グループ指定部を有することにより、各検索入力毎に検索対象を指定することが可能となる。
【0110】
請求項3に記載の発明は、検索対象とする一または複数のグループを予め設定される検索対象グループ格納部を有することにより、予め設定されたグループを検索対象として検索を行うことができる。
【0111】
請求項4に記載の発明は、検索対象グループ格納部に検索対象とするグループが予め設定されていても、検索入力の検索対象グループ指定部で検索対象のグループが指定されると、検索入力の検索対象グループを検索対象とすることにより、検索入力の検索対象グループを優先させて検索を行うことができる。
【0112】
請求項5に記載の発明では、検索入力は、複数回続けて行われ、検索対象とするグループの検索結果の返却順序を指定することにより、グループの検索結果の返却順序を各種指定することができる。
【0113】
請求項6に記載の発明では、検索対象グループ格納部は、検索対象とするグループの検索結果の返却順序を予め設定されることにより、グループの検索結果の返却順序を各種指定することができる。
【0114】
請求項7に記載の発明では、検索対象グループ格納部に検索対象とするグループの検索結果の返却順序が予め設定されていても、検索入力で検索対象のグループの検索結果の返却順序が指定されると、検索入力の検索対象グループの検索結果の返却順序で返却を検索対象とすることにより、検索入力の検索対象グループの検索結果の返却順序を優先させることができる。
【0115】
請求項8に記載の発明では、エントリは、自エントリが属するグループを格納するグループ格納部を有することにより、グループのグループ数や各グループのエントリ数や各エントリの属するグループを自由に変更することができる。
【0116】
請求項9に記載の発明では、エントリは、自エントリのキーを格納するエントリ格納部を有することにより、各エントリのキーを自由に変更することができる。
【図面の簡単な説明】
【図1】検索キーを4つに分割した例の信号タイミングチャートである。
【図2】回の検索入力に4τ必要である場合に3回の検索を行った例の信号タイミングチャートである。
【図3】本発明の連想メモリ装置の信号タイミングチャートである。
【図4】本発明の連想メモリ装置の一実施例の全体構成図である。
【図5】命令デコード部の第1実施例のブロック図である。
【図6】命令入力の一実施例を示す図である。
【図7】命令デコード部の第2実施例のブロック図である。
【図8】命令入力の一実施例の信号タイミングチャートである。
【図9】CAMエントリ部の第1実施例のブロック図である。
【図10】CAMエントリ部の第2実施例のブロック図である。
【図11】従来の中継装置の一例のブロック図である。
【図12】本発明の連想メモリ装置を用いた中継装置の一実施例のブロック図である。
【符号の説明】
11 命令デコード部
12 CAMエントリ部
13 結果選択部
21,31 命令識別部
22,32 検索対象メモリグループ格納部
23,33 セレクタ部
24 検索開始トリガ指定部
25,26,29,34,35,37 遅延部
27,36 検索キー生成部
28 グループ選択部
41−1〜41−n エントリ
42 メモリグループ格納部
43 エントリ格納部
44 メモリグループ比較部
45 遅延部
46 エントリ比較部
47 MASKレジスタ番号格納部
48 MASKレジスタテーブル
51 ヘッダ解析部
52 宛先決定部
53,63,55,57 CAM
54 フロー種別決定部
56 フィルタリング処理部
58 キュー制御部
59 装置内スイッチ
60 内部ヘッダ取り外し部
62 検索処理部

Claims (10)

  1. 論理的に複数のグループに分割されたエントリを持つメモリを有し、前記メモリに格納されているデータをキーとして入力し、前記キーが格納されているアドレスを返却する連想メモリ装置であって、
    1回で前記複数のグループの一または複数を検索対象として指定する検索命令をデコードし、検索対象となった各グループを指定するグループ信号とイネーブル信号を発生する命令デコード部を有し、
    前記グループ信号とイネーブル信号及び前記キーを入力して、前記グループ信号で指定された各グループを検索し、検索結果を順次返却することを特徴とする連想メモリ装置。
  2. 請求項1記載の連想メモリ装置において、
    前記検索入力は、検索対象の一または複数のグループを指定する検索対象グループ指定部を有することを特徴とする連想メモリ装置。
  3. 請求項1または2記載の連想メモリ装置において、
    検索対象とする一または複数のグループを予め設定される検索対象グループ格納部を有することを特徴とする連想メモリ装置。
  4. 請求項3記載の連想メモリ装置において、
    前記検索対象グループ格納部に検索対象とするグループが予め設定されていても、前記検索入力の検索対象グループ指定部で検索対象のグループが指定されると、前記検索入力の検索対象グループを検索対象とすることを特徴とする連想メモリ装置。
  5. 請求項2記載の連想メモリ装置において、
    前記検索入力は、複数回続けて行われ、検索対象とするグループの検索結果の返却順序を指定することを特徴とする連想メモリ装置。
  6. 請求項3記載の連想メモリ装置において、
    前記検索対象グループ格納部は、検索対象とするグループの検索結果の返却順序を予め設定されることを特徴とする連想メモリ装置。
  7. 請求項6記載の連想メモリ装置において、
    前記検索対象グループ格納部に検索対象とするグループの検索結果の返却順序が予め設定されていても、前記検索入力で検索対象のグループの検索結果の返却順序が指定されると、前記検索入力の検索対象グループの検索結果の返却順序で返却を検索対象とすることを特徴とする連想メモリ装置。
  8. 請求項1記載の連想メモリ装置において、
    前記エントリは、自エントリが属するグループを格納するグループ格納部を有することを特徴とする連想メモリ装置。
  9. 請求項1記載の連想メモリ装置において、
    前記エントリは、自エントリのキーを格納するエントリ格納部を有することを特徴とする連想メモリ装置。
  10. 請求項1乃至9のいずれかに記載の連想メモリ装置を用いて構成したことを特徴とする中継装置。
JP2002204561A 2002-07-12 2002-07-12 連想メモリ装置及びそれを用いた中継装置 Expired - Fee Related JP4105910B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2002204561A JP4105910B2 (ja) 2002-07-12 2002-07-12 連想メモリ装置及びそれを用いた中継装置
US10/348,838 US6950899B2 (en) 2002-07-12 2003-01-22 Associative memory device returning search results of a plurality of memory groups successively upon one search instruction

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2002204561A JP4105910B2 (ja) 2002-07-12 2002-07-12 連想メモリ装置及びそれを用いた中継装置

Publications (2)

Publication Number Publication Date
JP2004046988A true JP2004046988A (ja) 2004-02-12
JP4105910B2 JP4105910B2 (ja) 2008-06-25

Family

ID=30112721

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2002204561A Expired - Fee Related JP4105910B2 (ja) 2002-07-12 2002-07-12 連想メモリ装置及びそれを用いた中継装置

Country Status (2)

Country Link
US (1) US6950899B2 (ja)
JP (1) JP4105910B2 (ja)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009532989A (ja) * 2006-04-03 2009-09-10 エクストリーム・ネットワークス・インコーポレイテッド Camのキーサイズを超えるテーブルインデックスを用いてテーブルルックアップ動作を実行する方法
JP2009219012A (ja) * 2008-03-12 2009-09-24 Ipt Corp 固定長データの検索方法
JP2009289071A (ja) * 2008-05-29 2009-12-10 Nec Access Technica Ltd レジスタデータリード回路、半導体集積回路およびレジスタデータ出力方法
JP2013511223A (ja) * 2009-11-16 2013-03-28 マーベル ワールド トレード リミテッド 反復解析及び分類
JP2015053673A (ja) * 2013-08-05 2015-03-19 アラクサラネットワークス株式会社 パケット中継装置及びパケット中継方法

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7680978B1 (en) * 2007-09-05 2010-03-16 Juniper Networks, Inc. Reducing content addressable memory (CAM) power consumption counters
US20100057685A1 (en) * 2008-09-02 2010-03-04 Qimonda Ag Information storage and retrieval system
KR101679447B1 (ko) * 2009-06-02 2016-11-24 인텔 코포레이션 분산된 연관 메모리 베이스를 제공하기 위한 방법, 시스템 및 컴퓨터 프로그램 제품
KR20130093707A (ko) * 2011-12-23 2013-08-23 한국전자통신연구원 패킷 분류 장치 및 그것의 패킷 분류 방법

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5774888A (en) 1980-10-28 1982-05-11 Nippon Telegr & Teleph Corp <Ntt> Associative memory device
JP3228249B2 (ja) * 1998-12-04 2001-11-12 日本電気株式会社 ルータ装置
US6542391B2 (en) * 2000-06-08 2003-04-01 Netlogic Microsystems, Inc. Content addressable memory with configurable class-based storage partition
US6757779B1 (en) * 1999-09-23 2004-06-29 Netlogic Microsystems, Inc. Content addressable memory with selectable mask write mode
US6826180B1 (en) * 2000-06-14 2004-11-30 Mindspeed Technologies, Inc. Communication packet processor with a look-up engine and content-addressable memory for storing summation blocks of context information for a core processor
US6745280B2 (en) * 2002-03-28 2004-06-01 Integrated Device Technology, Inc. Content addressable memories having entries stored therein with independently searchable weight fields and methods of operating same

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009532989A (ja) * 2006-04-03 2009-09-10 エクストリーム・ネットワークス・インコーポレイテッド Camのキーサイズを超えるテーブルインデックスを用いてテーブルルックアップ動作を実行する方法
JP4742167B2 (ja) * 2006-04-03 2011-08-10 イクストリーム・ネットワークス・インコーポレーテッド Camのキーサイズを超えるテーブルインデックスを用いてテーブルルックアップ動作を実行する方法
JP2009219012A (ja) * 2008-03-12 2009-09-24 Ipt Corp 固定長データの検索方法
JP2009289071A (ja) * 2008-05-29 2009-12-10 Nec Access Technica Ltd レジスタデータリード回路、半導体集積回路およびレジスタデータ出力方法
JP2013511223A (ja) * 2009-11-16 2013-03-28 マーベル ワールド トレード リミテッド 反復解析及び分類
JP2016001897A (ja) * 2009-11-16 2016-01-07 マーベル ワールド トレード リミテッド 反復解析及び分類
JP2015053673A (ja) * 2013-08-05 2015-03-19 アラクサラネットワークス株式会社 パケット中継装置及びパケット中継方法

Also Published As

Publication number Publication date
US20040010657A1 (en) 2004-01-15
JP4105910B2 (ja) 2008-06-25
US6950899B2 (en) 2005-09-27

Similar Documents

Publication Publication Date Title
US6665297B1 (en) Network routing table
US7694068B1 (en) Re-entrant processing in a content addressable memory
US8295286B2 (en) Apparatus and method using hashing for efficiently implementing an IP lookup solution in hardware
US6006306A (en) Integrated circuit with stage-implemented content-addressable memory cell
US6181698B1 (en) Network routing table using content addressable memory
US7233597B2 (en) High speed parser
US7565343B2 (en) Search apparatus and search management method for fixed-length data
US5920886A (en) Accelerated hierarchical address filtering and translation using binary and ternary CAMs
USRE43552E1 (en) Block programmable priority encoder in a cam
US5438535A (en) Content addressable memory system
JPH1173782A (ja) ルータを有するネットワークシステムおよび改良されたルータおよびそのルータに用いられる連想メモリ
WO2003044671A1 (en) Ram-based range content addressable memory
WO2004114611A2 (en) Architecture for network search engines with fixed latency, high capacity, and high throughput
US20140358886A1 (en) Internal search engines architecture
JP4105910B2 (ja) 連想メモリ装置及びそれを用いた中継装置
CN109981464B (zh) 一种在fpga中实现的tcam电路结构及其匹配方法
EP2382635B1 (en) Content assembly memory and method
US7924839B2 (en) Mechanism to reduce lookup latency in a pipelined hardware implementation of a trie-based IP lookup algorithm
JP2002313086A (ja) 情報検索装置
US6961337B2 (en) Interleaved processing system for processing frames within a network router
US7114026B1 (en) CAM device having multiple index generators
US6853640B1 (en) Data selection apparatus
JP2011002910A (ja) 検索処理装置及び検索処理方法
JP3700574B2 (ja) 検索成功信号先読み式出力データ選択装置
JP2004265528A (ja) 連想メモリ

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20041124

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20070115

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20070123

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20070319

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20071023

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20071225

A911 Transfer to examiner for re-examination before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20080117

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20080219

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20080227

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20080328

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

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20110404

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20120404

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20130404

Year of fee payment: 5

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

Free format text: PAYMENT UNTIL: 20140404

Year of fee payment: 6

LAPS Cancellation because of no payment of annual fees