JP2004282421A - シフト機能付き連想記憶メモリ及びアドレス検索装置 - Google Patents

シフト機能付き連想記憶メモリ及びアドレス検索装置 Download PDF

Info

Publication number
JP2004282421A
JP2004282421A JP2003071313A JP2003071313A JP2004282421A JP 2004282421 A JP2004282421 A JP 2004282421A JP 2003071313 A JP2003071313 A JP 2003071313A JP 2003071313 A JP2003071313 A JP 2003071313A JP 2004282421 A JP2004282421 A JP 2004282421A
Authority
JP
Japan
Prior art keywords
address
registered
memory
information
entry
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.)
Pending
Application number
JP2003071313A
Other languages
English (en)
Inventor
Takahiro Aoyama
恭弘 青山
Kageyuki Kiyose
景之 清瀬
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.)
Panasonic Holdings Corp
Original Assignee
Matsushita Electric Industrial Co 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 Matsushita Electric Industrial Co Ltd filed Critical Matsushita Electric Industrial Co Ltd
Priority to JP2003071313A priority Critical patent/JP2004282421A/ja
Publication of JP2004282421A publication Critical patent/JP2004282421A/ja
Pending legal-status Critical Current

Links

Images

Abstract

【課題】エントリの順序管理を短い処理時間でかつ小さな回路規模で行う。
【解決手段】RAM301にMACアドレス、タイムスタンプなどを記憶し、RAMとアドレスが1対1で対応するCAM101にIPアドレスを記憶して、CAMが指定IPアドレスに応じたアドレスを出力してRAMのMACアドレスを読み出す場合に、CAMのアドレスを状態保持部2023に保持して、RAM、CAMに新規情報を登録する場合に、状態保持部に既に登録されているCAMのアドレスを一括して下位の状態保持部に後方シフトし、後方シフトにより空いた最上位の状態保持部にCAMの新規アドレスを登録して、状態保持部に登録されているCAMのアドレスに基づいて、RAMに記憶されているMACアドレスの学習順序を学習する。
【選択図】 図13

Description

【0001】
【発明の属する技術分野】
本発明は、ルータ、ブリッジなどに好適なシフト機能付き連想記憶メモリ(CAM:Content Addressable Memory)及びアドレス検索装置に関する。
【0002】
【従来の技術】
一般に、TCP/IPにより最初に通信を行う場合、NICにより通信相手に割り当てられている物理アドレスであるMAC(メディア・アクセス・コントロール)アドレスは不明である。そこで、ARP(アドレス解析プロトコル)では、ARPフレームのターゲットIA(インターネット・アドレス)に宛先IAをセットしたリクエストをセグメント内の全ノードに対してブロードキャストすることにより、各ノードから返答されたMACアドレスを知ることができる。そして、このMACアドレスは送信元のノードにキャッシュとして登録される。
【0003】
また、パケット(IPデータグラム)を宛先に届けるためのルーティング・アルゴリズムとして、距離ベクトル・ルーティングやリンク状態ルーティングなどが知られ、このアルゴリズムはルータに実装されている。ルータはルーティングに必要なデータ(IPアドレスとMACアドレス、ポート番号などとの対応関係)を集めたルーティング・テーブルを有し、このテーブルに基づいてルーティングを行う。
【0004】
このようなルーティングを行う場合、IPフォワーディングに用いるルーティングテーブルとARPテーブルの検索処理を高速化する必要があり、また、パケット・スループットの向上、ハードウェア処理の簡単化のために、エントリ数に拠らず一定時間内に検索処理を完了させる必要がある。しかしながら、テーブルをRAMのみにより構成すると、エントリ数に応じて検索時間が増大する。また、2分岐検索や線形検索などの手法では、平均検索時間を短縮できるものの常に一定時間内に検索処理を完了させることができない上に制御が複雑になる。
【0005】
そこで、上記問題を解決する従来例としては、例えば特許文献1〜4などには連想記憶メモリ(CAM)とRAMによりARPテーブルを構成することにより検索の高速化を図る方法が提案されている。ここで、RAMは読み出しアドレスが入力するとそのエリアのデータを出力するのに対し、CAMはコンテンツデータが入力するとそのエリアのアドレスを出力する。
【0006】
【特許文献1】
特開平6−261078号公報
【特許文献2】
特開平10−222535号公報
【特許文献3】
特開平10−289591号公報
【特許文献4】
特開2000−151709号公報
【0007】
図65は従来の方法を示し、CAM101とRAM301のアドレスは固定的に対応している。また、CAM101の各アドレスエリアにはVALIDビット及びIPアドレスが記憶され、RAM301の各アドレスエリアにはエントリ (MACアドレス、送出ポート番号及びタイムスタンプ)が記憶される。そして、CAM101のIPアドレスを検索して一致するエントリ位置に対応するRAM301のエントリを読み出すことで、IPアドレスに対応するMACアドレスを知ることができる。また、RAM301に記憶されたタイムスタンプ値と現在のタイマ値の差分により、個々のエントリの登録経過時間を計算することができる。
【0008】
【発明が解決しようとする課題】
ところで、フルエントリ状態にあるルーティングテーブル(ARPテーブル)対して更に新規エントリ登録を行う場合は、登録されたエントリの中で最も古い登録データに上書き登録を行う必要があるが、これを実現するためには全登録エントリの順序管理が必要となる。また、登録時間がある一定以上経過したエントリを削除する処理(エージング処理)を小規模な回路構成で精度良く実現するためには、最も古い登録データを常に把握してそれを監視する手順が有効であるので、その意味でも順序管理が望ましい。
【0009】
しかしながら、エントリの順序管理をRAM301により行うと、上記の上書き登録が連続して必要となった場合にスループットの低下要因となるという問題点がある。さらに、全エントリに対して登録経過時間を管理して、必要に応じてその中で最も経過時間が長いものを選択する手順は、大きな処理時間を必要とする。また、各エントリ対応に登録経過時間を示すタイマを設けると、回路規模が非常に大きくなる。
【0010】
本発明は上記従来例の問題点に鑑み、エントリの順序管理を短い処理時間でかつ小さな回路規模で行うことができるシフト機能付き連想記憶メモリ及びアドレス検索装置を提供することを目的とする。
【0011】
【課題を解決するための手段】
本発明のシフト機能付き連想記憶メモリは、上記目的を達成するために、複数のエントリ情報の各々を保持する複数のエントリ情報保持手段と、
新規エントリ情報を前記保持手段に登録する場合に、前記保持手段に既に登録されているエントリ情報を一括して下位の保持手段に後方シフトし、前記後方シフトにより空いた最上位の保持手段に前記新規エントリ情報を登録する手段と、を有するように構成した。
上記構成により、複数のエントリ情報の各々が時間順に保持されるので、エントリの順序を短い処理時間で管理することができる。
【0012】
本発明のシフト機能付き連想記憶メモリはまた、前記複数の保持手段に登録されている各エントリ情報とインデックス情報を比較し、前記インデックス情報と同じエントリ情報がどの保持手段に登録されているかを検索する検索手段をさらに有するように構成した。
上記構成により、検索対象のエントリ情報をインデックス情報として入力することにより、エントリ情報を短い処理時間で検索することができる。
【0013】
本発明のシフト機能付き連想記憶メモリはまた、前記複数の保持手段のいずれかに既に登録されているエントリ情報を削除して新規エントリ情報を登録する場合に、前記検索手段により削除対象のエントリ情報がどの保持手段に登録されているかを検索してその保持手段に登録されているエントリ情報を削除し、その上位の保持手段に登録されているエントリ情報を部分的に下位の保持手段に後方シフトし、前記後方シフトにより空いた最上位の保持手段に前記新規エントリ情報を登録するように構成した。
上記構成により、既に登録されているエントリ情報を削除して新規エントリ情報を登録する場合に、複数のエントリ情報の各々を時間順に保持することができる。
【0014】
本発明のシフト機能付き連想記憶メモリはまた、前記複数の保持手段のいずれかに既に登録されているエントリ情報を削除する場合に、前記検索手段により削除対象のエントリ情報がどの保持手段に登録されているかを検索してその保持手段に登録されているエントリ情報を削除し、その下位の保持手段に登録されているエントリ情報を部分的に上位の保持手段に前方シフトするように構成した。
上記構成により、既に登録されているエントリ情報を削除する場合に、複数のエントリ情報の各々を時間順に保持することができる。
【0015】
本発明のシフト機能付き連想記憶メモリはまた、前記部分的シフトを許可/停止する制御ラインが共通化されているように構成した。
上記構成により、小さな回路規模で複数のエントリ情報の各々をシフトして時間順に保持することができる。
【0016】
本発明のシフト機能付き連想記憶メモリはまた、前記エントリ情報はそのエントリ情報が有効か無効を示す識別情報を含み、前記識別情報に基づいて物理位置として最も後段に位置するエントリ情報を外部に出力する手段をさらに有するように構成した。
上記構成により、登録順が最も古いエントリ情報を簡単に管理することができる。
【0017】
本発明のシフト機能付き連想記憶メモリはまた、前記検索手段が、前記複数の保持手段に登録されている各エントリ情報とインデックス情報を比較する複数の比較手段を有し、前記複数の比較手段の各比較結果を裏打ち回路を介して外部に検索結果として出力するように構成した。
【0018】
上記構成により、検索結果を短時間で外部に取り出すことができる。
【0019】
本発明のアドレス検索装置は、登録時間を含む情報を記憶する第1のメモリと、
前記第1のメモリとアドレスが1対1で対応して各アドレスに前記第1のメモリの検索情報を記憶し、指定された検索情報に対応する前記第1のメモリのアドレスを出力する第2のメモリと、
前記第2のメモリの各アドレスを保持する複数の保持手段と、
前記第1、第2のメモリにそれぞれ新規情報、検索情報を登録する場合に、前記保持手段に既に登録されている前記第2のメモリのアドレスを一括して下位の保持手段に後方シフトし、前記後方シフトにより空いた最上位の保持手段に前記新規情報の検索情報に対応する前記第2のメモリのメモリアドレスを登録する手段と、
前記保持手段に登録されている前記第2のメモリのアドレスに基づいて、第1のメモリに記憶されている情報の順序を管理する手段とを、
有するように構成した。
上記構成により、ルータ、ブリッジなどにおいて第1のメモリにMACアドレスなどを格納する場合に、MACアドレスなどの登録順を短い処理時間で管理することができる。
【0020】
本発明のアドレス検索装置はまた、前記複数の保持手段に登録されている前記第2のメモリの各アドレスとインデックス情報を比較し、前記インデックス情報と同じ第2のメモリのアドレスがどの保持手段に登録されているかを検索する検索手段をさらに有し、前記第1、第2のメモリに登録されている情報を削除して新規情報を登録する場合に、前記検索手段により削除対象の第2のメモリのアドレスがどの保持手段に登録されているかを検索してその保持手段に登録されている第2のメモリのアドレスより上位の保持手段に登録されている第2のメモリのアドレスを部分的に下位の保持手段に後方シフトし、前記後方シフトにより空いた最上位の保持手段に新規の第2のメモリのアドレスを登録するように構成した。
上記構成により、ルータ、ブリッジなどにおいて第1のメモリに登録されているMACアドレスなどを削除して新規MACアドレスなどを登録する場合に、複数のMACアドレスの登録順を管理することができる。
【0021】
本発明のアドレス検索装置はまた、前記第1、第2のメモリに登録されている情報を削除する場合に、前記検索手段により削除対象の第2のメモリのアドレスがどの保持手段に登録されているかを検索してその保持手段に登録されている第2のメモリのアドレスを削除し、その下位の保持手段に登録されている第2のメモリのアドレスを部分的に上位の保持手段に前方シフトするように構成した。
上記構成により、ルータ、ブリッジなどにおいて第1のメモリに登録されているMACアドレスなどを削除する場合に、複数のMACアドレスの登録順を管理することができる。
【0022】
本発明のアドレス検索装置はまた、前記第1、第2のメモリに登録されている情報を改めて学習する場合に、現在時刻から前記第1のメモリに登録された登録時刻を引いた学習経過時間をクリアして、前記検索手段により学習対象の第2のメモリのアドレスがどの保持手段に登録されているかを検索してその保持手段に登録されている第2のメモリのアドレスを削除し、その上位の保持手段に登録されている第2のメモリのアドレスを部分的に下位の保持手段に後方シフトし、前記後方シフトにより空いた最上位の保持手段に学習対象の第2のメモリのアドレスを再登録するように構成した。
【0023】
上記構成により、ルータ、ブリッジなどにおいてMACアドレスの登録時間の学習順序を再構築することができる。
【0024】
本発明のアドレス検索装置はまた、前記第1、第2のメモリに登録されていない情報を新規に学習する場合に学習経過時間をクリアして、前記検索手段により学習対象の第2のメモリのアドレスがどの保持手段に登録されているかを検索して登録されていないときに、前記保持手段に登録されている最も古い第2のメモリのアドレスに基づいて前記第1、第2のメモリに前記情報を上書き登録するとともに、前記保持手段に登録されている最も古い第2のメモリのアドレスを削除してその上位の保持手段に登録されている第2のメモリのアドレスを下位の保持手段に後方シフトし、前記後方シフトにより空いた最上位の保持手段に第2のメモリの同じアドレスを再登録するように構成した。
【0025】
上記構成により、ルータ、ブリッジなどにおいてMACアドレスの登録時間の再学習順序を再構築することができる。
【0026】
本発明のアドレス検索装置はまた、実時間を示すタイマ値を前記第1のメモリに格納して、タイマ値と前記第1のメモリに格納されている前記時間情報差分により前記学習経過時間を計算するように構成した。
上記構成により、ルータ、ブリッジなどにおいてMACアドレスの登録時間を学習することができる。
【0027】
本発明のアドレス検索装置はまた、前記保持手段に登録されている最も古い第2のメモリのアドレスを周期的に読み出し、そのアドレスに対応する前記第1のメモリの前記学習経過時間を計算して一定時間経過している場合に前記第1、第2のメモリ、保持手段から当該情報を削除するように構成した。
上記構成により、ルータ、ブリッジなどにおいて古いMACアドレスを削除することができる。
【0028】
【発明の実施の形態】
以下、図面を参照して本発明の実施の形態について説明する。図1は本発明に係るシフト機能付連想記憶メモリを有するアドレス検索装置の基本的な構成を説明するためのブロック図である。
【0029】
学習テーブル1は、本装置が実装される宅内ルータRに接続された宅内側ネットワークNW1の端末PCのIPアドレス:MACアドレス対応の検索テーブル(ARPテーブル)として機能する。学習テーブル1は、高速検索・学習機能の実現のため、連想記憶メモリを用いた構成を採用している。
【0030】
機能
・検索機能(IPアドレスからMACアドレスを検索)
・学習機能(空き位置登録/最古登録位置への上書き登録/再学習)
・登録削除を伴う検索機能
・学習順序管理機能
・自立エージング機能(エントリの時限管理)
・アドレス情報(MAC/IP)読出し機能
・アドレス指定(MAC/IP)の登録削除機能
・全登録情報削除機能
構成
・連想記憶メモリ(CAM)を用いた高速検索を実現する
・双方向シフト機能付き連想記憶メモリ(sCAM)を用いた学習順序制御
【0031】
学習数(エントリ数):
ルータモード学習数=最大128登録(IP、MACアドレス対応記憶)
最大学習数=1〜128設定可能
既学習数の通知=常時通知(0〜128)
処理速度:
検索処理、学習処理、端末移動判定付き検索処理、エージング処理、アドレス情報読出し、特定登録削除、全登録削除=全て2クロック以内に処理完了
【0032】
エージング処理:
エージングタイマ単位=100ms固定
最大エージングタイマ値=0〜50分
ルータモード標準値=default:30分(登録削除閾値)
時間精度=誤差±30秒未満
エージング処理の実施=実施/非実施の設定が可能
エージングタイマの停止=設定により停止可能
エージング処理数通知=処理実施数の累計を通知する
【0033】
以下、図1を用いてアドレス学習に関連する宅内ルータRの機能仕様を示す。
【0034】
アドレス学習機能
自分宛てのARP要求パケットあるいはARP応答パケット(アドレス解決パケット)を受信した際に、送信元IPアドレスと送信元MACアドレスを対応させて学習テーブル1に登録する。登録された各アドレス対応(=エントリ)は、それぞれ最後に学習が行われてからの経過時間(=学習経過時間)が管理され、学習経過時間の新しい順に順序管理が行われる。構成する学習テーブル1は「ARPテーブル」に相当し、学習テーブル1に登録されるアドレスは自分が属する宅内側ネットワークNW1内のホスト/ルータのアドレスに限られる。宅内ルータRは別途「ルーティングテーブル」を持たず、ディフォルトルートが網側ファースト・ホップ・ルータに固定されるため、当該ルータのアドレスは学習テーブル1にて管理しない。よって宅内側ネットワークNW1の端末PCのIPアドレス:MACアドレス対応だけが学習テーブル1にて管理される。なお、ARPパケット以外で学習処理は行わない。
【0035】
・未登録アドレスの新規学習
学習テーブル1に登録されていない宅内側IPアドレス:MACアドレス対応を新規に学習する場合、学習テーブル1に空きがあれば空き位置に新規登録を行う。空きがない場合は学習経過時間が最も長い既登録位置に上書き登録を行う。
・既登録アドレスの再学習
学習すべき宅内側IPアドレス:MACアドレス対応が既に学習テーブル1に登録されている場合は、既登録アドレスの学習経過時間を初期化する。
・最大登録数
最大128組のIPアドレス:MACアドレス対応を記憶
【0036】
アドレス検索機能
ユニキャストパケットのフォワーディングに際して、送信先IPアドレスが宅内側ネットワークNW1に属する場合は、学習テーブル1により送信先IPアドレスに対応するMACアドレスを検索する。検索により所望のMACアドレスが見つかれば、フレームの送信先MACアドレスを書き換えてフォワーディングされるが、検索不一致の場合はアドレス解決(ARP要求)が行われる。また、送信先IPアドレスが宅内側ネットワークNW1に属さない場合は、自分が属する網側ネットワークNW2宛てか自分が属さないネットワーク宛てであり、何れもデフォルトルートの網側ファースト・ホップ・ルータに転送されることになるため、送信先MACアドレスに先のルータのMACアドレスを設定する。この際、学習テーブル1の参照は行わない。図2は宅内側ネットワークNW1宛てユニキャストパケットのフォワーディング処理を示し、図3は網側ネットワークNW2宛てユニキャストパケットのフォワーディング処理を示す。
【0037】
学習・検索機能の機能分担
図4にアドレス学習・検索機能の機能分担を示す。IPアドレス−MACアドレス対応の学習は、ARPパケット処理に基づきソフトウェア(CPU10)から指示される。学習指示と共に指定されるアドレス情報は宅内側ネットワークNW1に属するアドレスであり学習テーブル1に登録される。他方、網側ルータのアドレス情報は、ルータのMACアドレスのみがソフトウェアからレジスタ2に登録される。ヘッダ処理部3は宅内側ネットワークNW1宛てのユニキャストパケットに対し、学習テーブル1の検索により送信先MACアドレスの書き換えを行う。また網側ネットワークNW2宛てのユニキャストパケットに対しては、レジスタ2に設定された網側ルータのMACアドレスを送信先MACアドレスに設定する。
【0038】
学習・検索機能の設定項目と状態通知
図5は学習・検索機能のハードウエア設定項目と状態通知を示す。
(1)最大学習アドレス数ALRNMAX(width:8bit sphere:1〜128)の設定パラメータであり、CPU10からハードウエア(ヘッダ処理部3など)に設定可能
(2)学習済みアドレス数ALRNCRT(width:8bit sphere:0〜128)がハードウエア側からCPU10に常時通知される。
【0039】
エージング機能
図6はアドレス学習とエージング処理の時間関係を示す。宅内機器の移動などに伴うアドレス情報の変更により、学習テーブル1に無駄な登録が残ることを防止するため、学習経過時間がエージング時間(30分)を超えたアドレス情報は自動的に削除される。学習テーブル1に登録された各アドレス情報の学習時間管理と削除はハードウェアが自立して行い、何れかのアドレスを削除(エージング)した際は、ソフトウェアへ削除アドレス(IP:MAC)が割り込みにて通知される。本エージング処理によれば、宅内側の学習アドレスは所定の学習時間が経過した時点で無条件に削除され、それ以降に当該アドレス情報が再び必要となった際(パケット受信時)に再度アドレス解決(ARP処理)が実施される。
【0040】
エージング機能の設定項目と状態通知
図7はエージング機能の設定項目と状態通知を示す。
(1)AGENと、エージングタイマイネーブルと、width:1bit (1:ON/0:OFF)を含むフレームにより、ディスエーブルではエージング用内部タイマを停止する。
(2)AGEMAXと、最大エージングタイマ値と、width:16bit sphere:0〜30000を含むフレームにより(ただし、エージングタイマ単位(100ms固定)×AGEMAXが実時間)、
・エージング判定の閾値に用いる(学習時間>AGEMAXでエントリ削除)
・AGEMAX=0設定は、閾値が無限大に設定されたことを意味する(エントリが削除されない)
(3)AGED_CNTと、エージング処理実施カウンタと、width:16bit sphere:0〜65535を含むフレーム:エージング処理の実施回数をカウントするフリーランカウンタ(巡回カウント)。最大学習アドレス数ALRNMAXと同様、CPU10からハードウエアに設定可能。
【0041】
網側デフォルトルート管理
デフォルトルートは固定的に網側ルータに設定されることから、網側へ送出するユニキャストフレームの送信先MACアドレスには必ず網側ルータのMACアドレス(デフォルトMACアドレス)が設定される。このアドレスはソフトウェア側で保持・管理され、レジスタ設定としてヘッダ処理部3へ通知される。ソフトウェアは初期設定の段階で網側ルータのアドレス解決を図り、デフォルトアドレスを取得して先のレジスタを設定した後にハードウェアをパケット受信イネーブル状態とする。装置稼動中はソフトウェア側でエージング処理が行われ、網側ルータの装置変更によりMACアドレスが変更された場合はハード側の設定レジスタが書き換えられる。ソフト側のエージング処理に伴い設定レジスタの内容が無効となることはなく、ハードウェア稼動中は何らかのアドレスが常にレジスタに設定される。
【0042】
学習テーブル1のコマンドインタフェース
図8は学習テーブル1のコマンドインタフェースの機能構成を示す。学習テーブル1はソフトウェア及び上り/下り用のヘッダ変換部から動作指示コマンドを受け取って動作する。3者の制御元はそれぞれ独立にコマンドを発行するため、コマンド実行順序の調停が必要となる。また学習テーブル1内部のエージング処理部11が上記制御元に対して独立したエージング実行コマンドを発行するため、あわせて調停が必要となる。調停制御の優先順序は以下の通り。
上り/下り用のヘッダ変換部発行コマンド
>ソフトウェア発行コマンド
>エージング処理
【0043】
動作コマンド
図9はルータモードの動作コマンドを示す。
・IPアドレス検索(サーチ)コマンド
atIPS(SRCH):IP→MACアドレス変換
・IPアドレス学習コマンド
atIPL(LRN):IP←→MACアドレス学習
・IPアドレスエージングコマンド
atIPA:エージング処理(一定周期に実行)
・IPアドレス消去コマンド
atDLT(DLT):IPアドレス指定で登録削除
・IPアドレス読み出しコマンド
atREAD(READ):エントリ位置指定で登録情報読出し
・IPアドレス全クリアコマンド
atACLR(ACLR):全登録削除
ただし、括弧内のコマンド名はCPUインタフェースにおけるコマンド名。
【0044】
上記の各コマンド(検索:SRCH、学習:LRN、消去:DLT、読み出し:READ、全クリア:ACLR、エージング)動作時の学習テーブル1の入出力情報を図10に示す。
【0045】
機能構成
図11は学習テーブル1の機能及び構成を示し、図12はその使用例を示す。学習テーブル1は図11に示すように4つの機能ブロック{コントロールブロック4、CAMブロック100、本発明に係るシフト機能付連想記憶メモリブロック(以下、sCAMブロック)200、RAMブロック300}から構成される。アドレスの高速検索はCAMブロック100にて実現し、IPアドレスを記憶する。また、sCAMブロック200はCAM101のアドレス番号を登録の新しさ順に並べて管理する。学習テーブル1の登録情報全般は、臨時書き込み読み出し、RAMブロック300のメモリ(RAM)301にて記憶する。
【0046】
図13は、CAMブロック100と、sCAMブロック200とRAMブロック300の対応関係を示している。CAMブロック100はCAM101を有し、sCAMブロック200はsCAM201を有し、RAMブロック300はRAM301を有する。CAM101の各アドレスにはMSB側にVALIDビット、下位ビット側にIPアドレスが格納される。sCAM201の各アドレスにはMSB側にVALIDビット、下位ビット側にCAM101のアドレスが格納される。RAM301の各アドレスにはIPアドレス及びMACアドレス、送出ポート番号及びタイムスタンプが格納される。本実施例における宅内ルータRは、宅内側ネットワークNW1に接続されたポートを1ポートに限定しているため、RAM301の登録情報として省略されている。また、RAM301に登録されたIPアドレスはCAM101に登録されたIPアドレスと同じものである。CAM101とRAM301の各アドレスは1対1に対応し、また、CAM101は格納情報(エントリ)が指示されるとアドレスを出力する。
【0047】
<CAMブロック>
CAMブロック100の機能:
CAM(Content Addressable Memory)101は、連想記憶メモリと呼ばれる検索機能付きの機能メモリである。不図示のパケット処理部あるいはCPU10からの指示に従ってパケットのアドレス情報を複数記憶し、必要に応じて以下のように登録情報の検索や消去などの動作が行える(図14参照)。
【0048】
1.検索機能(search):
CAM101に外部から与えられた比較情報であるインデクスと一致するエントリ(CAM格納情報:MSBがVALIDビット、下位がIPアドレス)を検索する。一致するエントリがあれば、エントリ位置(CAMアドレス)が出力される。
2.空き位置書き込み機能(blank−feed):
空き位置に新規エントリを登録する。最もCAMアドレスが若い空き位置に優先して書き込みが行われる。空きがない場合は何れのエントリにも書き込みが行われない。
3.位置指定書き込み機能(write):
CAMアドレス指定で新規エントリを登録する。VALID=0を書き込むことで特定エントリを無効にすることが可能。
4.VALIDビット読出し機能(read):
CAMアドレス指定で特定エントリのVALIDビットを読み出す。(VALID=”1”…有効エントリ/VALID=”0”…無効エントリ)
5.全クリア機能(clear):
全てのエントリ登録を無効にする。(全てのエントリレジスタを”0”に強制する)。
6.フルエントリ状態通知:
全てのエントリが登録状態の場合に、フルエントリ通知を行う。
【0049】
図15はCAM101の構成を示す説明図であり、CAM101の各エントリは、登録情報を記憶するエントリレジスタと、エントリの有効/無効の判断に使用するVALIDビットより構成される。各エントリは物理配列順にアドレス(CAMアドレス)が与えられており、検索処理や空き位置書き込み処理の結果としてCAM101から該当するアドレス番号が出力される。この例では、
エントリ数N=128
エントリ幅n=32ビット
アドレス幅m=7ビット=0〜127
である。
【0050】
図16はCAMブロック100の構成を示し、また、図16におけるCAMブロック100の信号を以下に示す(図17参照)。ここで、極性=Pはハイアクティブを示し、極性=Nはロウアクティブを示す。
CIDX [n−1:0]:I/O=I、極性=P、機能=インデクス入力(検索用パターン)
CENTI [n:0]:I/O=I、極性=P、機能=エントリ入力(blank−feed/write用 )
CADDI [m−1:0]:I/O=I、極性=P、機能=アドレス入力(read/write用)
CENBFEED:I/O=I、極性=P、機能=blank−feed機能イネーブル信号
CENWRT:I/O=I、極性=P、機能=write機能イネーブル信号
CENACR:I/O=I、極性=P、機能=clear機能イネーブル信号
CADDO [m−1:0]:I/O=O、極性=P、機能=アドレス出力(search/blank−feed用)
CSST:I/O=O、極性=P、機能=検索結果出力(search用)
CVAILDO:I/O=O、極性=P、機能=特定エントリのVAILDビット出力
CFULLACKN:I/O=O、極性=N、機能=フルエントリ状態通知
【0051】
CAMブロック100は1/N選択を行うセレクタユニット(selecter unit )102と、エントリの数N(この例では最大128個)に対応して設けられるCAMユニット(基本ユニット)103と、CAMユニット103内のN段の比較器1031の各比較結果の連結OR出力の高速化処理を行う裏打ち回路(shank unit)104と、1/N出力を行う3基のHORユニット105により構成される。
【0052】
1/N選択回路(selector unit):
1/N選択回路102は、外部アドレス入力CADDI[m−1:0]をN本のSIN信号にデコードしてCAMユニット103に供給する。SIN信号はwrite機能あるいはread機能においてN基のCAMユニット103のうち1基を選択する場合に機能する。1/N選択回路102のデコード論理を図18に示す。
【0053】
基本ユニット(CAM unit)103:
CAMユニット103の各々は、比較回路(comp.)1031と、アドレス記憶部(const.)1032と、n+1ビットのエントリ分の状態保持部1033と、各種のゲートを有する。
比較回路(comp.)1031:
与えられるインデクス情報と、状態保持部1033のエントリ内容の一致判定を行う。
入力端子A,B:比較データ入力
入力端子E,DE:比較処理イネーブル/ディスイネーブル(優先度DE>E)
出力端子Q:比較結果出力(一致…”1”、不一致…”0”)
【0054】
アドレス記憶部(const.)1032:
エントリ毎にCAMアドレスを記憶する。
エントリ毎固定値( 0000000b〜11111111b )
COUT, AOUT, VOUT:1/N出力回路(HOR unit)105へ出力
SI(shank−in):裏打ち回路(shank unit)104からの入力
【0055】
1/N出力回路(HOR unit):
1/N出力回路105は、N基のCAMユニット103のうち0もしくは1基選択されたCAMユニット103から出力されるAOUT, VOUT, COUT信号を論理和演算により外部に出力する。1/N出力回路105の入出力信号を以下に示す(図19参照)。
Figure 2004282421
【0056】
裏打ち回路(shank unit)104:
空き位置書き込み(blank−feed)機能は、データ登録がないエントリのうち最も若いアドレス位置に新規登録が行われる。該当位置よりもアドレスが大きいユニットへ同時に登録が行われないように、N基のCAMユニット103を縦断するOR回路の連結接続が用いられる。学習テーブルのエントリ数が多い場合、単純連結回路ではゲートN段分の伝播遅延が問題となるため、対策として図20に示す階層化裏打ち回路(shank unit)104を用いて伝播遅延の低減を図る。
【0057】
<コマンド制御>
CAMブロック100のコマンド動作と入出力情報を以下に示す。
(1)コマンド動作=search:
与えられたインデクスと一致するエントリを検索する。そのタイミングを図21に示す。
Figure 2004282421
【0058】
(2)コマンド動作=blank−feed:
CAMの空き位置に新規エントリを登録する。そのタイミングを図22に示す。
入力情報:CENTI[n:0]:新規登録エントリ情報(VALIDビット=”1”を含む)
出力情報:CADDO[m−1:0]:登録したエントリのCAMアドレス出力
端子条件:CENBFEED=”1”、CENWRT=”0” 、CENACR=”0”
備考:CAMに空きがない場合、新規エントリの登録は行われない
処理速度:1CLK処理(ただし直前(=1CLK前)でのエントリ更新は禁止)
【0059】
(3)コマンド動作=write:
CAMアドレス指定で新規エントリを登録する(削除する)。そのタイミングを図23に示す。
Figure 2004282421
【0060】
(4)コマンド動作=read:
CAMアドレス指定で特定エントリのVALIDビットを読み出す。そのタイミングを図24に示す。
入力情報:CADDI[m−1:0]:読出し位置アドレス
出力情報:CVALIDO:VALIDビット読出し結果
端子条件:CENBFEED=”0”、CENWRT=”0” 、CENACR=”0”
処理速度:1CLK処理
【0061】
(5)コマンド動作=clear:
全てのエントリ登録を抹消する(全エントリレジスタを”0”に強制する)。そのタイミングを図25に示す。
入力情報:CENTI[n:0] = all”0” (VALIDビットを含む全エントリにall”0”を書き込む)
出力情報:なし
端子条件:CENBFEED=”0”、CENWRT=”0”、CENACR=”1”
処理速度:1CLK処理
【0062】
(6)状態通知:フル状態通知:CFULLACKN:
CAMに空きがあれば ”1” なければ ”0” を常時出力
有効期間:クロック同期のサンプリングは常に可能であるが、エントリ更新直後のサンプリングは基本的に禁止。
【0063】
<sCAMブロック>
sCAMブロック200の機能:
sCAM201はCAM101と同様にロジックアレイで構成された機能メモリである。各登録情報はsCAM201のエントリ位置に対して部分的に、あるいは全体的にシフトさせることができ、常に有効な登録情報が前詰(エントリの物理配置に対して片側詰め)に配置されるように制御が行われる。sCAM201はCAM101のアドレス(CAM出力)を登録情報として管理し、学習やエージング処理に応じてエントリ順序を並び替えることで、CAM101の記憶情報の順序を管理する。
【0064】
以下にsCAMブロック200の各種の機能を示す(図26参照)
1.順列データ記憶機能:
有効エントリを前詰(エントリの物理配置に対して片側詰め)に配置されるように制御を行うことができる(lower shift/upper shift)。
2.前方シフト機能(upper shift):
登録情報を部分的にあるいは全体的に前方へシフトさせる。特定のエントリ情報をsCAM201から削除する際に用いる。削除するエントリ位置を特定するため、CAM101と同様の検索機能を有する。
3.後方シフト機能(lower shift):
登録情報を全体的に後方へシフトさせる。特定のエントリ情報をsCAM201の最前列へ登録する際に用いる。
4.全クリア機能(clear):
全てのエントリ登録を無効にする。(全てのエントリレジスタを”0”に強制する。)
5.最後尾エントリ出力機能:
有効エントリのうち最後尾のエントリ情報を常に出力する。最後尾のエントリは学習時間(学習以降の経過時間)が最も長い登録情報に相当し、エージング処理や上書き学習処理に利用される
【0065】
sCAMデータ構成:
sCAM201の各エントリは、図27に示すように登録情報を記憶するエントリレジスタと、エントリの有効/無効の判断に使用するVALIDビットにより構成される。有効エントリは必ず前詰めに格納されて順序制御が行われる。sCAM201の各エントリは明示的な物理アドレスを持たず、順序変更や登録抹消の際のエントリ選択はCAM101と同様の検索機能により実現される。
Figure 2004282421
【0066】
図28はsCAMブロック200の構成を概略的に示し、図29は図28のsCAMユニットを詳しく示し、図30は図29の比較回路とエントリ出力回路をさらに詳しく示している。sCAMブロック200の入出力信号を以下に示す。
PIDX [m−1:0]:I/O=I、極性=P、機能=インデクス入力(検索用パターン)
PENTI [m:0]:I/O=I、極性=P、機能=エントリ入力(最前列エントリ登録)
PENUSFT:I/O=I、極性=P、機能=前方シフト機能イネーブル信号
PENLSFT:I/O=I、極性=P、機能=後方シフト機能イネーブル信号
PENACR:I/O=I、極性=P、機能=全クリア機能イネーブル信号
PENTO [m−1:0]:I/O=O、極性=P、機能=エントリ出力(最後尾エントリ出力)
PSST:I/O=O、極性=P、機能=検索結果出力
【0067】
sCAM回路構成:
sCAMブロック200は、エントリの数Nに対応して設けられるsCAMユニット(基本ユニット)202[1]〜202[N]と、後述するように連結OR出力の高速化処理を行う裏打ち回路(shank unit)203と、1/N出力を行う1/N出力回路(HORユニット)204により構成されている。
【0068】
基本ユニット(sCAMユニット)202:
sCAMユニット202[1]〜202[N]の各々は、図29、図30に詳しく示すように比較部(comp.)2021と、エントリ出力部(eout.)2022と、m+1ビットのエントリデータPENTI[m:0]の各ビット状態をそれぞれ保持する状態保持部2023[m]〜[0]と、ゲートG1〜G3により構成される。状態保持部2023[m]〜[0]の各々は、ANDゲートG4〜G6と、ORゲートG7とDラッチLにより構成され、それぞれVALIDビットENTM、エントリENTM[m−1:0]を保持して出力する。
【0069】
そして、VALIDビットENTMは、イネーブル信号Eとして自己のユニットの比較部2021とエントリ出力部2022に印加され、エントリENTM[m−1:0]は自己のユニットの比較部2021とエントリ出力部2022の各入力端子Aに印加される。さらに、m+1ビットのエントリENTM[m:0]はそれぞれ上の段の当該ANDゲートG6の一端と、自己の段の当該ANDゲートG5の一端と、下の段の当該ANDゲートG4の一端に印加される。このとき、最上段のANDゲートG4の各一端には、外部からのインデックス情報PENTI[m:0]が印加され、最終段のラッチLの出力は使用されず、開放状態となる。
【0070】
ORゲートG1には自己の段の比較部2021のQ出力信号と、上の段のORゲートG1の出力信号と、裏打ち回路203の出力信号SIが印加され、ORゲートG1の出力信号は、自己の段のANDゲートG2の一端と、下の段のORゲートG1に印加される。ANDゲートG2には自己の段のORゲートG1の出力信号と前方シフトイネーブル信号PENUSFTが印加され、ANDゲートG2の出力信号は、自己の段のNORゲートG3、ANDゲートG6の他端に印加される。したがって、ANDゲートG2の出力=1の場合に、下の段からのエントリENTM[m:0]がANDゲートG6、ORゲートG7を介してラッチLにラッチされる(前方シフト)。
【0071】
また、後方シフトイネーブル信号PENLSFTは、自己の段のNORゲートG3とANDゲートG4の他端に印加される。したがって、PENLSFT=1の場合に、上の段からのエントリENTM、ENT[m−1:0]がANDゲートG4、ORゲートG7を介してラッチLにラッチされる(後方シフト)。このとき、最上段の各ラッチLは外部からのインデックス情報PENTI[m:0]をラッチすることができる。
【0072】
NORゲートG3には、上記のANDゲートG2の出力信号及び後方シフトイネーブル信号PENLSFTの他に、全クリアイネーブル信号PENACRが印加され、NORゲートG3の出力信号は、自己の段のANDゲートG5に印加される。したがって、前方及び公報シフト機能が共にディセーブル(PENUSFT=PENLSFT=0)であって全クリアイネーブル信号が印加(PENACR=1)された場合、各エントリレジスタのANDゲートG4、G5、G6の出力が同時にLとなり、全てのエントリレジスタが0クリアされる。
【0073】
比較回路2021:
図30に詳しく示すように、MSB側の状態保持部2023[m]の出力であるVALIDビットが1の場合に、外部からのインデクス情報PIDX[m−1:0]とエントリ内容(状態保持部2023[m−1:0]の出力ENT[m−1:0])の一致判定を各EX−NORゲートにより行い、次いでANDゲートによりmビットの全てが一致の場合に比較結果SO=1、不一致の場合にSO=0を裏打ち回路203とORゲートG1に出力する。ORゲートG1の出力信号は下の段のORゲートG1に順次印加され、最終段のORゲートG1からは、いずれかのエントリがインデクス情報と一致したことを示す検索結果PSSTが出力される。
【0074】
エントリ出力部2022:
図30に詳しく示すように、自段のVALIDビットが1であって後方側に隣接するVALIDビットが0の場合に(すなわちsCAM201は片側詰めでエントリが登録されるために自エントリが最後尾エントリの場合に)、エントリ内容(状態保持部2023[m−1:0]の出力ENT[m−1:0])をEQ[m−1:0]信号として1/N出力回路(HORユニット)204に出力する。
【0075】
1/N出力回路(HORユニット)204:
各段のEQ信号を論理和演算することで、最後尾エントリ情報をPENTO信号として外部に出力する。sCAM201に有効なエントリ登録が全くない場合は、PENTO[m−1:0] = all”0” が出力される。
Figure 2004282421
【0076】
裏打ち回路(shank unit)203:
ここで、前方シフト機能(upper shift)では、指定情報が格納されたエントリよりも後方のエントリを一律前方へシフトさせる。そこで、sCAM201の全エントリレジスタに対して上記シフト動作の実施/非実施を決定するために、図31に示すようにORゲートG1の連結接続(”shift enable line”)が用い られる。すなわち、学習テーブルのエントリ数が多い場合、ORゲートG1の単純連結回路ではゲートN段分の伝播遅延が問題となるため、CAMユニット100と同様に図31に示す構成のshank unitを用いて伝播遅延の低減を図る。
【0077】
コマンド制御:
sCAMブロック200のコマンド動作と入出力情報を以下に示す。
(1)機能動作=upper shift:
前方シフト機能、既存エントリを抹消する。
入力情報PIDX[m−1:0]:抹消するエントリ情報=検索インデクス
出力情報PSST:検索一致するエントリがあれば ”1” なければ ”0”(確認用)
端子条件:PENUSFT=”1”、PENLSFT=”0”、PENACR=”0”
内部動作:図32(a)、(b)に示すようにsCAM201のエントリ検索を行い、一致するエントリよりも後方のエントリ情報を一律前方にシフトさせることで、所望のエントリ登録を抹消する(最後列のエントリを抹消する場合も本機能を使用する)。検索処理にて一致するエントリが存在しない場合、何れのエントリも消去されず、sCAM201の登録情報は変化しない。
処理速度:2CLK処理
【0078】
(2)機能動作=lower shift:
後方シフト機能、順序の最前列へ新規エントリを登録する。
入力情報PENTI[m:0]:最前列へ登録するエントリ情報(VALID=”1”を含む)
出力情報なし
端子条件:PENUSFT=”0”、PENLSFT=”1”、PENACR=”0”
内部動作:図33に示すように全登録情報を一律後方へシフトさせる。sCAM201がフルエントリの場合は最後列のエントリが抹消されることになるが、実制御においてフルエントリ状態からのlower shiftは行われない。(回路規模低減の為、部分的なシフトは行わない。既登録情報を最前列に移動させる場合は、いったんupper shiftにて登録を削除した後、lower shiftにて再度登録を行う。)
処理速度:1CLK処理
【0079】
(3)機能動作=clear:
全てのエントリ登録を抹消する(全エントリレジスタを”0”に強制する)
入力情報なし
出力情報なし
端子条件:PENUSFT=”0”、PENLSFT=”0”、PENACR=”1”
処理速度:1CLK処理(図34参照)
(4)最後尾エントリ出力PENTO[m:0]:
sCAMに登録された有効エントリ(VALID=”1”)のうち、最後尾に位置するエントリ内容を常に出力する。
【0080】
<RAMブロック>
RAM301の構成及び記憶情報を以下に示す。CAM101のエントリ情報は読出しができないため、全ての情報はRAM301に記憶する(CAM101のエントリ情報と重複する)。
基本仕様
type:同期型シングルポートRAM
organization:n (=48) bit × 2N (=256) word
外部端子port
RADD [m:0]:I/O=I,P/N=P,usage=アドレス入力(R/W共通)
RRDT [n−1:0]:I/O=O,P/N=P,usage=読出しデータ
RWDT [n−1:0]:I/O=I,P/N=P,usage=書込みデータ
RWEN:i/o=i,P/N=N,usage= 書込みイネーブル
記憶情報
エージング値:16 bit,word−0 [47:32]
IPアドレス:32 bit,word−0 [31:0]
MACアドレス:48 bit,word−1 [47:0]
【0081】
図35はCAMブロック100とRAMブロック300の記憶情報を示し、図36はCAM101とRAM301のアドレス対応を示す。
【0082】
<部分lower shift機能付きsCAMの構成>
次に部分lower shift機能付きsCAMについて説明する。図37は図29のsCAMブロックの変形例として、部分lower shift機能付きsCAMの構成を示し、ゲートG8が追加されている。ゲートG8には後方シフトイネーブル信号PENLSFTと、上の段のORゲートG1の出力(最上段の場合にはGND)の反転信号が印加され、ゲートG8の出力信号は自己の段のNORゲートG3、ANDゲートG4の他端に印加される。したがって、PENLSFT=1であってより上位の比較回路1021の比較結果が全て不一致の場合に、上の段からのエントリENTM[m−1:0]がANDゲートG4、ORゲートG7を介してラッチLにラッチされる (後方シフト)。
【0083】
図38〜図41はその動作を示す。
(1)機能動作=lower shift
(i) 既存エントリを順序の最前列へ移動する
(ii) 順序の最前列へ新規エントリを登録する
入力情報PENTI[m:0]:最前列へ移動/登録するエントリ情報(VALID=”1”を 含む)
PIDX[m−1:0]:最前列へ移動/登録するエントリ情報=検索インデクス
出力情報PSST:検索一致するエントリがあれば ”1” なければ ”0”(確認用)
端子条件:PENUSFT=”0”、PENLSFT=”1”、PENACR=”0”
内部動作:図38、図39に示すようにsCAMのエントリ検索を行い、一致するエントリよりも前方のエントリ情報を一律後方にシフトさせる。同時に最前列へ検索に使用したインデクス情報を登録する。検索処理にて一致するエントリが存在する場合、所望のエントリ情報が最前列へ移動する(図38(a))。検索処理にて一致するエントリが存在しない場合、全てのエントリ情報が後方へシフトして最前列に新規エントリが登録される(図38(b))。sCAMがフルエントリの場合は最後列のエントリが抹消される(図38(c))。
処理速度:2CLK処理(図39参照)
【0084】
(2)機能動作=upper shift:
既存エントリを抹消する。
入力情報PIDX[m−1:0]:抹消するエントリ情報=検索インデクス
出力情報PSST:検索一致するエントリがあれば ”1” なければ ”0”(確認用)
端子条件:PENUSFT=”1”、PENLSFT=”0”、PENACR=”0”
内部動作:図40、図41に示すようにsCAMのエントリ検索を行い、一致するエントリよりも後方のエントリ情報を一律前方にシフトさせることで、所望のエントリ登録を抹消する(最後列のエントリを抹消する場合も本機能を使用する)。検索処理にて一致するエントリが存在しない場合、何れのエントリも消去されず、sCAMの内部状態は変化しない。
処理速度:2CLK処理(図41参照)
【0085】
(3)機能動作=clear:
全てのエントリ登録を抹消する(全エントリレジスタを”0”に強制する)
入力情報なし
出力情報なし
端子条件:PENUSFT=”0”、PENLSFT=”0”、PENACR=”1”
処理速度:1CLK処理(図34参照)
(4)状態通知=最後尾エントリ出力PENTO[m:0]:
sCAMに登録された有効エントリ(VALID=”1”)のうち、最後尾に位置するエントリ内容を常に出力する。
有効期間:クロック同期のサンプリングは常に可能であるが、upper/lower shift直後のサンプリングは基本的に禁止
【0086】
<コマンド別タイミングチャート>
IPアドレス検索(ルータ検索)コマンドIPS:
図42に示すように、IPアドレス検索コマンドIPSが発行され、検索インデクスのIPアドレスが入力されたとき、一致CIDEXにIPアドレスを入力することでCAM101においてSEARCHを行う。このとき、一致するアドレスがなければ何も出力されず終了する。一致するアドレスがあればRAM301にREADを行うために、そのアドレスの最後尾に”1” を付加してRADDに入力し、読み出しRRDTを内部レジスタに転送する。この値を検索結果のMACアドレスとして出力する。ソフトからのコマンドの場合はさらに学習経過時間を算出して結果をAGTIMに出力する。
【0087】
アドレス学習コマンドIPL:
図43に示すように、IP/MACアドレス学習コマンドIPLが発行され、学習対象としてのIPアドレス及びMACアドレスが入力されたとき、CIDEXにIPアドレスを入力してCAM101に対してSEARCHを行う。このとき、一致するアドレスがあればCADDOにそのアドレスが出力され、内部レジスタにCADDOの値が転送される。OPCOUNT=2のときにPINDXに先の内部レジスタの値を入力し、UPPER SHIFTを行う。UPPER SHIFTの終了後、PENTIにPENTIにREG_CADDの最上位ビットに”1”を付加した値を入力してLOWER SHIFTを行う。本処理を経て、学習テーブル1は、IPアドレスとMACアドレスの組み合わせを新規に学習することができる。
【0088】
CAM101の検索時に一致するアドレスがなく、また空きがある(CFULLACK=”0”)場合、OPCOUNT=2においてCENBFEED=”1”及び、CENTI=”1”&MAC_IP[79:32]が入力され、CADDOに空きアドレスが出力され、内部レジスタにCADDOの値が転送される。sCAM201ではOPCOUNT=4のときに内部レジスタの値がPENTIに入力されて、LOWER SHIFTを行う。本処理を経て、学習テーブル1は、IPアドレスとMACアドレスの組み合わせを新規に学習することができる。
【0089】
CAM101の検索時に一致するアドレスがなく、また空きがない(FLLRN=”1”)場合、OPCOUNT=2においてCENWRT=”1”及び、CENTI=”1”&MAC_IP[79:32]、CADDI=PENTOが入力される。sCAM201及びRAM301では検索一致の場合と同様の動作を行う。そして、OPCOUNT=2のときに、RADDにA1が、RWDTにD1が(A1,D1,A2,D2についてはP18参照)入力され、次クロック時にRADDにA2が、RWDTにD2が入力されることでRAM301にデータが書込まれる。
【0090】
IPアドレスエージング(ルータエージング)コマンドIPA:
図44に示すように、動作コマンドとしてIPアドレスエージングコマンドIPAを受信した場合、OPCOUNT=”2”のとき、RAM301にREADを行うために、PENTOの値の最後尾に”0”を付加した値をRADDに入力し、このアドレスに対応するデータRRDTを内部レジスタに入力する。ここで、RRDTのタイムスタンプの値とTIMER を比較し30分以内なら終了するが、エージング時間=30分を超えていた場合、AGED=”1”として、CADDI=PENTO,CENTI=all”0”を、また、sCAM201にはUPPER SHIFTを行うことで登録内容の削除を行う。なお、学習数が”0”(ALRCNT=”0”)の場合にはこのコマンドは動作しない
【0091】
消去コマンドDLT:
図45に示すように、動作コマンドとして消去コマンDLTを受信した場合、CIDEXにMACアドレス又はIPアドレスを入力してCAM101にSEARCHを行う。ここで、一致するアドレスがなければそのまま終了し、一致するアドレスがあればCADDIにCADDOを、CIDEXにall”0”を入力し、また、sCAM201でUPPER SHIFTを行うことで登録内容の削除を行う。
【0092】
読み出しコマンドREAD:
図46に示すように、動作コマンドとして読み出しコマンドREADを受信した場合、CADDIとしてRDADRを、RADDとしてRDADRの最後尾に”0”又は”1”を付加したものを入力する。そして、OPCOUNT=2のときのRRDTをIPO,OPCOUNT=3のときのRRDTをMACOとして出力する。そして、学習経過時間を計算し、AGTIMとして出力する。
【0093】
全クリアコマンドACLR:
図47に示すように、動作コマンドとして全クリアコマンドACLRを受信した場合、CENACR=”1”、CIDEX=all”0”、PENACR=”1”として、CAM101及びsCAM201の登録内容をすべて削除する。
【0094】
1)エージング学習
ルータでのエージング学習は、ARPフレーム受信時にCPUから「LRN」コマンドにより指示されるIP/MACアドレスのテーブル学習によって起動される。このコマンド動作と同時にCTL部4のエージング制御部が自主的にエージング学習を行う。ここで、エージング学習とは、前述のフリーランカウンタをRAMテーブル上のagingエリアに格納する動作を言う。(この時、RAM301上のD15(MSB)には強制的に”0”が書かれる。)
【0095】
2)エージング処理動作
フリーランカウンタは、100ms周期毎に自動的にカウントアップする。同時にCTLブロック内のエージング制御部は、自主的にエージングコマンド(atIPA)動作を行う。このコマンドの動作は、学習経過時間(エージング学習値とフリーランカウンタとの差分)が最大(最古)のアドレスを検索してその時間がCPUから設定された「AGEMAX値(通常:18000d=30分/設定上限:50分)」を超えている場合には、該当エントリの削除を行う。このカウンタとの比較動作は、100msに1エントリずつ行われるため全エントリを比較するには、12.8秒かかる。
【0096】
3)検索動作
パケットのフォワーディング処理の際に、データ変換部の発行するIP−DAとコマンドatIPSによって送信先IPアドレスより送信先MACアドレスの検索動作を行う。
4)CPUからのリード要求
CPUから「AGETIM値」の読み込み要求が発行された場合には、上記の”エージング学習値とフリーランカウンタとの差分(学習経過時間)”を通知する。しかし、学習経過時間が「AGEMAX値(通常:18000d=30分)」を超えていた場合には、AGEMAX値そのものを通知する。(通常超えることはない。)
【0097】
次に図6に一部が示された<新規学習>、<再学習>、<上書き学習>、<エージング学習>の処理手順の具体例を説明する。
<新規学習>
図48〜図52はCPU10による<新規学習>の処理手順の具体例を示している。図48は学習前の初期状態を示し、RAMアドレス=CAMアドレス=1、3、4にエントリが登録され、RAMアドレス=CAMアドレス=2は空きエリアである。また、RAMアドレス=CAMアドレス=1、3、4に登録された各エントリは、4が最も新しく、その次は1であって、3が最も古い。このため、sCAMの先頭エリアから順次、CAMアドレス=4、1、3が登録されている。
【0098】
上記の初期状態に対して、図49に示すようにIPアドレスをCAM101に入力して入力IPアドレスに対して出力アドレスがなく、空きエリアがある場合に<新規学習>を行う。新規エントリを登録する場合、まず、図50に示すようにCAM101の最も若い空きエリア(CAMアドレス=2)に新規IPアドレスを登録する。次いで図51に示すようにsCAM201の先頭エリアから順次登録されているCAMアドレス=4、1、3を後方シフトして空いた先頭エリアにCAMアドレス=2を登録する。次いで図52に示すようにRAMアドレス=2に新規エントリ(MACアドレス、タイムスタンプなど)を登録する。これにより、sCAM200の先頭エリアからCAMアドレス=2、4、1、3が新しい順に登録される。
【0099】
<再学習>
図53〜図56はハードウエアによる<再学習>の処理手順の具体例を示し、図53に示す初期状態は図48と同じである。上記の初期状態に対して、図54に示すようにIPアドレスをCAM101に入力して入力IPアドレスに対して出力アドレス(CAMアドレス=1)があった場合に<再学習>を行う。まず、図55に示すようにCAMアドレス=1が登録されているsCAM201のエリアをサーチし、そのエリアより後方のCAMアドレス=3を前方シフトする(CAMアドレス=1に上書きする)。次いで図56に示すようにsCAM201に登録されている全てエントリを後方シフトして空いた先頭アドレスにCAMアドレス=1を登録し、また、RAMアドレス=1のタイムスタンプをリセットする(現在時刻を書き込む)。これにより、sCAM200の先頭エリアからCAMアドレス=1、4、3が新しい順に登録され、また、RAMアドレス=1のタイムスタンプが更新される。
【0100】
<上書き学習>
図57〜図61は<上書き学習>の処理手順の具体例を示している。図57に示す初期状態では、RAMアドレス=CAMアドレス=1、2、3、4の全てにエントリが登録され(フルエントリ状態)、また、sCAM201の先頭エリアからCAMアドレス=4、1、3、2が登録されている。上記の初期状態に対して、図58に示すようにIPアドレスをCAM101に入力して入力IPアドレスに対して出力アドレスがなく、空きエリアがない場合に<上書き学習>を行う。まず、図59に示すようにsCAM201の最後尾エリアのCAMアドレス=2を読み出し、次いでこのCAMアドレス=2、RAMアドレス=2に各新規エントリ(新規IPアドレス、新規MACアドレスなど)を登録(上書き)する。
【0101】
次いで図60に示すようにsCAM201の最後尾エリアのCAMアドレス=2に対して前方シフトによりオール0を書き込むことにより削除する。次いで図61に示すようにsCAM201に登録されている全てのエントリを後方シフトして空いた先頭アドレスにCAMアドレス=2を登録する。これにより、最も古いCAMアドレス=2、RAMアドレス=2に各新規エントリが上書きされ、また、sCAM200の先頭エリアからCAMアドレス=2、4、1、3が新しい順に登録される。
【0102】
<エージング学習>
図62〜図64は<エージング学習>の処理手順の具体例を示している。図62に示す初期状態は図48、図53と同じである。上記の初期状態に対して、図63に示すようにsCAM201の最後尾エリアのCAMアドレス=3を読み出し、次いでこのCAMアドレス=3に対応するRAMアドレス=3からタイムスタンプを読み出す。そして、このタイムスタンプが設定上限を超えている場合に図64に示すように、sCAM201の最後尾エリアのCAMアドレス=3に対して前方シフトによりオール0を書き込むことにより削除し、また、CAMアドレス=3を削除する。これにより、タイムスタンプが設定上限を超えているエントリが削除される。なお、図64ではRAMアドレス=3を削除していないが、<新規学習>時に新規エントリが上書きされるので、問題はない。以上説明したように、上記の<新規学習>、<再学習>、<上書き学習>、<エージング学習>の処理は全て8クロック以内で完了する。
【0103】
【発明の効果】
以上説明したように請求項1に記載の発明によれば、複数のエントリ情報の各々が時間順に保持されるので、エントリの順序を短い処理時間で管理することができる。
請求項2に記載の発明によれば、登録されているエントリ情報を短い処理時間で検索することができる。
請求項3に記載の発明によれば、既に登録されているエントリ情報を削除して新規エントリ情報を登録する場合に、複数のエントリ情報の各々を時間順に保持することができる。
請求項4に記載の発明によれば、既に登録されているエントリ情報を削除する場合に、複数のエントリ情報の各々を時間順に保持することができる。
請求項5に記載の発明によれば、小さな回路規模で複数のエントリ情報の各々をシフトして時間順に保持することができる。
請求項6に記載の発明によれば、登録順が最も古いエントリ情報を簡単に管理することができる。
請求項7に記載の発明によれば、検索結果を短時間で外部に取り出すことができる。
請求項8に記載の発明によれば、ルータ、ブリッジなどにおいて第1のメモリにMACアドレスなどを格納する場合に、MACアドレスなどの登録順を短い処理時間で管理することができる。
請求項9に記載の発明によれば、ルータ、ブリッジなどにおいて第1のメモリに登録されているMACアドレスなどを削除して新規MACアドレスなどを登録する場合に、複数のMACアドレスの登録順を管理することができる。
請求項10に記載の発明によれば、ルータ、ブリッジなどにおいて第1のメモリに登録されているMACアドレスなどを削除する場合に、複数のMACアドレスの登録順を管理することができる。
請求項11に記載の発明によれば、ルータ、ブリッジなどにおいてMACアドレスの登録時間の学習順序を再構築することができる。
請求項12に記載の発明によれば、ルータ、ブリッジなどにおいてMACアドレスの登録時間の再学習順序を再構築することができる。
請求項13に記載の発明によれば、ルータ、ブリッジなどにおいてMACアドレスの登録時間を学習することができる。
請求項14に記載の発明によれば、ルータ、ブリッジなどにおいて古いMACアドレスを削除することができる。
【図面の簡単な説明】
【図1】本発明に係るシフト機能付連想記憶メモリを有するアドレス検索装置の一実施形態を示すブロック図
【図2】本発明のアドレス検索装置の宅内側ネットワーク宛てユニキャストパケットのフォワーディング処理を示す説明図
【図3】本発明のアドレス検索装置の網側ネットワーク宛てユニキャストパケットのフォワーディング処理を示す説明図
【図4】本発明のアドレス検索装置のルータモード時のアドレス学習・検索機能の機能分担を示す説明図
【図5】本発明のアドレス検索装置における学習・検索機能の設定項目と状態通知を示す説明図
【図6】本発明のアドレス検索装置におけるアドレス学習とエージング処理の時間関係を示す説明図
【図7】本発明のアドレス検索装置におけるエージング機能の設定項目と状態通知を示す説明図
【図8】本発明のアドレス検索装置のコマンドインタフェースの構成を示すブロック図
【図9】本発明のアドレス検索装置におけるコマンド機能を示す説明図
【図10】本発明のアドレス検索装置の入出力情報を示す説明図
【図11】本発明のアドレス検索装置の構成を詳しく示す説明図
【図12】本発明のアドレス検索装置の学習テーブルの構成を示す説明図
【図13】図12のCAM、sCAM及びRAMの格納情報及びそのアドレスを示す説明図
【図14】図13のCAMブロックの機能を示す説明図
【図15】図13のCAMの構成を詳しく示す説明図
【図16】図13のCAMブロックの全体構成を示すブロック図
【図17】図16のCAMブロックの主要信号を示す説明図
【図18】図16の1/N選択回路の入出力信号を示す説明図
【図19】図16の1/N出力回路の入出力信号を示す説明図
【図20】図16の裏打ち回路を詳しく示す回路図
【図21】図16のCAMブロックのサーチ時の主要信号を示すタイミングチャート
【図22】図16のCAMブロックのブランク−フィード時の主要信号を示すタイミングチャート
【図23】図16のCAMブロックのライト時の主要信号を示すタイミングチャート
【図24】図16のCAMブロックのリード時の主要信号を示すタイミングチャート
【図25】図16のCAMブロックのクリア時の主要信号を示すタイミングチャート
【図26】図13のsCAMブロックの機能を示す説明図
【図27】図13のsCAMの構成を詳しく示す説明図
【図28】図13のsCAMブロックの全体構成を示すブロック図
【図29】図28のsCAMブロックを詳しく示すブロック図
【図30】図29の比較回路とエントリ出力回路をさらに詳しく示すブロック図
【図31】図28の裏打ち回路を詳しく示す回路図
【図32】図17のsCAMブロックの前方シフトを示す説明図
【図33】図29のsCAMブロックの後方シフトを示す説明図
【図34】図29のsCAMブロックのクリア時の主要信号を示すタイミングチャート
【図35】図13のCAMブロックとRAMブロックの記憶情報を示す説明図
【図36】図13のCAMとRAMのアドレス対応を示す説明図
【図37】図29のsCAMブロックの変形例を示すブロック図
【図38】図37のsCAMブロックの部分後方シフトを示す説明図
【図39】図37のsCAMブロックの部分後方時の主要信号を示すタイミングチャート
【図40】図37のsCAMブロックの部分前方シフトを示す説明図
【図41】図37のsCAMブロックの部分前方シフト時の主要信号を示すタイミングチャート
【図42】本発明のアドレス検索装置のIPアドレスサーチコマンド時の主要信号を示すタイミングチャート
【図43】本発明のアドレス検索装置のIP/MACアドレス学習コマンド時の主要信号を示すタイミングチャート
【図44】本発明のアドレス検索装置のIPアドレスエージングコマンド時の主要信号を示すタイミングチャート
【図45】本発明のアドレス検索装置の消去コマンド時の主要信号を示すタイミングチャート
【図46】本発明のアドレス検索装置の読み出しコマンド時の主要信号を示すタイミングチャート
【図47】本発明のアドレス検索装置の全クリアコマンド時の主要信号を示すタイミングチャート
【図48】本発明のアドレス検索装置の新規学習処理を示す説明図
【図49】本発明のアドレス検索装置の新規学習処理を示す説明図
【図50】本発明のアドレス検索装置の新規学習処理を示す説明図
【図51】本発明のアドレス検索装置の新規学習処理を示す説明図
【図52】本発明のアドレス検索装置の新規学習処理を示す説明図
【図53】本発明のアドレス検索装置の再学習処理を示す説明図
【図54】本発明のアドレス検索装置の再学習処理を示す説明図
【図55】本発明のアドレス検索装置の再学習処理を示す説明図
【図56】本発明のアドレス検索装置の再学習処理を示す説明図
【図57】本発明のアドレス検索装置の上書き学習処理を示す説明図
【図58】本発明のアドレス検索装置の上書き学習処理を示す説明図
【図59】本発明のアドレス検索装置の上書き学習処理を示す説明図
【図60】本発明のアドレス検索装置の上書き学習処理を示す説明図
【図61】本発明のアドレス検索装置の上書き学習処理を示す説明図
【図62】本発明のアドレス検索装置のエージング処理を示す説明図
【図63】本発明のアドレス検索装置のエージング処理を示す説明図
【図64】本発明のアドレス検索装置のエージング処理を示す説明図
【図65】従来のアドレス検索装置を示すブロック図
【符号の説明】
100 CAMブロック
200 sCAMブロック
300 RAMブロック
2021 比較部(comp.)
2022 エントリ出力部
2023 状態保持部

Claims (14)

  1. 複数のエントリ情報の各々を保持する複数のエントリ情報保持手段と、
    新規エントリ情報を前記保持手段に登録する場合に、前記保持手段に既に登録されているエントリ情報を一括して下位の保持手段に後方シフトし、前記後方シフトにより空いた最上位の保持手段に前記新規エントリ情報を登録する手段とを、
    有するシフト機能付き連想記憶メモリ。
  2. 前記複数の保持手段に登録されている各エントリ情報とインデックス情報を比較し、前記インデックス情報と同じエントリ情報がどの保持手段に登録されているかを検索する検索手段をさらに有することを特徴とする請求項1に記載のシフト機能付き連想記憶メモリ。
  3. 前記複数の保持手段のいずれかに既に登録されているエントリ情報を削除して新規エントリ情報を登録する場合に、前記検索手段により削除対象のエントリ情報がどの保持手段に登録されているかを検索してその保持手段に登録されているエントリ情報を削除し、その上位の保持手段に登録されているエントリ情報を部分的に下位の保持手段に後方シフトし、前記後方シフトにより空いた最上位の保持手段に前記新規エントリ情報を登録することを特徴とする請求項2に記載のシフト機能付き連想記憶メモリ。
  4. 前記複数の保持手段のいずれかに既に登録されているエントリ情報を削除する場合に、前記検索手段により削除対象のエントリ情報がどの保持手段に登録されているかを検索してその保持手段に登録されているエントリ情報を削除し、その下位の保持手段に登録されているエントリ情報を部分的に上位の保持手段に前方シフトすることを特徴とする請求項2又は3に記載のシフト機能付き連想記憶メモリ。
  5. 前記部分的シフトを許可/停止する制御ラインが共通化されていることを特徴とする請求項3又は4に記載のシフト機能付き連想記憶メモリ。
  6. 前記エントリ情報はそのエントリ情報が有効か無効を示す識別情報を含み、前記識別情報に基づいて物理位置として最も後段に位置するエントリ情報を外部に出力する手段をさらに有することを特徴とする請求項1から5のいずれか1つに記載のシフト機能付き連想記憶メモリ。
  7. 前記検索手段は、前記複数の保持手段に登録されている各エントリ情報とインデックス情報を比較する複数の比較手段を有し、前記複数の比較手段の各比較結果を裏打ち回路を介して外部に検索結果として出力することを特徴とする請求項1から6のいずれか1つに記載のシフト機能付き連想記憶メモリ。
  8. 登録時間を含む情報を記憶する第1のメモリと、
    前記第1のメモリとアドレスが1対1で対応して各アドレスに前記第1のメモリの検索情報を記憶し、指定された検索情報に対応する前記第1のメモリのアドレスを出力する第2のメモリと、
    前記第2のメモリの各アドレスを保持する複数の保持手段と、
    前記第1、第2のメモリにそれぞれ新規情報、検索情報を登録する場合に、前記保持手段に既に登録されている前記第2のメモリのアドレスを一括して下位の保持手段に後方シフトし、前記後方シフトにより空いた最上位の保持手段に前記新規情報の検索情報が格納される前記第2のメモリのメモリアドレスを登録する手段と、
    前記保持手段に登録されている前記第2のメモリのアドレスに基づいて、第1のメモリに記憶されている情報の順序を管理する手段とを、
    有するアドレス検索装置。
  9. 前記複数の保持手段に登録されている前記第2のメモリの各アドレスとインデックス情報を比較し、前記インデックス情報と同じ第2のメモリのアドレスがどの保持手段に登録されているかを検索する検索手段をさらに有し、前記第1、第2のメモリに登録されている情報を削除して新規情報を登録する場合に、前記検索手段により削除対象の第2のメモリのアドレスがどの保持手段に登録されているかを検索して、その保持手段に登録されている第2のメモリのアドレスより上位の保持手段に登録されている第2のメモリのアドレスを部分的に下位の保持手段に後方シフトし、前記後方シフトにより空いた最上位の保持手段に新規の第2のメモリのアドレスを登録することを特徴とする請求項8に記載のアドレス検索装置。
  10. 前記第1、第2のメモリに登録されている情報を削除する場合に、前記検索手段により削除対象の第2のメモリのアドレスがどの保持手段に登録されているかを検索してその保持手段に登録されている第2のメモリのアドレスを削除し、その下位の保持手段に登録されている第2のメモリのアドレスを部分的に上位の保持手段に前方シフトすることを特徴とする請求項9に記載のアドレス検索装置。
  11. 前記第1、第2のメモリに登録されている情報を改めて学習する場合に、現在時刻から前記第1のメモリに記憶された登録時刻を引いた学習経過時間をクリアして、前記検索手段により学習対象の第2のメモリのアドレスがどの保持手段に登録されているかを検索してその保持手段に登録されている第2のメモリのアドレスを削除し、その上位の保持手段に登録されている第2のメモリのアドレスを部分的に下位の保持手段に後方シフトし、前記後方シフトにより空いた最上位の保持手段に学習対象の第2のメモリのアドレスを再登録することを特徴とする請求項9又は10に記載のアドレス検索装置。
  12. 前記第1、第2のメモリに登録されていない情報を新規に学習する場合に学習経過時間をクリアして、前記検索手段により学習対象の第2のメモリのアドレスがどの保持手段に登録されているかを検索して登録されていないときに、前記保持手段に登録されている最も古い第2のメモリのアドレスに基づいて前記第1、第2のメモリに前記情報を上書き登録するとともに、前記保持手段に登録されている最も古い第2のメモリのアドレスを削除してその上位の保持手段に登録されている第2のメモリのアドレスを下位の保持手段に後方シフトし、前記後方シフトにより空いた最上位の保持手段に第2のメモリの同じアドレスを再登録することを特徴とする請求項11に記載のアドレス検索装置。
  13. 実時間を示すタイマ値を学習時に前記第1のメモリに格納して、そのタイマ値と前記第1のメモリに格納されている前記時間情報との差分により前記学習経過時間を計算することを特徴とする請求項11又は12に記載のアドレス検索装置。
  14. 前記保持手段に登録されている最も古い第2のメモリのアドレスを周期的に読み出し、そのアドレスに対応する前記第1のメモリの前記学習経過時間を計算して一定時間経過している場合に前記第1、第2のメモリ、保持手段から当該情報を削除することを特徴とする請求項13に記載のアドレス検索装置。
JP2003071313A 2003-03-17 2003-03-17 シフト機能付き連想記憶メモリ及びアドレス検索装置 Pending JP2004282421A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2003071313A JP2004282421A (ja) 2003-03-17 2003-03-17 シフト機能付き連想記憶メモリ及びアドレス検索装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2003071313A JP2004282421A (ja) 2003-03-17 2003-03-17 シフト機能付き連想記憶メモリ及びアドレス検索装置

Publications (1)

Publication Number Publication Date
JP2004282421A true JP2004282421A (ja) 2004-10-07

Family

ID=33287781

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2003071313A Pending JP2004282421A (ja) 2003-03-17 2003-03-17 シフト機能付き連想記憶メモリ及びアドレス検索装置

Country Status (1)

Country Link
JP (1) JP2004282421A (ja)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010041248A (ja) * 2008-08-01 2010-02-18 Canon Inc Arpテーブル管理装置
JP2010098554A (ja) * 2008-10-17 2010-04-30 Alaxala Networks Corp ネットワーク間接続装置および管理方法
US9530499B2 (en) 2011-07-29 2016-12-27 Kabushiki Kaisha Toshiba Semiconductor memory device and information processing device
CN109408898A (zh) * 2018-09-28 2019-03-01 北京时代民芯科技有限公司 一种片上cam结构系统及其实现方法
CN115118681A (zh) * 2022-06-22 2022-09-27 烽火通信科技股份有限公司 一种软硬件相结合配置mac地址条目的方法、系统和装置

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010041248A (ja) * 2008-08-01 2010-02-18 Canon Inc Arpテーブル管理装置
JP2010098554A (ja) * 2008-10-17 2010-04-30 Alaxala Networks Corp ネットワーク間接続装置および管理方法
US9530499B2 (en) 2011-07-29 2016-12-27 Kabushiki Kaisha Toshiba Semiconductor memory device and information processing device
CN109408898A (zh) * 2018-09-28 2019-03-01 北京时代民芯科技有限公司 一种片上cam结构系统及其实现方法
CN109408898B (zh) * 2018-09-28 2023-03-31 北京时代民芯科技有限公司 一种片上cam结构系统及其实现方法
CN115118681A (zh) * 2022-06-22 2022-09-27 烽火通信科技股份有限公司 一种软硬件相结合配置mac地址条目的方法、系统和装置
CN115118681B (zh) * 2022-06-22 2023-05-30 烽火通信科技股份有限公司 一种软硬件相结合配置mac地址条目的方法、系统和装置

Similar Documents

Publication Publication Date Title
US8295286B2 (en) Apparatus and method using hashing for efficiently implementing an IP lookup solution in hardware
US7957384B2 (en) Multiple virtual local area network databases in a switch with a relational lookup engine
Jiang Scalable ternary content addressable memory implementation using FPGAs
JP4727594B2 (ja) コンテンツ・ベースの情報検索アーキテクチャー
US6307855B1 (en) Network routing table using content addressable memory
US6732184B1 (en) Address table overflow management in a network switch
US20150074079A1 (en) Longest Prefix Match Using Binary Search Tree
US6144574A (en) Associative memory with a shortest mask output function and search method
US20050242976A1 (en) Lookup engine
US20060167843A1 (en) Tire search engines and ternary CAM used as pre-classifier
JP2002510452A (ja) 高性能多層スイッチ要素用探索エンジン・アーキテクチャ
US11563683B2 (en) SRv6 with micro segment identifiers
WO2001005116A2 (en) Routing method and apparatus
US11652744B1 (en) Multi-stage prefix matching enhancements
US20040095936A1 (en) Classification search scheme and rules engine for network unit
US20140358886A1 (en) Internal search engines architecture
US9473395B2 (en) Ultra low latency multi-protocol network device
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
JP3957637B2 (ja) 連想メモリとその検索方法およびネットワーク機器およびネットワーク・システム
JP2004282421A (ja) シフト機能付き連想記憶メモリ及びアドレス検索装置
JP4983712B2 (ja) 伝送情報転送装置及び方法
CN102739550B (zh) 基于随机副本分配的多存储器流水路由体系结构
US6826180B1 (en) Communication packet processor with a look-up engine and content-addressable memory for storing summation blocks of context information for a core processor
JP2013179421A (ja) エントリの登録方法及び処理装置

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20051007

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20070814

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20070817

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20080404