JP2009253433A - 連想メモリ装置 - Google Patents

連想メモリ装置 Download PDF

Info

Publication number
JP2009253433A
JP2009253433A JP2008096205A JP2008096205A JP2009253433A JP 2009253433 A JP2009253433 A JP 2009253433A JP 2008096205 A JP2008096205 A JP 2008096205A JP 2008096205 A JP2008096205 A JP 2008096205A JP 2009253433 A JP2009253433 A JP 2009253433A
Authority
JP
Japan
Prior art keywords
address
information
memory
search
circuit
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
JP2008096205A
Other languages
English (en)
Inventor
Sadayuki Inoue
禎之 井上
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.)
Mitsubishi Electric Corp
Original Assignee
Mitsubishi Electric Corp
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 Mitsubishi Electric Corp filed Critical Mitsubishi Electric Corp
Priority to JP2008096205A priority Critical patent/JP2009253433A/ja
Publication of JP2009253433A publication Critical patent/JP2009253433A/ja
Pending legal-status Critical Current

Links

Images

Landscapes

  • Small-Scale Networks (AREA)

Abstract

【課題】DAアドレス(宛先アドレス)及びSAアドレス(送信元アドレス)の検索を高速に実施できる連想メモリ装置を提供する。
【解決手段】検索対象のMACアドレスから算出したハッシュ値に対応するバケットを選択し、選択された連想メモリのバケットから所定数の情報を一括して読み出し、検索対象のMACアドレスに対応するポート情報等を検索するとともに、検索されたMACアドレス及びこれに関連付けられたポート情報等を連想メモリに登録するにあたり、検索対象のMACアドレスに一致する情報が連想メモリに記憶されていないと判定されると、検索が実行された複数のバケット内の同一の空き領域アドレスに対して一括に、MACアドレス及びポート情報等を書き込む。
【選択図】図4

Description

この発明は、例えば光通信、無線或いはPLC(Power Line Communication)等の通信装置においてアドレス検索に使用される連想メモリ装置に関するものである。
無線や高速PLC等のネットワークシステムに用いられるネットワーク機器には、入力されたパケットデータの出力ポート(送信先ポート)を決定するための連想メモリ装置を内蔵するものがある。連想メモリ装置では、一般的にEthernet(登録商標/以下省略して記載)フレームの先頭(ヘッダ)に付加されたMAC(Media Access Control)アドレス情報から、宛先アドレス(以下、DAアドレスと呼ぶ)と送信元アドレス(以下、SAアドレスと呼ぶ)とを分離し、DAアドレスを基に連想メモリを検索して出力ポートを決定する。
また、連想メモリ装置は、SAアドレスに基づいて連想メモリにおけるMACアドレスの登録状態を確認する。このとき、検索したSAアドレスが連想メモリに登録されていなければ、当該SAアドレスを連想メモリに登録し、既に登録されていれば、アドレス検索を実施した旨を示す制御フラグ(以下、ヒットフラグと呼ぶ)をセットする(例えば、1に書き換える)。
Ethernetフレームの最小フレーム長は64バイトであるため、連想メモリ装置に必要なアドレス検索性能は、64バイトのEthernetフレームが連続して入力されても、パケットのロスが発生することなく、DAアドレスの検索及びSAアドレスの検索を実施できなければならない。
例えば、光ファイバーケーブルを用いた光通信ネットワークシステムでは、基地局側の通信で上り(宅内からインターネットへの送信)と下り(インターネットから宅内のユーザ端末への送信)の双方からEthernetパケットが入力される。このため、連想メモリには、64バイトのEthernetフレームの伝送に必要な時間内にDAアドレスの検索とSAアドレスの検索とを2回ずつ実施する処理性能が要求される。
一方、ネットワークシステムに使用される連想メモリは、予め連想メモリとして作成されたハードウェアIP(Intellectual property)を使用する場合もあるが、通常のメモリを利用して連想メモリを擬似的に構築する場合もある。通常のメモリを連想メモリとして用いるアドレス検索では、当該メモリから読み出したデータ中のMACアドレスと検索対象のMACアドレス情報とを比較して一致するか否かを確認する。
従って、MACアドレスが検索方法に応じて適切にソートされていない場合、メモリに登録されている全てのMACアドレスとの比較、つまり最大登録アドレス数回メモリをアクセスしないと、対象となるMACアドレスの検索を実施できない。
上述のようなアドレス検索の高速化を図る方法としては、ハッシュ関数を用いて連想メモリを擬似的に構築する手法がある。このアドレス検索方法では、アドレス検索用のメモリをN個のバケットと呼ばれる小さなメモリ群に分割して管理する。例えば、1024個のアドレスを管理可能な連想メモリを32個のバケットで構築した場合、1バケットあたり32個のアドレスを登録することができる。
また、入力されたMACアドレスを効率的にメモリに登録するために、ハッシュ関数を用いてMACアドレスデータから算出したハッシュ値(ハッシュキー)に関連付けて、当該MACアドレスをメモリに登録する。これにより、MACアドレスは、ハッシュ値毎のデータとしてランダマイズ(分散)化されてメモリ上で管理される。このハッシュ値に基づいて、32個のバケットのうちから、上記MACアドレスデータを記憶すべきバケットが決定される。
入力されたMACアドレスを検索する際、このMACアドレス情報からハッシュ関数を用いてハッシュ値を算出し、このハッシュ値をキーとして上記バケットを選択して検索を実行する。これにより、最大32個のMACアドレス情報をメモリから読み出し、検索対象のMACアドレスと比較することで、アドレス検索を実施することができる。
例えば、特許文献1には、連想メモリを用いたアドレス検索に関する従来の技術として、ハッシュ関数を用いる連想メモリ装置が開示されている。特許文献1に記載される連想メモリ装置では、アドレス検索の高速化のために複数の独立したメモリをパラレルに配置している。
アドレス検索の際、特許文献1の連想メモリ装置は、検索対象のMACアドレスから算出したハッシュ値をキーとしてパラレルに配置したメモリから同時にデータを読み出し、読み出したデータ中に登録されているMACアドレス情報と検索対象のMACアドレス情報とを比較することにより、メモリから検索対象のMACアドレスを検索する。このように同時に読み出したデータを並列して比較することによって、アドレス検索の高速化を図っている。
また、特許文献2には、複数のバケットを個別に動作させることで、アドレス検索の高速化を図る技術が記載されている。特許文献2では、アドレスの検索及び学習の動作を高速化するため、データの読み出し及び書き込みを互いに独立に実施できる複数のメモリで各バケット(メモリバンク)を構成する。アクセス対象として選択されていないバケットにおいて、同時に複数のMACアドレスの検索や学習を行うように制御する。このようにすることで、アドレス検索の高速化を図っている。
特開2004−229163号公報 特開2004−242326号公報
従来の連想メモリ装置は、例えば10Gbps程度の高速通信で必要なアドレス検索性能を実現できないという課題があった。
特許文献1,2に代表される従来の連想メモリ装置を、10Gbpsの通信速度でデータを入出力する光ネットワークシステムにおける基幹部のブリッジ回路に使用した場合を例に挙げる。この場合、内部のデータを低速に処理するため64ビットにパラレル化して処理すると、内部のクロック周波数は10,000MHz/64=156.25(MHz)となる。
また、連想メモリ装置は、64バイトのEthernetパケットが入力されると、8クロック以内に検索処理を実施する必要がある。さらに、光ネットワークシステムにおける基幹部のブリッジ回路は、インターネット網からユーザに送信された下りEthernetパケットに付加されたDAアドレス及びSAアドレスの検索と、ユーザからインターネット網等へ送信された上りEthernetパケットに付加されたDAアドレス及びSAアドレスの検索とを、上述の8クロック以内に実施しなければならない。
このため、従来の連想メモリ装置は、それぞれの検索処理を少なくとも2クロック以内で完了する必要がある。特に、SAアドレスの検索では、詳細は後述するが、検索の結果として検索対象のMACアドレスに一致するアドレスがメモリに登録されていない場合、検索を実施したMACアドレスが連想メモリ装置に登録される。
アドレスの学習或いはヒットフラグの書き換えの実施には、少なくとも通常のメモリ(RAM)に対するアクセスが2回(2クロック)必要になる。従って、DAアドレスの検索とSAアドレスの検索を2クロック以内に完了することが困難である。
一方、特許文献1の連想メモリ装置では、バケットのサイズ分のメモリをパラレルに配置する必要がある。このため、当該連想メモリ装置をLSIとした場合、メモリ数に応じて配線数が増加し、回路規模に比べてLSIのサイズが大きくなるという不具合がある。
また、アドレス検索の結果が複数同時に出力されるので、複数のメモリから読み出されたデータの中から、検索対象のMACアドレス情報に一致したデータが登録されたメモリを特定する作業が必要となり、処理時間がかかる。このため、DAアドレスの検索とSAアドレスの検索を4クロック以内で完了することは難しい。
さらに、特許文献2に記載される装置では、複数のバケットのうち、1つのバケットにMACアドレスの検索が集中すると、全てのEthernetフレームのアドレス検索が間に合わない可能性がある。
この発明は、上記のような課題を解決するためになされたもので、DAアドレス(宛先アドレス)及びSAアドレス(送信元アドレス)の検索を高速に実施できる連想メモリ装置を得ることを目的とする。
この発明に係る連想メモリ装置は、キー情報に関連付けて連想情報を記憶する複数のバケットに分割された少なくとも2個以上の連想メモリを備えた連想メモリ装置において、検索対象のキー情報からハッシュ値を算出するハッシュ演算部と、前記複数の連想メモリのバケットうち、前記ハッシュ演算部で検索対象のキー情報から算出した該ハッシュ値に対応するバケットを選択する選択部と、前記選択部で選択された連想メモリのバケットから所定数の情報を一括して読み出し、前記検索対象のキー情報に対応する連想情報を検索する検索部と、バケット内の空き領域アドレスを検出する空き領域検出部と、連想メモリのバケットへ情報の書き込みを行う書き込み処理部と、前記検索部で検索対象のキー情報に一致する情報が前記連想メモリに記憶されていないと判定されると、前記検索部によって検索が実行された複数のバケット内の前記空き領域検出部で検出された同一の空き領域アドレスに対して一括に、前記キー情報及びその連想情報を書き込むように前記書き込み処理部を制御する制御部とを備えるものである。
この発明によれば、検索対象のキー情報から算出したハッシュ値に対応するバケットを選択し、この選択された連想メモリのバケットから所定数の情報を一括して読み出し、前記検索対象のキー情報に対応する連想情報を検索するとともに、検索部で検索されたキー情報及びその連想情報を連想メモリに登録するにあたり、検索部で検索対象のキー情報に一致する情報が連想メモリに記憶されていないと判定されると、検索部によって検索が実行された複数のバケット内の同一の空き領域アドレスに対して一括にキー情報及びその連想情報を書き込む。このようにすることで、連想情報の検索を高速に実施できる。例えば、10Gbpsの伝送速度で送受信されるEthernetフレームを扱うブリッジ装置において、入力されたEthernetフレームを落とすことなく、高速にDAアドレス検索及びSAアドレス検索を実施することができる。これにより、10Gbpsの伝送速度においてもワイヤーレートのブリッジ性能を確保することができるという効果がある。
実施の形態1.
図1は、この発明の実施の形態1による連想メモリ装置を適用した光通信ネットワークシステムの構成を概略的に示す図である。図1に示すように、光通信ネットワークシステムは、基地局1、ホームゲートウェイ2a〜2c、コンピュータ3a〜3c、光ネットワーク4、基幹ネットワーク5、インターネット網6、基幹ネットワーク7、プロバイダのサーバ8及び宅内ネットワーク9a〜9cを備える。
基地局1は、光ネットワーク4と基幹ネットワーク5との間の通信を中継する。この実施の形態1による連想メモリ装置は、基地局1内に設けた不図示のデータ通信装置に内蔵される。ホームゲートウェイ2a〜2cは、光ネットワーク4と宅内ネットワーク9a〜9cとを相互に接続する構成要素であり、この光通信ネットワークシステムで提供されるサービスに加入しているユーザ宅内に配置される。
コンピュータ3a〜3cは、ユーザに管理されるコンピュータであり、プロバイダ内のサーバ8から提供されるインターネット網6の接続サービスを利用する。光ネットワーク4は、基地局1とユーザ宅内に設置されたホームゲートウェイ2a〜2cとを接続して、Ethernetによるネットワークを構築する。基幹ネットワーク5は、基地局1をインターネット網6に接続し、基幹ネットワーク7は、サーバ8とインターネット網6を接続する。宅内ネットワーク9a〜9cは、ホームゲートウェイ2a〜2cとコンピュータ3a〜3cとをそれぞれ接続する。
なお、以降では、コンピュータ3a〜3cからインターネット網6に向けて送信されるデータの流れを上り方向とし、インターネット網6側からコンピュータ3a〜3cに向けて送信されるデータの流れを下り方向と定義する。
また、図1中の光通信ネットワークシステムは、本発明による連想メモリ装置を適用可能な通信ネットワークシステムの一つの構成例を示すものであり、この構成に限定されるものではない。つまり、本発明の連想メモリ装置を用いたデータ送受信装置は、図1に示したスター型のネットワーク構成のみならず、高速PLCネットワークや、無線LAN(Local Area Network)を用いたネットワーク、光を用いた他の構成のネットワーク、Ethernetを用いた他の構成のネットワーク等で構成される通信ネットワークシステムであれば適用可能である。
次に、本発明による連想メモリ装置を内蔵する図1中の基地局1のデータ送受信装置による動作について説明する。
基地局1内に設置されたデータ送受信装置(不図示)は、光ネットワーク4を介して、上り方向のEthernetフレーム(以下、上りEthernetフレームと呼ぶ)を受信すると、このフレームのMACヘッダに付加されたDAアドレス情報及びSAアドレス情報を分離する。
このデータ送受信装置内の連想メモリ装置(不図示)は、分離して得られたDAアドレス情報を用いてアドレス検索を行い、入力されたフレームデータの出力先のポート情報の検索(DAアドレス検索)を実施する。DAアドレス検索の結果、MACアドレス情報が連想メモリに登録されていた場合、連想メモリ装置は、MACアドレスとともに記憶されているポート情報を読み出し、データ送受信装置が、このポート情報で指定されるポートに上記フレームデータを出力する。
DAアドレス検索が終了すると、連想メモリ装置は、Ethernetフレームを出力した送信元のコンピュータ3a〜3cのMACアドレス情報(SAアドレス)が、連想メモリに登録されているか否かを確認する(SAアドレス検索)。ここで、MACアドレス情報が登録されていない場合、連想メモリ装置は、SAアドレス情報、Ethernetフレームが入力されたポート情報、及び制御情報を連想メモリに書き込む。また、MACアドレス情報が登録されていれば、連想メモリ装置は、制御情報のヒットフラグをセットする。
図2は、図1中の基地局内のデータ送受信装置の構成を示すブロック図である。図2において、基地局1内のデータ送受信装置は、MAC部23、ブリッジ回路24、ブリッジメモリ25及びMAC部26を備える。MAC部23は、入力端子21及び出力端子22に接続しており、MAC部26は、出力端子27及び入力端子28に接続している。
MAC部23に接続する入力端子21は、光ネットワーク4を介して伝送されてきた上り方向のEthernetフレームを入力するための端子である。また、MAC部23に接続する出力端子22では、光ネットワーク4側へ出力する下り方向のEthernetフレームが出力される。
MAC部23は、PON(Passive Optical Network)MAC部であり、所定のスケジュールに基づいて、下り方向へ出力するEthernetフレームの生成(送信)、及び入力端子21を介して入力されるEthernetフレームの受信を実施する。また、MAC部23は、コンピュータ3a〜3cからのデータ送信要求及びインターネット網6から入力されるEthernetフレームデータの宛先情報に基づいて、コンピュータ3a〜3c側とインターネット網6側で送受信されるEthernetフレームの上記スケジュールを生成する。
なお、光ネットワーク4から入力される光信号のEthernetフレームデータを、電気信号のEthernetフレームデータへ変換する処理、及び電気信号で入力される下り方向のEthernetフレームデータを光信号のEthernetフレームデータへ変換する処理は、不図示の光伝送用のPHY回路で実施する。
ブリッジ回路24では、MAC部23から入力される上り方向のEthernetフレーム及びMAC部26から入力されるEthernetフレームの先頭に付加されているMACヘッダ部の情報に基づいてフィルタリング処理を実施する。ブリッジメモリ25は、ブリッジ回路24で出力先ポートが決定されたEthernetフレームをその宛先ごとに一旦記憶する。
MAC部26は、EthernetMAC部であり、入力端子28を介してインターネット網6から伝送されてきた下り方向のEthernetフレームの受信、及びブリッジ回路24から入力したインターネット網6へ伝送する上り方向のEthernetフレームの送信を制御する。
MAC部26に接続する出力端子27は、インターネット網6側へ出力する上り方向のEthernetフレームを出力するための端子である。また、MAC部26に接続する入力端子28では、光ネットワーク4側へ出力する下り方向のEthernetフレームが入力される。
図3は、図2中のブリッジ回路の構成を示すブロック図である。図3において、ブリッジ回路24は、上りフィルタリング処理回路202、FIFOメモリ203,209、連想メモリ回路204、上りVLAN処理回路205、上りブリッジメモリ制御回路206、下りブリッジメモリ制御回路207、下りVLAN処理回路208、下りフィルタリング処理回路210及びバスアービタ回路211を備える。
上りフィルタリング処理回路202に接続する入力端子200は、上り方向のEthernetフレームを上りフィルタリング処理回路202へ入力するための端子である。また、下りブリッジメモリ制御回路207に接続する出力端子201は、下りブリッジメモリ制御回路207からの下り方向のEthernetフレームを出力するための端子である。
上りフィルタリング処理回路202は、入力端子200を介して入力されたEthernetフレームのMACヘッダ部を分離し、MACヘッダ部から抽出した情報に基づいて上記Ethernetフレームに対するフィルタリング処理を実行する。FIFOメモリ203は、入力端子200を介して入力したMACフレームデータを、ブリッジ回路24内の処理が終了するまで一次記憶する。
連想メモリ回路204は、入力された宛先MACアドレス(DAアドレス)及び送信元MACアドレス(SAアドレス)の情報に基づいて出力ポート番号等を検索する。上りVLAN処理回路205は、VLAN(Virtual LAN)の付け替え処理等を実施する。
上りブリッジメモリ制御回路206は、上りフィルタリング処理回路202のフィルタリング結果、連想メモリ回路204で検索されたポート情報等に基づいて、FIFOメモリ203に記憶されている上り方向のEthernetフレームデータのブリッジメモリ25への書き込みを行うとともに、後段に配置されたMAC部26から入力したEthernetフレーム要求信号に基づいて、ブリッジメモリ25からのEthernetフレームの読み出しを行う。
下りブリッジメモリ制御回路207は、下りフィルタリング処理回路210のフィルタリング結果、連想メモリ回路204で検索されたポート情報等に基づき、FIFOメモリ209に記憶されている下り方向のEthernetフレームのブリッジメモリ25への書き込みを行うとともに、後段に配置されたMAC部23から入力したEthernetフレーム要求信号に基づいて、ブリッジメモリ25からのEthernetフレームの読み出しを行う。
下りVLAN処理回路208は、VLANの付け替え処理等を実施する。FIFOメモリ209は、入力端子213を介して入力したMACフレームデータを、ブリッジ回路24内の処理が終了するまで一次記憶する。下りフィルタリング処理回路210は、入力端子213を介して入力されるEthernetフレームのMACヘッダ部を分離し、MACヘッダ部から抽出した情報に基づいて上記Ethernetフレームに対するフィルタリング処理を実行する。
バスアービタ回路211は、上りブリッジメモリ制御回路206、及び下りブリッジメモリ制御回路207から出力されるEthernetフレームデータの書き込み、及び読み出し要求を調停する。
上りブリッジメモリ制御回路206に接続する出力端子212は、上りブリッジメモリ制御回路206からの上り方向のEthernetフレームをMAC部26へ出力するための端子である。下りフィルタリング処理回路210に接続する入力端子213は、下りフィルタリング処理回路210への下り方向のEthernetフレームを入力するための端子である。
図4は、図3中の連想メモリ回路の構成を概略的に示すブロック図である。図4において、連想メモリ回路204は、MACアドレス分離回路303、ハッシュ値計算回路(ハッシュ演算部)304,305,312,313、上りDAアドレス検索制御回路(書き込み処理部、検索部、制御部)306、上りDAアドレス検索用メモリ(連想メモリ)307、上りSAアドレス検索制御回路(書き込み処理部、検索部、制御部)308、上りSAアドレス検索用メモリ(連想メモリ)309、MACアドレス分離回路311、下りDAアドレス検索制御回路(書き込み処理部、検索部、制御部)314、下りDAアドレス検索用メモリ(連想メモリ)315、下りSAアドレス検索制御回路(書き込み処理部、検索部、制御部)316及び下りSAアドレス検索用メモリ(連想メモリ)317を備える。
MACアドレス分離回路303に接続する入力端子301は、上りフィルタリング処理回路202からの上り方向のEthernetフレームをMACアドレス分離回路303へ入力するための端子である。MACアドレス分離回路311に接続する入力端子302は、下りフィルタリング処理回路210からの下り方向のEthernetフレームをMACアドレス分離回路311へ入力するための端子である。
MACアドレス分離回路303は、入力端子301を介して入力したEthernetフレームのMACヘッダ部からMACアドレス情報を分離する。ハッシュ値計算回路304は、MACアドレス分離回路303で得られたDAアドレス情報を、予め設定されたハッシュ関数を用いてハッシュ値に変換する。ハッシュ値計算回路305は、MACアドレス分離回路303で得られたSAアドレス情報を、予め設定されたハッシュ関数を用いてハッシュ値に変換する。
上りDAアドレス検索制御回路306は、ハッシュ値計算回路304で得られたハッシュ値、及びMACアドレス情報に基づいて、上りDAアドレス検索用メモリ307に記憶されたデータを読み出し、DAアドレスを検索する。
なお、上りDAアドレス検索制御回路306は、上りSAアドレス検索制御回路308や下りSAアドレス検索制御回路316から出力されるアドレス学習・削除要求に基づいて、上りDAアドレス検索用メモリ307へ新たなMACアドレス情報を登録(学習)したり、上りDAアドレス検索用メモリ307に記憶されたMACアドレス情報の削除を実施する。
上りDAアドレス検索用メモリ307は、上りDAアドレス検索制御回路306による上り方向のDAアドレス検索におけるアドレス情報の格納に使用される。上りSAアドレス検索制御回路308は、ハッシュ値計算回路305で得られたハッシュ値、及びMACアドレス情報に基づいて、上りSAアドレス検索用メモリ309に記憶されたデータを読み出し、SAアドレスを検索する。また、上りSAアドレス検索用メモリ309は、上りSAアドレス検索制御回路308による上り方向のSAアドレス検索におけるアドレス情報の格納に使用される。
上りSAアドレス検索制御回路308では、SAアドレス検索の結果、対応するMACアドレス情報が上りSAアドレス検索用メモリ309になかった場合、上りSAアドレス検索用メモリ309の空き領域を検索して上記MACアドレスの登録を実施する。
また、上りSAアドレス検索制御回路308は、上りDAアドレス検索制御回路306、下りDAアドレス検索制御回路314、及び下りSAアドレス検索制御回路316に対し、MACアドレス情報、ポート情報、制御情報、各メモリへの書き込みアドレス情報を出力することにより、上記MACアドレスを登録するように制御する。
エージングによってMACアドレス情報を削除する場合、上りSAアドレス検索制御回路308は、各アドレス検索制御回路306,314,316に対して、MACアドレス情報及び削除するMACアドレスが記憶された各アドレス検索用メモリ307,309,315のアドレス情報を出力することにより、上記MACアドレス情報を削除するように制御する。
MACアドレス分離回路311は、入力端子302を介して入力したEthernetフレームのMACヘッダ部からMACアドレス情報を分離する。ハッシュ値計算回路312は、MACアドレス分離回路311で得られたDAアドレス情報を、予め設定されたハッシュ関数を用いてハッシュ値に変換する。ハッシュ値計算回路313は、MACアドレス分離回路311で得られたSAアドレス情報を、予め設定されたハッシュ関数を用いてハッシュ値に変換する。
なお、ハッシュ値計算回路304、ハッシュ値計算回路305、ハッシュ値計算回路312及びハッシュ値計算回路313は、同一のハッシュ関数を用いて入力されたMACアドレス情報をハッシュ値に変換するものとする。
下りDAアドレス検索制御回路314は、ハッシュ値計算回路312で得られたハッシュ値、及びMACアドレス情報に基づいて、下りDAアドレス検索用メモリ315に記憶されたデータを読み出し、下りDAアドレスの検索を実施する。
また、下りDAアドレス検索制御回路314は、上りSAアドレス検索制御回路308や下りSAアドレス検索制御回路316から出力されるアドレス学習・削除要求に基づいて、下りDAアドレス検索用メモリ315への新たなMACアドレス情報の登録(学習)を実行したり、下りDAアドレス検索用メモリ315に記憶されたMACアドレス情報の削除を実施する。
下りDAアドレス検索用メモリ315は、下りDAアドレス検索制御回路314による下り方向のDAアドレス検索におけるアドレス情報の格納に使用される。下りSAアドレス検索制御回路316は、ハッシュ値計算回路313で得られたハッシュ値、及びMACアドレス情報に基づいて、下りSAアドレス検索用メモリ317に記憶されたデータを読み出し、下りSAアドレスの検索を実施する。
なお、下りSAアドレス検索制御回路316では、SAアドレス検索の結果、対応するMACアドレス情報が下りSAアドレス検索用メモリ317になかった場合、下りSAアドレス検索用メモリ317内の空き領域を検索して上記MACアドレスを登録する。
また、下りSAアドレス検索制御回路316は、上りDAアドレス検索制御回路306、上りSAアドレス検索制御回路308、及び下りDAアドレス検索制御回路314に対し、MACアドレス情報、ポート情報、制御情報、各メモリへの書き込みアドレス情報を出力することにより、MACアドレスを登録するように制御する。
さらに、下りSAアドレス検索制御回路316は、MACアドレスが既に登録されているが、ポート情報が異なる場合においても、ポート情報を更新するように、各アドレス検索制御回路に対してMACアドレス情報、ポート情報、制御情報、書き込みアドレス情報を出力する。
エージングでMACアドレス情報を削除する場合についても、下りSAアドレス検索制御回路316は、MACアドレス情報を削除するように各アドレス検索制御回路に対してMACアドレス情報、及び削除するMACアドレスが記憶されている各アドレス検索用メモリのアドレス情報を出力する。
また、下りSAアドレス検索用メモリ317は、下りSAアドレス検索制御回路316による下り方向のSAアドレス検索におけるアドレス情報の格納に使用される。上りDAアドレス検索制御回路306に接続する出力端子310は、上りDAアドレス検索制御回路306による上りDAアドレスの検索結果を出力するための端子である。下りDAアドレス検索制御回路314に接続する出力端子318は、下りDAアドレス検索制御回路314による下りDAアドレスの検索結果を出力するための端子である。
図4の例では、アドレス検索用のメモリを、上りDAアドレス検索、上りSAアドレス検索、下りDAアドレス検索、下りSAアドレス検索の各々に対応して設け、これらを用いるアドレス検索用の制御回路も各々独立に設けた構成を示した。本発明は、この構成に限定されるものではなく、例えば上りDAアドレス及び上りSAアドレスの検索用、下りDAアドレス及び下りSAアドレスの検索用の2組のアドレス検索用の制御回路及びメモリを配置した構成であっても構わない。
図5は、MACフレームの構成例を示す図である。図5に示すようにEthernetで定められるMACフレームは、64バイトから1518バイトまでの可変のデータから構成される。MACフレームの先頭には、DAアドレス及びSAアドレスを格納するアドレスフィールドがあり、ペイロードのデータ種類を特定する情報が格納されるタイプ(Type)フィールド、データを格納するペイロードが続き、末尾にエラー訂正情報CRC(Cyclic Redundancy Check)の値が格納される。
連想メモリ回路204は、上り及び下り方向のEthernetフレームデータからMACフレームを読み出し、これに格納されるDAアドレス及びSAアドレスを用いてアドレス検索を実行する。
図6は、図4中の連想メモリ回路内の各アドレス検索用メモリの構成を概略的に示す図である。連想メモリ回路204内の各アドレス検索用メモリでは、記憶領域をバケットごとに分割して管理する。図6の例では、1024アドレスで規定される記憶領域を、32ワードで構成された32個のバケット0〜31に分割している。
図7は、図6中のアドレス検索用メモリに記憶する、MACアドレス情報、ポート情報及び制御情報の記憶フォーマットの一例を示す図である。図6中のバケットを構成する1ワードのデータは、図7に示すように、48ビットのMACアドレス情報、12ビットのポート情報、及び4ビットの制御情報の計64ビットから構成される。
実施の形態1において、上記制御情報は、後述するオーナーフラグ、静的フラグ、有効フラグ及びヒットフラグの4種類のフラグで構成される。連想メモリ回路204は、予め設定されているアドレス数のアドレス情報を学習して登録することができる。
図8は、図6中のアドレス検索用メモリから、MACアドレス情報、ポート情報及び制御情報を読み出す際のデータ読み出しフォーマットの一例を示す図である。この実施の形態1では、アドレス検索の高速化のため、アドレス検索用メモリに登録されたMACアドレス情報(ポート情報、制御フラグ情報を含む)を、4アドレスを並行して読み出すものとする。
具体的には、アドレス検索用の制御回路が、図8に示すように、アドレス検索用メモリから4ワード分(1ワードが64ビット)のデータを、1クロックで読み出すように制御する。ここで、バケットには最大32個のMACアドレスを記憶できるので、8クロックで全てのデータをアドレス検索用メモリから読み出すことができる。
図9は、図4中の上りDAアドレス検索制御回路の構成を概略的に示すブロック図である。図9において、上りDAアドレス検索制御回路306は、アドレス発生回路407、メモリ制御回路408、比較回路409a〜409d、一致検出回路410及び選択回路411を備える。なお、図4中の下りDAアドレス検索制御回路314も、上りDAアドレス検索制御回路306と同一の構成をとるため、詳細な説明は省略する。
入力端子401は、上りSAアドレス検索回路308からのMACアドレス登録・削除情報を入力するための端子である。入力端子402は、下りSAアドレス検索回路316からのMACアドレス登録・削除情報を入力するための端子である。入力端子403は、ハッシュ値計算回路304で算出されたハッシュ値を入力するための端子である。
入力端子404は、ハッシュ値計算回路304でハッシュ値の算出に使用されたDAアドレスを入力するための端子である。入力端子405は、上りDAアドレス検索用メモリ307から読み出したMACアドレスデータを入力するための端子である。入力端子406は、上りDAアドレス検索用メモリ307から読み出したポート情報及び制御フラグを入力するための端子である。
アドレス発生回路407は、入力端子403を介して入力したハッシュ値に基づいて、上りDAアドレス検索用メモリ307内で使用するバケットを決定し、上りDAアドレス検索用のアドレスを発生する。メモリ制御回路408は、上りDAアドレス検索用メモリ307へのデータの読み出し制御信号(読み出しアドレス、データ読み出し制御信号等)、及びデータの書き込み制御信号(書き込みアドレス、データ書き込み制御信号、書き込みデータ等)を生成して出力する。
比較回路409a〜409dは、入力端子404を介して入力したDAアドレス情報と上りDAアドレス検索用メモリ307から読み出したMACアドレスデータを比較する。なお、この実施の形態1は、図8に示したように、上りDAアドレス検索用メモリ307からデータを読み出すにあたり、1回のデータの読み出し要求に応じて、4つのMACアドレスデータ、及びポート信号、制御フラグが同時に読み出される。
また、上りDAアドレス検索制御回路306は、4パラレルで読み出したMACアドレス情報について、比較回路409a〜409dを用いてMACアドレスを同時に比較処理する。これにより、アドレス検索の高速化を図ることが可能である。なお、本発明において、比較回路の数は4つに限るものではなく、処理速度的に間に合えば1つ或いは2でもよく、また8つにしても構わない。
一致検出回路410は、比較回路409a〜409dの各比較結果に基づいて、入力端子404を介して入力したDAアドレス情報と上りDAアドレス検索用メモリ307から読み出したMACアドレスデータとを比較し、一致の有無を検出する。ここで、両者の一致が検出されると、一致検出回路410は、読み出した4つのMACアドレスのどの情報が一致したか否かを検出し、検出結果を選択回路411に出力する。
選択回路411は、一致検出回路410から入力した制御信号に従って、上りDAアドレス検索用メモリ307から読み出したポート情報、及び制御フラグ情報を選択する。また、選択回路411は、上記制御フラグ情報を確認し、読み出したMACアドレス情報が有効な情報か否かを判断する。ここで、有効な情報であれば、ポート情報とともに、データが有効であった旨を一致検出回路410に通知する。
出力端子412は、上りDAアドレス検索用メモリ307へメモリ制御信号を出力するための端子である。出力端子413は、DAアドレスの検索が完了したことを示す情報を出力するための端子である。さらに、出力端子414は、DAアドレスの検索結果(ポート情報)を出力するための端子である。
図10は、図4中の上りSAアドレス検索制御回路の構成を概略的に示すブロック図である。図10において、上りSAアドレス検索制御回路308は、アドレス発生回路407、比較回路409a〜409d、選択回路411、メモリ制御回路420、一致検出回路421及び未使用エリア検出回路422を備える。
なお、図9中の上りDAアドレス検索制御回路306と同一の構成要素には同一符号を付して詳細な説明は省略する。また、図4中の下りSAアドレス検索制御回路316も、上りSAアドレス検索制御回路308と同一の構成をとるため、詳細な説明は省略する。
メモリ制御回路(制御部)420は、上りSAアドレス検索用メモリ309へのデータの読み出し制御信号(読み出しアドレス、データ読み出し制御信号等)、及びデータの書き込み制御信号(書き込みアドレス、データ書き込み制御信号、書き込みデータ等)を生成して出力する。
一致検出回路421は、比較回路409a〜409dの各比較結果に基づいて、入力端子404を介して入力したSAアドレス情報と上りSAアドレス検索用メモリ309から読み出したMACアドレスデータとの一致の有無を検出する。両者が一致していた場合、読み出した4つのMACアドレスのどの情報が一致していたかを検出し、検出結果を選択回路411へ出力する。
未使用エリア検出回路(空き領域検出部)422は、入力端子406を介して入力した制御フラグ情報に基づいて、上りSAアドレス検索用メモリ309に登録されているMACアドレス情報が無効(未使用)であるか否かを判定し、未使用と判定したアドレス情報を記憶する。
次に動作について説明する。
(1)上り方向のEthernetフレームデータの送受信動作
先ず、基地局1内のデータ送受信装置による上り方向のEthernetフレームデータの送受信動作について説明する。
光ネットワーク4から光信号の形態で入力されたEthernetフレームデータは、基地局1内に配置されたデータ送受信装置に入力され、図示していない光伝送用のPHY回路にて電気信号のEthernetフレームデータへ変換され、入力端子21を介してMAC部23に入力される。
MAC部23は、入力した光伝送用に予め付加された各種情報を元にEthernetフレームを分離し、ブリッジ回路24に分離したEthernetフレームを出力する。以降、図5に示すように、通常のEthernetフレームがブリッジ回路24に入力されるものとして説明する。
(1A)ブリッジ回路24の動作
以下、図3を用いてブリッジ回路24の動作を説明する。
入力端子200を介して入力されたEthernetフレームデータは、上りフィルタリング処理回路202及びFIFOメモリ203に入力される。FIFOメモリ203は、入力されたEthernetフレームのMACヘッダ部の処理がブリッジ回路24で終了するまで一次記憶する。
一方、上りフィルタリング処理回路202では、入力されたEthernetフレームのMACヘッダ情報を分離する。この後、上りフィルタリング処理回路202は、分離したMACヘッダ情報からMACアドレス情報を分離して、分離したMACアドレス情報と予め定められたMACアドレス情報とを比較してフィルタリング処理を実施する。具体的には、予め定められたMACアドレス情報を受信した場合、予め定められた処理(データ送受信装置内の図示していないCPUへの通知、パケットの削除等の処理)を実施する。
この実施の形態1において、パケットのCPUへの通知や削除は、上りブリッジメモリ制御回路206でブリッジメモリ25にデータを書き込む際に処理を実施する。例えば、CPUへの通知フレームでは、ブリッジメモリ25の予め定められたアドレスにデータを書き込み、CPUに対して割り込み制御信号を出力し、その旨を通知する。
削除フレームについては、ブリッジメモリ25へのデータの書き込みを実施しないことにより削除する。FIFOメモリ203に記憶されているEthernetフレームデータは、一旦読み出して破棄する。
上りフィルタリング処理回路202でフィルタリング処理の施されたデータは連想メモリ回路204に入力される。ここでは、上りフィルタリング処置回路202が、フィルタリング処理の施されたデータについても連想メモリに回路204によるアドレス検索、上りVLAN処理回路205によるVLAN処理は実施するものとして説明を続ける。
なお、上りフィルタリング処理回路202が破棄フレームと判断したEthernetフレームは、連想メモリ回路204によるアドレス検索及び上りVLAN処理回路205によるVLAN処理を実施しないように構成してもよい。
(1B)連想メモリ回路204による上り方向のアドレス検索制御
図4を用いて、連想メモリ回路204による上り方向のアドレス検索制御を説明する。
連想メモリ回路204に入力された上り方向のMACヘッダ情報は、MACアドレス分離回路303によって上りDAアドレスとSAアドレスとに分離される。MACアドレス分離回路303が分離したDAアドレス情報は、ハッシュ値計算回路304に入力され、予め定められたハッシュ関数によりハッシュ値が算出される。
同様に、MACアドレス分離回路303が分離したSAアドレス情報は、ハッシュ値計算回路305に入力され、予め定められたハッシュ関数によりハッシュ値が算出される。ハッシュ値計算回路304で計算されたハッシュ値は、MACアドレス情報とともに、上りDAアドレス検索制御回路306へ入力される。以下、図8を用いて、上りDAアドレス検索回路306の動作を説明する。
ハッシュ値計算回路304が算出したハッシュ値は、入力端子403を介してアドレス発生回路407に入力される。アドレス発生回路407では、入力されたハッシュ値に基づいて、アドレス検索を実施するバケットの先頭アドレスを発生する。この実施の形態1では、上りDAアドレス検索用メモリ307は、図6に示すように、32個のバケットで構成されており、さらに各バケットが32ワードで構成されているものとする。
なお、1ワードのデータは、図7に示すように48ビットのMACアドレス情報、12ビットのポート情報、及び4ビットの制御情報の計64ビットで構成されるものとする。図7に示す制御情報は、アドレス検索用メモリ毎のアドレス情報の登録状況を規定する、オーナーフラグ、静的フラグ、有効フラグ、及びヒットフラグの4種類のフラグで構成される。一般に、この実施の形態1に示すように、連想メモリ装置は、予め定められたアドレス数を学習し、登録することができる。
例えば、宅内に配置したホームゲートウェイ2に接続される機器は変化する。従って、この実施の形態1による連想メモリ装置では、有限のアドレスを有効に活用するために、予め定められた時間だけ使用されなかったMACアドレス情報を削除する。この動作を、エージングと呼ぶ。これにより、限られた連想メモリのメモリ容量を有効に活用することができる。上記制御情報は、エージングの際に使用する。
ここで、制御情報の内容について説明する。
先ず、静的フラグは、登録されているMACアドレスが有効であり、エージングでアドレスが削除されないことを示すフラグである。本フラグは、例えば基幹ネットワーク5内に設けられた中継器のMACアドレス等を登録するもので、基本的には装置の位置がネットワーク上固定されており、また常々使用されているMACアドレス情報であるため、システムとしてエージングの非対象MACアドレスとして定義する際に使用する。
有効フラグは、登録されているMACアドレス情報が有効であるか否かを示すフラグであり、アドレス検索を実施し、MACアドレスが一致した場合でも、本フラグが無効であれば、アドレスが有効ではないと判断する。
ヒットフラグは、登録されているMACアドレス情報が使用されていることを示すフラグで、SAアドレス検索の際に、MACアドレスがアドレス検索用メモリ内に登録されていると、ヒットフラグがセットされる。また、エージング実行の際には、有効フラグがセットされていて、かつヒットフラグがセットされているMACアドレスについては使用されていると判断し、ヒットフラグをクリアしてエージングが終了する。なお、静的フラグがセットされている場合、無条件にヒットフラグをクリアするのみの操作を実施する。
一方、有効フラグがセットされており、ヒットフラグがセットされていなかった場合、検索対象のMACアドレスは使用されていないものと判断し、有効フラグをクリアする。静的フラグがセットされていた場合は、上述したように、ヒットフラグのクリアのみ実施する。
次にオーナーフラグについて説明する。
オーナーフラグは、SAアドレス検索時の説明で詳述するが、SAアドレス検索によりアドレス学習(アドレス検索用メモリへのMACアドレス情報の登録)を実施する際に、アドレス学習を実施したSAアドレス検索用メモリのオーナーフラグのみ“1”とする。
例えば、上り方向のSAアドレス検索でSAアドレスがヒットせず、アドレス登録を各アドレス検索用メモリに実施する場合は、上りSAアドレス検索用メモリ309のオーナーフラグのみ“1”にセットし、他のアドレス検索用メモリ307,315,317については“0”を書き込む。
同様に、下り方向のSAアドレス検索でSAアドレスがヒットせず、アドレス登録を各アドレス検索用メモリに実施する場合は、下りSAアドレス検索用メモリ317内のオーナーフラグのみ“1”にセットし、他のアドレス検索用メモリ307,309,315については“0”を書き込む。
オーナーフラグは、以下の理由で使用する。
通常、連想メモリ装置は、従来の技術にあるように1つのメモリを上り方向のDAアドレス、SAアドレス検索、及び下り方向のDAアドレス、SAアドレス検索に使用する。
これに対して、この実施の形態1では、図4に示すように、各々のアドレス検索を独立したアドレス検索用メモリを用いて実施する。従って、上り方向のSAアドレスを検索した結果、上りSAアドレス検索用メモリ307に登録されたMACアドレスは、基本的に入力端子301からのみ入力される。
例えば、本来、入力端子301より入力されるべきSAアドレス情報が、入力端子302から入力された場合、外部からの不正アクセスとし認識し、不図示のCPUに対して、その旨を通知する。
上りDAアドレス検索制御回路306は、入力されたハッシュ値に基づいて上りDAアドレス検索用メモリ307のバケットを選択する。ここでは、ハッシュ値計算回路304から出力されるハッシュ値のMSB(Most Significant Bit)側から5ビットの値に基づきバケットを選択する。
入力端子403を介して入力されたハッシュ値は、アドレス発生回路407でMSB側より上位5ビットの値が選択され、選択された5ビットの値を元にバケットの先頭アドレスが生成される。この実施の形態1において、選択されたバケットの番号をN(0≦N≦31の整数)とした場合、1バケットあたりのバイト数(1バイトは、8ビットとする)は、8バイト×32ワード=256バイトとなる。従って、アドレス発生回路407は、256×Nバイトのアドレス情報データをメモリ制御回路408に出力する。
メモリ制御回路408では、アドレス発生回路407から入力したアドレス情報に基づいて、上りDAアドレス検索用メモリ307からのデータ読み出し制御信号を生成する。ここでは、高速アドレス検索を実施するため、図8に示すように、上りDAアドレス検索用メモリ307から4ワード分のデータを1クロックで読み出すよう制御する。バケット内には最大32個のMACアドレス数が記憶されているので、8クロックで全てのデータを上りDAアドレス検索用メモリ307から読み出すことができる。
4ワード単位で上りDAアドレス検索用メモリ307から読み出されたMACアドレス情報は、入力端子405を介して比較回路409a〜409dに入力される。なお、上りDAアドレス検索用メモリ307から読み出されたポート情報、及び制御フラグ情報は、選択回路411に入力される。
比較回路409a〜409dは、上りDAアドレス検索用メモリ307から読み出されたMACアドレス情報と、入力端子404を介して入力された検索対象となるDAアドレス情報とを比較する。この比較の結果、検索対象のDAアドレス情報と上りDAアドレス検索用メモリ307から読み出されたMACアドレス情報とが一致した場合、一致検出回路410にその旨を通知する。具体的には、“1”を出力する。なお、一致しなかった場合は“0”を出力する。
一致検出回路410は、比較回路409a〜409dから出力される上記信号を監視する。このとき、一致検出回路410は、比較回路409からアドレス情報が一致した旨の通知を受け取ると、選択回路411に対して、アドレス情報が一致したMACアドレスが記憶されているアドレスから読み出した制御情報を確認するように指示を出す。
選択回路411では、一致検出回路410から指示を受け取ると、この制御フラグの有効フラグ、及び静的フラグを確認する。そして、上記有効フラグ或いは静的フラグの少なくとも一つが有効であった場合、その旨を一致検出フラグに通知するとともに、アドレス情報が一致したMACアドレスの記憶されているアドレスから読み出したポート情報を出力端子413から出力する。一方、上記有効フラグ及び静的フラグがいずれも有効でなかった場合は、エージング動作等で消去された情報と判断して、一致検出回路410にその旨を通知する。
一致検出回路410は、選択回路411から制御フラグの有効フラグ及び静的フラグの少なくとも一つが有効であると通知を受けると、メモリ制御回路408に対して上りDAアドレス検索用メモリ307からのデータの読み出しを終了するように制御信号を出力するとともに、DAアドレス検索終了信号を出力端子412を介して出力する。メモリ制御回路408では、この制御信号を受信すると、上りDAアドレス検索用メモリ307からのデータ読みだし制御信号の出力を停止し、次のDAアドレス検索指示が入力されるまで待機する。
また、選択回路411から制御フラグの有効フラグ及び静的フラグのいずれも有効ではなかった通知を受けた場合、一致検出回路410は、該一致したMACアドレス情報がエージングで削除された情報と判断し、DAアドレス検索を継続する。具体的には、メモリ制御回路408に対してDAアドレス検索が終了信号を出力しない。
メモリ制御回路408は、上述したようにアドレス発生回路407からアドレス情報が入力されると、入力されたアドレス情報に基づいて上りDAアドレス検索用メモリ307へのデータ読み出し制御信号を出力端子412を介して出力するとともに、上りDAアドレス検索用メモリ307からのMACアドレスの読み出しアドレス回数のカウントを開始する。そして、バケット内の全てのMACアドレス情報の読み出しが完了すると、その旨を一致検出回路410に出力する。
一致検出回路410は、上記制御信号をメモリ制御回路408より受け取ると、最後に読み出されたMACアドレス情報の比較結果の通知を確認し、MACアドレスがヒットしなかった場合は、検索対象のアドレスが記憶されていなかった旨を、DAアドレス検索終了信号とともに出力する。
(1C)メモリ制御回路408のアドレス学習における動作
次に、メモリ制御回路408のアドレス学習時の動作について説明する。
アドレス学習要求信号は、入力端子401、及び402を介してメモリ制御回路408に通知される。具体的には、上りSAアドレス検索の結果、アドレス学習が必要な場合、入力端子401を介して、上りSAアドレス検索制御回路308から、アドレス学習要求信号とともに、上りDAアドレス検索用メモリ307への書き込みアドレス情報、学習対象のMACアドレス情報、ポート情報、制御情報、及び登録/削除登録制御情報が入力される。
同様に、入力端子402を介して、下りSAアドレス検索制御回路316から、アドレス学習要求信号とともに、上りDAアドレス検索用メモリ307への書き込みアドレス情報、学習対象のMACアドレス情報、ポート情報、制御情報、登録/削除登録制御情報が入力される。
ここで、登録/削除登録制御情報について簡単に説明する。
該信号が登録要求である場合、SAアドレスの検索結果、アドレス検索用メモリにMACアドレス情報が記憶されていなかったことを示すため、上りDAアドレス検索制御回路306は、入力されたメモリアドレスに、入力されたMACアドレス情報、ポート情報、及び制御情報(なお、オーナーフラグは“0”で登録)を書き込む。
なお、該アドレスに記憶されている情報を読み出し、静的フラグ、及び有効フラグを確認し、両フラグともセットされていなかった場合、該メモリアドレスに入力されたMACアドレス情報、ポート情報、及び制御情報を書き込む。
一方、いずれかのフラグがセットされていた場合は、その旨をCPU(不図示)に通知する。CPUでは、該通知が入力されると、各アドレス検索用メモリ内のMACアドレス登録状況がおかしいと判断し、その旨を連想メモリ回路204に通知する。
連想メモリ回路204では、該通知を受け取ると、アドレス検索用のテーブルを再構築するため、各アドレス検索用メモリ内に登録されている静的フラグがセットされていない全てのMACアドレス情報を削除する。
削除登録であった場合、SAアドレス検索の結果、このMACアドレスの機器が異なるポートに接続されたと判断し、DAアドレス検索制御回路は、入力されたメモリアドレスのポート情報、及び制御情報(なお、オーナーフラグは“0”で登録)を書き換える。
なお、DAアドレス検索用メモリから該アドレスの情報を読み出して、MACアドレス情報が一致しているかを確認した後、一致していた場合はDAアドレス検索用メモリにポート情報、及び制御情報を更新したデータを書き込む。
一致していなかった場合は、その旨をCPU(不図示)に通知する。CPUは、該通知が入力されると、各アドレス検索用メモリ内のMACアドレス登録状況がおかしいと判断し、その旨を連想メモリ回路204に通知する。
連想メモリ回路204は、この通知を受け取ると、アドレス検索用のテーブルを再構築するため、各アドレス検索用メモリ内に登録されている静的フラグがセットされていない全てのMACアドレス情報を削除する。
上記MACアドレス情報の登録が完了すると、メモリ制御回路408は、新たなMACアドレスの登録/削除登録要求があれば、再度、MACアドレスの登録/削除登録を実施する。新たな登録/削除登録要求がなければ、DAアドレス検索の状況を確認して、DAアドレス検索が完了していなかった場合は、DAアドレス検索を再開する。DAアドレス検索が完了していた場合、次のDAアドレス検索の要求が入力されるまで待機する。
メモリ制御回路408は、入力端子401或いは402を介して上記信号が入力されるとアドレス学習を開始する。上りDAアドレス検索制御回路309における、上りDAアドレス検索用メモリ307へのアクセスの際の優先順位は、上りSAアドレス検索制御回路308からのアドレス登録/削除登録要求、下りSAアドレス検索制御回路316からのアドレス登録/削除登録要求、上りDAアドレス検索とする。
同様に、下りDAアドレス検索制御回路314における下りDAアドレス検索用メモリ315へのアクセスの際の優先順位は、上りSAアドレス検索制御回路308からのアドレス登録/削除登録要求、下りSAアドレス検索制御回路316からのアドレス登録/削除登録要求、下りDAアドレス検索とする。
また、上りSAアドレス検索制御回路308は、上りSAアドレス登録/削除登録要求、下りSAアドレス検索制御回路316からのアドレス登録/削除登録要求、上りSAアドレス検索の順番で、SAアドレス検索用メモリをアクセスする。下りSAアドレス検索制御回路316は、上りSAアドレス検索制御回路308から出力されるアドレス登録/削除登録要求、下りSAアドレス登録/削除登録要求、下りSAアドレス検索の順番で、SAアドレス検索用メモリをアクセスする。
このように各アドレス検索用メモリへのアクセスの優先順位をつける理由を述べる。
この実施の形態1において、各アドレス検索用メモリのMACアドレス情報等の登録は同時に実施するよう構成する。例えば、上りSAアドレス検索制御回路308、及び下りSAアドレス検索制御回路316から同時にアドレス用検索用メモリの同じアドレスに異なるMACアドレスの情報を書き込むようにアドレス登録要求がなされた場合を考える。このとき、予めいずれの要求を優先的に書き込むかを決めておかないと、各アドレス検索用メモリの登録情報が同一のものでなくなるため、アドレス学習、及びエージングができなくなる。
従って、この実施の形態1では、各アドレス検索用メモリへのアクセスの際の優先順位をシステムで同一にすることで、上記不具合を解決する。なお、アドレス検索の優先順を下げている理由は、アドレス検索中は検索が終了するまでの時間がまちまちであるため順を下げている。
上記説明では、上りSAアドレス検索制御回路308の出力を、下りSAアドレス検索制御回路316の出力より優先順位を上げる場合を述べたが、これに限るものではない。つまり、アドレス登録/削除登録要求を、アドレス検索要求より優先順位を上げるように設定しておけば、優先順位はいずれが高くても同様の効果を奏する。
メモリ制御回路408は、入力端子401、及び402よりアドレス登録/削除登録要求が入力されると、DAアドレス検索中の場合、アドレス検索を一時停止して、アドレス登録/削除登録の制御を行う。DAアドレス検索を実施していなかった場合は、そのままアドレス登録/削除登録の制御を行う。
ここで、一致検出回路410に対してアドレス登録/削除登録に入る旨を通知するとともに、入力端子を介して入力された上りDAアドレス検索用メモリ307へのアドレス情報を元にデータを読み出す。
アドレス登録要求の場合、有効フラグ、及び静的フラグがセットされているか否かを選択回路411が確認した後、セットされていない場合は、MACアドレス情報、ポート情報、及び制御情報を上りDAアドレス検索用メモリ307に書き込む。一方、セットされていた場合、上述したがCPU(不図示)に通知し、アドレス検索用メモリの再構築を図るように連想メモリ回路204に指示を出す。
同様に、削除登録要求の場合、上りDAアドレス検索用メモリ307から読み出されたMACアドレス情報を比較回路409で比較し、一致しているか否かを確認する。一致していた場合、MACアドレス情報とともに、新しいポート情報及び制御情報を、上りDAアドレス検索用メモリ307に書き戻す。
一致していなかった場合、上述したようにCPU(不図示)に通知し、アドレス検索用メモリの再構築を図るように連想メモリ回路204に指示を出す。上記動作の終了後、他のアドレス登録/削除登録要求が入力されていないかを確認し、要求がない場合は、DAアドレス検索を中断していた場合は再開する。
なお、同時に入力端子に同時にアドレス登録/削除登録要求が入力された場合は、上述したように入力端子401を介して入力した上りSAアドレス検索制御回路306からの情報に基づいて、アドレス登録/削除登録を実施する。
このとき、メモリ制御回路408では、両入力端子401,402から入力される上りDAアドレス検索用メモリ307の書き込みアドレス情報を比較する。一致していなかった場合、上りSAアドレス検索制御回路307からの要求処理の完了後、下りSAアドレス検索制御回路316から出力される情報に基づきアドレス登録/削除登録を実施する。
一方、同じであった場合は、同時に同じアドレスに対してアドレス登録/削除情報が入力されたと判断し、下りSAアドレス検索制御回路316からの情報を破棄し、新たな要求が入力されるまで待機する。なお、上記動作を実施する際の下りSAアドレス検索制御回路316の動作については後述する。
(1D)SAアドレスの検索
次に、SAアドレス検索時の動作を図10を用いて説明する。
ハッシュ値計算回路305で算出されたハッシュ値は、入力端子403を介してアドレス発生回路407に入力される。アドレス発生回路407は、入力されたハッシュ値を元にアドレス情報を生成する。なお、アドレス情報の発生動作は、上りDAアドレス検索制御回路306と同一なので操作の説明は省略する。
アドレス発生回路407にて生成されたアドレス情報は、メモリ制御回路420に入力される。メモリ制御回路420では、上りDAアドレス検索制御回路306と同様、アドレス発生回路407から出力されるアドレス情報に基づいて、上りSAアドレス検索用メモリ309からのデータ読み出し制御信号を生成する。
なお、高速アドレス検索を実施するため、上りSAアドレス検索用メモリ309からは4ワード単位でデータを読み出すよう制御する。4ワード単位で上りSAアドレス検索用メモリ309から読み出されたMACアドレス情報は、入力端子405を介して比較回路409a〜409dに入力される。また、上りSAアドレス検索用メモリ309から読み出されたポート情報、及び制御フラグ情報は、選択回路411、及び未使用エリア検出回路422に入力される。
比較回路409a〜409dでは、上りSAアドレス検索用メモリ309から読み出されたMACアドレス情報と、入力端子404を介して入力された検索対象となるSAアドレス情報とを比較する。この比較の結果、検索対象のSAアドレス情報と上りSAアドレス検索用メモリ309から読み出されたMACアドレス情報が一致した場合、一致検出回路421にその旨を通知する。具体的には、“1”を出力する。なお、一致しなかった場合は“0”を出力する。
一致検出回路421は、比較回路409a〜409dから出力される上記信号を監視しており、比較回路409からアドレス情報が一致した旨の通知を受け取ると、選択回路411に対してアドレス情報が一致したMACアドレスの記憶されているアドレスから読み出した制御情報を確認するよう指示を出す。
選択回路411では、一致検出回路421から指示を受け取ると、該当制御フラグのオーナーフラグ、有効フラグ、及び静的フラグを確認する。そして、上記有効フラグ、或いは静的フラグの少なくとも一つが有効でオーナーフラグがセットされていなかった場合は、上述したが、その旨をCPUに通知し、SAアドレス検索を終了する。
一方、オーナーフラグが有効で、上記有効フラグ或いは静的フラグの少なくとも一つが有効であった場合は、その旨を一致検出フラグに通知するとともに、アドレス情報が一致したMACアドレスの記憶されているアドレスから読み出したポート情報をMACフレームが入力されたポート情報と比較する。
この比較の結果、同一と判断した場合は、ヒットフラグをセットしSAアドレス検索を終了する。異なっていた場合、機器の接続ポートが変わったと判断し、削除登録動作に入る。なお、削除登録動作の詳細は後述する。
また、上記有効フラグ、及び静的フラグがどちらとも有効でなかった場合は、エージング動作等で消去された情報と判断して、一致検出回路421にその旨を通知する。
未使用エリア検出回路422は、上りSAアドレス検索用メモリ309から読み出された該当制御フラグの有効フラグ、及び静的フラグを確認し、両フラグともセットされていない未使用アドレスを検索し、そのアドレスを記憶する。この実施の形態1では、未使用エリアの検索と、SAアドレス検索を同時に実施することによりSA検索・アドレス学習制御の高速化を図っている。
一致検出回路421では、選択回路411から、該当制御フラグのオーナフラグが有効で、有効フラグ、及び静的フラグの少なくとも一つが有効であると通知を受けると、メモリ制御回路420に対して上りSAアドレス検索用メモリ309からのデータの読み出しを終了するよう制御信号を出力するとともに、SAアドレス検索終了信号を出力端子412を介して出力する。
メモリ制御回路420は、該制御信号を受信すると、上りSAアドレス検索用メモリ309からのデータ読みだし制御信号の出力を停止し、MACアドレスの一致した当該MACアドレス情報の記憶されているアドレスのヒットフラグを1にセットし書き戻す。ヒットフラグのセットが完了すると、上りSAアドレス検索制御回路308は、次のSAアドレス検索指示が入力されるまで待機する。
一方、選択回路411から該当制御フラグの有効フラグ、及び静的フラグのどちらも有効ではなかった通知を受けた場合、一致検出回路421は、該一致したMACアドレス情報がエージングで削除された情報と判断し、SAアドレス検索を継続する。具体的には、メモリ制御回路420に対してSAアドレス検索が終了信号を出力しない。
メモリ制御回路420は、上述したようにアドレス発生回路407からアドレス情報が入力されると、入力されたアドレス情報に基づいて上りSAアドレス検索用メモリ309へのデータ読み出し、制御信号を出力端子412を介して出力するとともに、上りSAアドレス検索用メモリ309からのMACアドレスの読み出しアドレス回数のカウントを開始する。
バケット内の全てのMACアドレス情報の読み出しが完了すると、メモリ制御回路420は、その旨を一致検出回路421に出力する。一致検出回路421は、上記制御信号をメモリ制御回路420から受け取ると、最後に読み出されたMACアドレス情報の比較結果の通知を確認し、MACアドレスがヒットしなかった場合、検索対象のアドレスが記憶されていなかったと判断し、アドレス学習動作に移行する。
検索対象のアドレスが記憶されていた場合、オーナーフラグ、有効フラグ、静的フラグを確認し、記憶されているMACアドレスが正規のもので、有効であった場合は、MACアドレスの一致した当該MACアドレス情報の記憶されているアドレスのヒットフラグを1にセットし書き戻し、SAアドレス検索を終了する。
(1E)検索対象のMACアドレスの学習動作
以下、SA検索対象アドレスが記憶されていなかった場合のMACアドレスの学習動作について説明する。
一致検出回路421は、検索対象のバケット内に検索対象のMACアドレスが記憶されていなかった場合、検索対象のMACアドレス情報が記憶されていなかった旨を、SAアドレス検索終了信号とともにメモリ制御回路420に出力する。
メモリ制御回路420は、一致検出回路421より上りSAアドレス検索用メモリ309内に検索対象のMACアドレス情報が記憶されていない旨の通知を受け取ると、MACアドレスの学習動作に入る。具体的には、アドレス学習の対象となるMACアドレス、ポート、及び制御情報(この実施の形態1は、有効フラグ、及びヒットフラグのみをセットするものとする)を準備するとともに、未使用エリア検出回路422から、SAアドレス検索中に確認していたバケット内の空きアドレス情報を読み込む。
空きアドレスがある場合は、アドレス発生回路407より出力された上りSAアドレス検索用メモリ309内のアドレス情報を生成し、アドレス登録要求信号とともに、該生成したアドレス情報、新たに記憶するMACアドレス情報、ポート情報、及び制御情報を、出力端子424を介して、上りDAアドレス検索制御回路406、下りDAアドレス検索制御回路314、及び下りSAアドレス検索制御回路316に出力する。また、空きアドアドレスがない場合は、新たなアドレス登録ができないため、MACアドレスの登録を行わずSAアドレス検索動作を終了する。
各アドレス検索制御回路へのアドレス学習(アドレス登録)要求信号の出力が完了すると、上りSAアドレス検索制御回路308は、上りSAアドレス検索用メモリ309に対してMACアドレス情報を書き込む。具体的には、先ほど生成した上りSAアドレス検索用メモリ309のアドレスに基づいて現在記憶されているデータを読み出し、制御情報を確認し、有効フラグ、及び静的フラグが有効ではないこと確認した後、新たに記憶するMACアドレス情報、ポート情報、及び制御情報(有効フラグ、ヒットフラグ、及びオーナーフラグ)を書き込む。
なお、空きスペースは、未使用エリア検出回路422で検出したものであるが、再度、有効フラグ、静的フラグの確認を実施した後、MACアドレス等のデータの登録を行う。これは、他のアドレス検索用メモリ制御回路では、アドレス検索用メモリのデータの確認を行い、登録可能か否かを確認した後、検索対象のMACアドレス情報等を記憶する。
この実施の形態1では、同時に各アドレス検索用メモリの情報を書き換えるため、再度確認するように制御する。
上りSAアドレス検索制御回路308で検索した検索結果に基づいてアドレス情報を書き換える際、制御フラグの確認を行わず、直接上りSAアドレス検索用メモリ309のデータを書き換えても、一括に(ほぼ同時に)各アドレス検索用メモリの情報が書き換えられるので、同様の効果を奏することは言うまでもない。
(1F)アドレス登録要求された際のメモリ制御回路420の動作
次に、下りSAアドレス検索制御回路316からのアドレス登録要求が入力された際の上りSAアドレス検索制御回路308のメモリ制御回路420の動作を説明する。アドレス学習要求信号は、入力端子401を介してメモリ制御回路420に通知される。
具体的には、下りSAアドレス検索の結果、アドレス学習が必要な場合は、下りSAアドレス検索制御回路316から、アドレス学習要求信号ととともに、上りSAアドレス検索用メモリ309への書き込みアドレス情報、学習対象のMACアドレス情報、ポート情報、制御情報、登録/削除登録制御情報が入力される。
メモリ制御回路420では、登録/削除登録制御情報が入力されると、現在、上りSAアドレス検索の結果、アドレス登録、或いはアドレス削除登録中であるかを確認する。アドレス登録、或いは削除登録中であった場合は、その動作が完了するまで待機する。
上述したように、アドレス学習時の上りSAアドレス検索用メモリ309へのアクセスの優先順位は、上りSAアドレス検索結果に基づくアドレス学習制御(アドレス登録、またはアドレス削除登録制御)、下りSAアドレス検索結果に基づくアドレス学習制御、上りSAアドレス検索の順番である。
従って、メモリ制御回路420は、入力端子401を介してアドレス学習要求信号が入力されると、まずは、上りSAアドレス検索結果の基づくアドレス学習制御が実施されているか否かを確認する。
上りSAアドレス検索結果の基づくアドレス学習制御が実施されていない、或いは実施が完了すると、メモリ制御回路420は、下りSAアドレス検索結果に基づくアドレス登録動作を開始する。その際、上りSAアドレス検索中であった場合は、その動作を一時中断し、アドレス登録動作を開始する。
具体的には、該信号が登録要求であった場合、SAアドレスの検索結果、下りSAアドレス検索用メモリ317にMACアドレス情報が記憶されていなかったことを示すため、上りSAアドレス検索制御回路308は、入力されたメモリアドレスに、入力されたMACアドレス情報、ポート情報、及び制御情報(なお、オーナーフラグは0で登録)を書き込む。
本実施の形態1では、当該アドレスに記憶されている情報を読み出し、静的フラグ、及び有効フラグを確認し、両フラグともセットされていなかった場合、当該メモリアドレスに入力されたMACアドレス情報、ポート情報、及び制御情報を書き込む。
一方、いずれかのフラグがセットされていた場合、上りDAアドレス検索制御回路306の動作でも説明したように、その旨をCPU(不図示)に通知する。CPUは、該通知が入力されると、各アドレス検索用メモリのMACアドレス登録状況がおかしいと判断し、その旨を連想メモリ回路204に通知する。
連想メモリ回路204では、該通知を受け取ると、アドレス検索用のテーブルを再構築するため、各アドレス検索用メモリ内に登録されている静的フラグがセットされていない全てのMACアドレス情報を削除する。
上記MACアドレス情報の登録が完了すると、メモリ制御回路420は、SAアドレスを検索中にアドレス登録を実施した場合、SAアドレス検索を再開する。一方、SAアドレス検索を実施していなかった場合は、次のSAアドレス検索の要求が入力されるまで待機する。
(1G)削除登録を実施する際のメモリ制御回路420の動作
次に、削除登録を実施する際のメモリ制御回路420の動作を説明する。
一致検出回路421は、SAアドレス検索の結果、検索対象のMACアドレスが記憶されており、有効フラグ、或いは静的フラグのいずれか一方が有効で、かつオーナーフラグが有効であるにもかかわらず、入力ポート番号が異なる場合、接続機器の接続ポートが変わったと判断し、MACアドレスの登録削除制御に入る。
メモリ制御回路420は、一致検出回路421から削除登録指示を受け取ると、MACアドレスの削除登録動作に入る。具体的には、アドレス削除登録の対象となるMACアドレス、ポート、及び制御情報(例えば、有効フラグ、及びヒットフラグのみをセットするものとする。)を準備する。また、一致検出回路421が、上りSAアドレス検索用メモリ309から読み出したどのアドレスのMACアドレスデータが一致したかを確認し、削除登録の対象となる上りSAアドレス検索用メモリ309のアドレスを生成する。
上りSAアドレス検索用メモリ309のアドレス情報の生成が完了すると、メモリ制御回路420は、アドレス登録削除要求信号とともに、該生成したアドレス情報、削除登録を実施するMACアドレス情報、ポート情報、及び制御情報を、出力端子424を介して、上りDAアドレス検索制御回路406、下りDAアドレス検索制御回路314、及び下りSAアドレス検索制御回路316に出力する。
各アドレス検索制御回路へのアドレス登録削除要求信号の出力が完了すると、上りSAアドレス検索制御回路308は、上りSAアドレス検索用メモリ309に対してポート情報の更新を実施する。具体的には、先ほど生成した上りSAアドレス検索用メモリ309のアドレスに基づいて現在記憶されているデータを読み出し、ポート情報、及び制御情報を確認し、オーナーフラグ、及び有効フラグ、静的フラグのいずれかが有効であることを確認した後、ポート情報が一致していない旨を確認する。これら確認処理が終了すると、新たなポート情報、及び制御情報(有効フラグ、ヒットフラグ、及びオーナーフラグ)を書き込む。
なお、この実施の形態1では、上りSAアドレス検索時に、上記確認処理を実施しているが、再度、オーナーフラグ、有効フラグ、静的フラグ、及びポート情報の確認を実施後、ポート情報、及び制御情報のデータの更新を行う。これは、他のアドレス検索用メモリ制御回路では、アドレス検索用メモリのデータの確認を行い、本当に削除登録可能かを確認した後、対象のポート情報等を記憶する。また、同時に各アドレス検索用メモリの情報を書き換えるため、再度確認するように制御する。
上りSAアドレス検索制御回路308で検索した検索結果に基づいてポート情報を書き換える際は、制御フラグの確認を行わず、直接上りSAアドレス検索用メモリ309のデータを書き換えても、ほぼ同時に各アドレス検索用メモリの情報が書き換えられるので、同様の効果を奏することは言うまでもない。
(1H)アドレス削除登録要求された際のメモリ制御回路420の動作
次に、下りSAアドレス検索制御回路316からのアドレス削除登録要求が入力された際における、上りSAアドレス検索制御回路308のメモリ制御回路420の動作を説明する。アドレス削除登録要求信号は、入力端子401を介してメモリ制御回路420に通知される。
下りSAアドレス検索の結果、アドレス削除登録が必要な場合、下りSAアドレス検索制御回路316からアドレス削除登録要求信号とともに、上りSAアドレス検索用メモリ309への書き込みアドレス情報、学習対象のMACアドレス情報、ポート情報、制御情報、登録/削除登録制御情報が入力される。削除登録要求信号が入力されると、上りSAアドレス検索制御回路308は、入力されたメモリアドレスのポート情報、及び制御情報(なお、オーナーフラグは0で登録)を書き換える。
この実施の形態1では、上りSAアドレス検索用メモリ309から当該アドレスの情報を読み出し、MACアドレス情報が一致しているかを確認した後、一致していた場合は、上りSAアドレス検索用メモリ309にポート情報、及び制御情報を更新したデータを書き込む。
一致していなかった場合は、その旨をCPU(不図示)に通知する。CPUは、該通知が入力されると、各アドレス検索用メモリ内のMACアドレス登録状況がおかしいと判断し、その旨を連想メモリ回路204に通知する。
連想メモリ回路204では、該通知を受け取ると、アドレス検索用のテーブルを再構築するため、各アドレス検索用メモリに登録されている、静的フラグがセットされていない全てのMACアドレス情報を削除する。
(1I)MACアドレスの削除登録要求された際のメモリ制御回路420の動作
以下、下りSAアドレス検索制御回路316からMACアドレスの削除登録要求があった場合の上りSAアドレス検索制御回路308の動作を説明する。
メモリ制御回路420は、登録/削除登録制御情報が入力されると、現在、上りSAアドレス検索の結果、アドレス登録、或いはアドレス削除登録中であるかを確認する。アドレス登録、或いは削除登録中であった場合は、その動作が完了するまで待機する。
上りSAアドレス検索結果の基づくアドレス学習制御が実施されていない、或いは実施が完了すると、メモリ制御回路420は、下りSAアドレス検索結果に基づくアドレス削除登録動作を開始する。このとき、上りSAアドレス検索中であった場合は、その動作を一時中断し、アドレス登録動作を開始する。
具体的には、該信号が削除登録要求であった場合、SAアドレスの検索結果、下りSAアドレス検索用メモリ317内に登録されているMACアドレスのポート情報が更新されたことを示すため、上りSAアドレス検索制御回路308は、入力されたメモリアドレスに、入力されたポート情報、及び制御情報(なお、オーナーフラグは“0”で登録)を書き込む。
当該アドレスに記憶されている情報を読み出し、MACアドレス情報が一致していることを確認するとともに、静的フラグ、及び有効フラグを確認し、少なくとも一つが有効であり、ポート情報が異なることを確認する。これら条件に合えば、当該メモリアドレスに入力されたMACアドレス情報、ポート情報、及び制御情報を書き込む。
一方、該条件に合わなければ、上りDAアドレス検索制御回路306の動作でも説明したように、その旨を図示していないCPUに通知する。CPUでは、該通知が入力されると、各アドレス検索用メモリ内のMACアドレス登録状況がおかしいと判断し、その旨を連想メモリ回路204に通知する。
上記MACアドレス情報の削除登録が完了すると、メモリ制御回路420は、SAアドレスを検索中に削除登録を実施した場合、SAアドレス検索を再開する。また、SAアドレス検索を実施していなかった場合は、次のSAアドレス検索の要求が入力されるまで待機する。
(1J)不正アクセスに対する動作
次に、SA検索の結果、検索対象のMACアドレスが記憶されており、有効フラグ、或いは静的フラグのいずれか一方が有効で、かつオーナーフラグが無効であった場合の動作について説明する。この場合、図2に示すように、当初入力端子28側に接続されていた機器(基幹ネットワーク5側に接続されていた機器)が、入力端子21側に接続(光ネットワーク4側に接続)されたことを意味する。
これは、不正に本ネットワークに機器が接続されたことを意味する。従って、この実施の形態1では、上述のようなケースを検出した場合、当該MACアドレスを持つ機器が、ネットワークに不正にアクセスしてきたとみなし、基地局1内のデータ送受信装置のCPU(不図示)に対して、本件を通知するとともに、ポート情報の更新を行わない。
この実施の形態1では、上述のような不正アクセスを確認した場合、不審者からのネットワークへの不正アクセス、或いは攻撃とみなし、基地局1内の図示していないデータ送受信装置は、上記アクセスを上位のネットワークには送信せず破棄するものとする。
上述のようにデータ送受信装置を制御することで、不正なネットワークへのアクセスを、基地局1内で処理することができ、基幹ネットワーク5に対して、不必要なEthernetフレームを送出することなく対処できる効果がある。また、この実施の形態1は、不正アクセスを検出したMACアドレスについて、しばらくの間エージングの対象とはならないようにヒットフラグを更新するよう構成する。
このように構成することで、本来あるべき上流側から下流側へのアクセスがなく、不正アクセス開始直後、エージングによりMACアドレスが削除されることがなく、不正アクセスを防ぐことができる効果がある。
同様に、下りSAアドレス検索の際に、光ネットワーク4側に接続されていた機器のMACアドレス情報が入力された場合も、上流からの不正アクセスと判断し、同様の処理を基地局1内の上記データ送受信装置(不図示)が実施すれば、同様の効果を奏することは言うまでもない。
一方、上りDAアドレス検索制御回路306でアドレス検索が終了すると、連想メモリ回路204は、アドレス検索結果(ポート情報及びアドレスがヒットしたかの情報)を、上りブリッジメモリ制御回路206に通知するとともに、上りVLA処理回路205に対しても、アドレス検索が終了した旨を通知する。このとき、上記アドレス検索結果も出力する。
上りVLAN処理回路205は、DAアドレス検索結果が入力されると、アドレス検索結果に基づきVLANの付け替え処理等を実施する。上りVLAN処理回路205でVLANの付け替え処理が完了したMACヘッダ情報は、上りブリッジメモリ制御回路206に入力される。
上りブリッジ制御回路205では、上りVLAN処理回路205でVLANの付け替え処理が終了すると、FIFOメモリ203に記憶されているEthernetフレームデータの処理を開始する。具体的には、上りフィルタリング処理回路202から出力されるフィルタリング結果に基づき、入力されたEthernetフレームを破棄するか否かを確認する。
破棄する場合は、FIFOメモリ203よりEthernetフレームデータを読み出し、そのデータを破棄する。同様に連想メモリ回路204にて不正アクセスと判断されたEthernetフレームについても同様に破棄する。
上りフィルタリング処理回路202で通過と判断されたEthernetフレームは、連想メモリ回路204から出力されるDAアドレス検索結果に基づき、ブリッジメモリ25にVLANの付け替えを実施した後、記憶する。
この実施の形態1では、ブリッジメモリ25においてポートごとに記憶するエリアを予め設けておき、Etheretフレームデータを記憶する。よって、上りブリッジメモリ制御回路206は、連想メモリ204から出力されるDAアドレス検索で得られたポート情報に基づいて、入力されたEthernetフレームの書き込みアドレスを生成する。また、FIFOメモリ203からEthernetフレームを読み出し、VLANを付け替えた後に、バスアービタ回路211に入力する。
バスアービタ回路211では、上りブリッジメモリ制御回路206、及び下りブリッジメモリ制御回路207より入力されるブリッジメモリ25へのデータの書き込み、及び読み出し要求を調停し、ブリッジメモリ25へのデータの書き込み、及び読み出しを実施する。
なお、DAアドレス検索の結果、アドレス情報がヒットしなかった場合、該当するブリッジメモリ25の全てのポートの記憶エリアにEthernetフレームを書き込むものとする。
一方、ブリッジメモリ25からの上りフレームの読み出しは、MAC部26から出力される制御信号(不図示)に基づいて、ブリッジメモリ25に記憶されているEthernetフレームを読み出す。ブリッジメモリ25から読み出されたEthernetフレームは、出力端子212を介してMAC部26に出力される。MAC部26は、誤り検出符号やプリアンブル情報等を付加し、出力端子27を介して基幹ネットワーク5へEthernetフレームデータを送出する。
(2)下り方向のEthernetフレームデータの送受信動作
次に、図2〜図10を用いて、実施の形態1の基地局1内のデータ送受信装置による下り方向のEthernetフレームデータの送受信動作について説明する。なお、上り方向と動作が同一なものは、詳細な動作の説明は省略する。
基幹ネットワーク5から入力されたEthernetフレームは、MAC部26で誤り検出等の処理が施された後に、Ethernetフレームが分離されブリッジ回路24入力される。以降、上り方向と同様に、下り方向もブリッジ回路24には、図5に示すように、通常のEthernetフレームが入力されるものとして説明する。
図3を用いて、下り方向のブリッジ回路24の動作を説明する。
入力端子213を介して入力されたEthernetフレームデータは、下りフィルタリング処理回路210、及びFIFOメモリ209に入力される。FIFOメモリ209では、入力されたEthernetフレームのMACヘッダ部の処理がブリッジ回路24で終了するまで一次記憶する。
一方、下りフィルタリング処理回路210は、入力されたEthernetフレームのMACヘッダ情報を分離する。そして、分離したMACヘッダ情報からMACアドレス情報と予め定められたMACアドレス情報とを比較し、フィルタリング処理を実施する。
なお、上り方向の場合と同様に、パケット(Ethernetフレーム)のCPUへの通知、削除等は、上りブリッジメモリ制御回路206でブリッジメモリ25にデータを書き込む際に処理を実施する。
例えば、CPUへの通知フレームについては、ブリッジメモリ25の予め定められたアドレスにデータを書き込み、CPUに対して割り込み制御信号(不図示)を出力し、その旨を通知する。下りフィルタリング処理回路210でフィルタリング処理の施されたデータは、連想メモリ回路204に入力される。
(2A)連想メモリ回路204による下り方向のアドレス検索制御
図4を用いて、連想メモリ回路204による下り方向のアドレス検索制御の動作について説明する。連想メモリ回路204に入力された下り方向のMACヘッダ情報は、MACアドレス分離回路311にて下りDAアドレスとSAアドレスが分離される。MACアドレス分離回路311で分離されたDAアドレス情報は、ハッシュ値計算回路312に入力され、予め定められたハッシュ関数を用いてハッシュ値が算出される。
同様に、MACアドレス分離回路C311にて分離されたSAアドレス情報は、ハッシュ値計算回路313に入力され、予め定められたハッシュ関数を用いてハッシュ値が算出される。図8を用いて、ハッシュ値計算回路312計算されたハッシュ値は、下りDAアドレス検索回路314の動作を説明する。
この実施の形態1では、上りDAアドレス検索回路306と下りDAアドレス検索回路314は、同一の回路構成をとる。なお、全てのハッシュ値計算回路は、同一のハッシュ関数を用いてハッシュ値を計算するものとする。
ハッシュ値計算回路312で算出されたハッシュ値は、入力端子403を介してアドレス発生回路407に入力される。アドレス発生回路407では、入力されたハッシュ値を元に、アドレス検索を実施するバケットの先頭アドレスを発生する。
なお、下りDAアドレス検索用メモリ315は、図6に示すように上りDAアドレス検索用メモリ307と同一の構成をとる。また、1ワードのデータの構成も、図7に示すように、48ビットのMACアドレス情報、12ビットのポート情報、及び4ビットの制御情報の計64ビットで構成されるものとする。さらに、各制御情報も同一の構成とする。
下りDAアドレス検索制御回路314では、入力されたハッシュ値を元に下りDAアドレス検索用メモリ315内のバケットを選択する。具体的には、ハッシュ値計算回路312から出力されるハッシュ値のMSB側から5ビットの値に基づきバケットを選択する。
入力端子403を介して入力されたハッシュ値は、アドレス発生回路407によりMSB側より上位5ビットの値が選択され、選択された5ビットの値を元にバケットの先頭アドレスを生成し、メモリ制御回路408に出力する。メモリ制御回路408では、アドレス発生回路407から出力されるアドレス情報を元に下りDAアドレス検索用メモリ315からのデータ読み出し制御信号を生成する。
上りDAアドレス検索と同様に、下りDAアドレス検索用メモリ315からは、図8に示すように4ワード分のデータを1クロックで読み出すよう制御する。4ワード単位で、下りDAアドレス検索用メモリ315から読み出されたMACアドレス情報は、入力端子405を介して比較回路409a〜409dに入力される。なお、下りDAアドレス検索用メモリ315から読み出されたポート情報、及び制御フラグ情報は、選択回路411に入力される。
比較回路409a〜409dでは、下りDAアドレス検索用メモリ315から読み出されたMACアドレス情報と、入力端子404を介して入力された検索対象となるDAアドレス情報とを比較する。この比較の結果、検索対象のDAアドレス情報と下りDAアドレス検索用メモリ315から読み出されたMACアドレス情報とが一致した場合、一致検出回路410にその旨を通知する。
一致検出回路410は、比較回路409a〜409dから出力される上記信号を監視しており、比較回路409からアドレス情報が一致した旨の通知を受け取ると、選択回路411に対してアドレス情報が一致したMACアドレスの記憶されているアドレスから読み出した制御情報を確認するように指示を出す。
選択回路411では、一致検出回路410から指示を受け取ると、該当制御フラグの有効フラグ、及び静的フラグを確認する。そして、上記有効フラグ、或いは静的フラグの少なくとも一つが有効であった場合は、その旨を一致検出フラグに通知するとともに、アドレス情報が一致したMACアドレスの記憶されているアドレスから読み出したポート情報を出力端子413から出力する。一方、上記有効フラグ、及び静的フラグがどちらとも有効でなかった場合は、エージング動作等で消去された情報と判断して、一致検出回路410にその旨を通知する。
一致検出回路410は、選択回路411から、該当制御フラグの有効フラグ、及び静的フラグの少なくとも一つが有効であると通知を受けると、メモリ制御回路408に対して下りDAアドレス検索用メモリ315からのデータの読み出しを終了するように制御信号を出力するとともに、DAアドレス検索終了信号を出力端子412を介して出力する。メモリ制御回路408では、該制御信号を受信すると、次のDAアドレス検索指示が入力されるまで待機する。
一方、選択回路411から該当制御フラグの有効フラグ、及び静的フラグのどちらも有効ではなかった通知を受けた場合は、DAアドレス検索を継続する。また、メモリ制御回路408では、アドレス発生回路407からアドレス情報が入力されると、下りDAアドレス検索用メモリ315からのMACアドレスの読み出しアドレス回数のカウントも開始する。
バケット内の全てのMACアドレス情報の読み出しが完了すると、その旨を一致検出回路410に出力する。一致検出回路410は、上記制御信号をメモリ制御回路408から受け取ると、最後に読み出されたMACアドレス情報の比較結果の通知を確認し、MACアドレスがヒットしなかった場合は、検索対象のアドレスが記憶されていなかった旨を、DAアドレス検索終了信号とともに出力する。
(2B)メモリ制御回路408によるアドレス学習の動作
次に、メモリ制御回路408のアドレス学習時の動作について説明する。
アドレス学習要求信号は、入力端子401、及び402を介して、メモリ制御回路408に通知される。具体的には、上りSAアドレス検索の結果、アドレス学習が必要な場合は、入力端子401を介して、上りSAアドレス検索制御回路308から、アドレス学習要求信号とともに、下りDAアドレス検索用メモリ315への書き込みアドレス情報、学習対象のMACアドレス情報、ポート情報、制御情報、登録/削除登録制御情報が入力される。
同様に、入力端子402を介して、下りSAアドレス検索制御回路316からアドレス学習要求信号とともに、下りDAアドレス検索用メモリ315への書き込みアドレス情報、学習対象のMACアドレス情報、ポート情報、制御情報、登録/削除登録制御情報が入力される。なお、アドレス学習の際のイレギュラーな動作(CPUに通知する動作)は、上りDAアドエス検索時と同一であるので詳細な説明は省略する。
メモリ制御回路408では、入力端子401、或いは402を介して、上記信号が入力されるとアドレス学習を開始する。下りDAアドレス検索制御回路314における下りDAアドレス検索用メモリ315へのアクセス制御の優先順位は、上り方向のDAアドレス検索の際に述べたのでここでは記載を省略する。
入力端子を介して当該要求信号が入力されると、メモリ制御回路408は、DAアドレス検索中の場合、アドレス検索を一時停止してアドレス登録/削除登録制御に入る。DAアドレス検索を実施していなかった場合、そのままアドレス登録/削除登録制御に入る。
アドレス登録の場合は、一致検出回路410に対してアドレス登録/削除登録に入る旨を通知するとともに、入力端子を介して入力された下りDAアドレス検索用メモリ315へのアドレス情報を元にデータを読み出す。アドレス登録要求の場合は、有効フラグ、及び静的フラグがセットされていないかを選択回路411で確認した後、セットされていない場合は、MACアドレス情報、ポート情報、及び制御情報を下りDAアドレス検索用メモリ315に書き込む。
一方、セットされていた場合は、上述したCPU(不図示)に通知し、アドレス検索用メモリの再構築を図るように連想メモリ回路204に指示を出す。同様に、削除登録要求の場合は、下りDAアドレス検索用メモリ315から読み出されたMACアドレス情報を比較回路409にて比較し、一致しているか否かを確認する。
一致していた場合は、MACアドレス情報とともに、新しいポート情報、及び制御情報を下りDAアドレス検索用メモリ315に書き戻す。一致していなかった場合は、上述したように上記CPUに通知し、アドレス検索用メモリの再構築を図るように連想メモリ回路204に指示を出す。
上記MACアドレス情報の登録が完了すると、メモリ制御回路408は、新たなMACアドレスの登録/削除登録要求があれば、再度MACアドレスの登録/削除登録を実施する。一方、新たな登録/削除登録要求がなければ、DAアドレス検索の状況を確認し、DAアドレス検索が完了していなかった場合は、DAアドレス検索を再開する。DAアドレス検索が完了していた場合は、次のDAアドレス検索の要求が入力されるまで待機する。
なお、同時に入力端子にアドレス登録/削除登録要求が入力された場合は、上述したように、入力端子401を介して入力される上りSAアドレス検索制御回路306からの情報に基づいてアドレス登録/削除登録を実施する。
このとき、メモリ制御回路408では、両入力端子から入力される上りDAアドレス検索用メモリ307の書き込みアドレス情報を比較する。一致していなかった場合は、上りSAアドレス検索制御回路307からの要求処理を完了した後、下りSAアドレス検索制御回路316から出力される情報に基づいて、アドレス登録/削除登録を実施する。
一方、同じであった場合は、同時に同じアドレスに対してアドレス登録/削除情報が入力されたと判断し、下りSAアドレス検索制御回路316からの情報を破棄し、新たな要求が入力されるまで待機する。
(2C)SAアドレスの検索
次に、図10を用いて、SAアドレス検索時の動作を説明する。
ハッシュ値計算回路313で算出されたハッシュ値は、入力端子403を介してアドレス発生回路407に入力される。アドレス発生回路407は、入力されたハッシュ値を元にアドレス情報を生成する。アドレス発生回路407にて生成されたアドレス情報は、メモリ制御回路420に入力される。メモリ制御回路420では、アドレス発生回路407から出力されるアドレス情報に基づいて、下りSAアドレス検索用メモリ317からのデータ読み出し制御信号を生成する。
なお、下りSAアドレス検索用メモリ317から4ワード単位でデータを読み出すように制御する。4ワード単位で下りSAアドレス検索用メモリ317から読み出されたMACアドレス情報は、入力端子405を介して比較回路409a〜409dに入力される。下りSAアドレス検索用メモリ317から読み出されたポート情報、及び制御フラグ情報は、選択回路411、及び未使用エリア検出回路422に入力される。
比較回路409a〜409dは、下りSAアドレス検索用メモリ317から読み出されたMACアドレス情報と、入力端子404を介して入力された検索対象となるSAアドレス情報とを比較する。この比較の結果、MACアドレス情報が一致した場合、一致検出回路421にその旨を通知する。
一致検出回路421は、比較回路409a〜409dから出力される上記信号を監視しており、比較回路409からアドレス情報が一致した旨の通知を受け取ると、選択回路411に対して、アドレス情報が一致したMACアドレスの記憶されているアドレスから読み出した制御情報を確認するように指示を出す。
選択回路411では、一致検出回路421から指示を受け取ると、該当制御フラグのオーナーフラグ、有効フラグ、及び静的フラグを確認する。上記有効フラグ、或いは静的フラグの少なくとも一つが有効でオーナーフラグがセットされていなかった場合、その旨をCPUに通知し、SAアドレス検索を終了する。
一方、オーナーフラグが有効で、上記有効フラグ、或いは静的フラグの少なくとも一つが有効であった場合は、その旨を一致検出フラグに通知するとともに、アドレス情報が一致したMACアドレスの記憶されているアドレスから読み出したポート情報とMACフレームが入力されたポート情報とを比較する。
この比較の結果、同一と判断した場合、ヒットフラグをセットしSAアドレス検索を終了する。異なっていた場合は、機器の接続ポートが変わったと判断し、削除登録動作に入る。また、上記有効フラグ、及び静的フラグがどちらとも有効でなかった場合は、エージング動作等で消去された情報と判断して、一致検出回路421にその旨を通知する。
未使用エリア検出回路422では、上りSAアドレス検索用メモリ309より読み出された該当制御フラグの有効フラグ、及び静的フラグを確認し、両フラグともセットされていない未使用アドレスを検索し、そのアドレスを記憶する。
一致検出回路421は、選択回路411から該当制御フラグのオーナーフラグが有効で、有効フラグ、及び静的フラグの少なくとも一つが有効であると通知を受けると、メモリ制御回路420に対して、下りSAアドレス検索用メモリ315からのデータの読み出しを終了するように制御信号を出力するとともに、SAアドレス検索終了信号を出力端子412を介して出力する。
メモリ制御回路421では、該制御信号を受信すると下りSAアドレス検索用メモリ317からのデータ読みだし制御信号の出力を停止し、MACアドレスの一致した当該MACアドレス情報の記憶されているアドレスのヒットフラグを1にセットし書き戻す。
ヒットフラグのセットが完了すると、次のSAアドレス検索指示が入力されるまで待機する。
一方、選択回路411から該当制御フラグの有効フラグ、及び静的フラグのどちらも有効ではなかった通知を受けた場合は、一致検出回路421は、該一致したMACアドレス情報がエージングで削除された情報と判断し、SAアドレス検索を継続する。
また、メモリ制御回路420では、アドレス発生回路407からアドレス情報が入力されると、下りSAアドレス検索用メモリ317からのMACアドレスの読み出しアドレス回数のカウントも開始する。そして、バケット内の全てのMACアドレス情報の読み出しが完了すると、その旨を一致検出回路421に出力する。
一致検出回路421は、上記制御信号をメモリ制御回路420より受け取ると、最後に読み出されたMACアドレス情報の比較結果の通知を確認し、MACアドレスがヒットしなかった場合は、検索対象のアドレスが記憶されていなかったと判断し、アドレス学習動作に入る。
検索対象のアドレスが記憶されていた場合は、オーナーフラグ、有効フラグ、静的フラグを確認し、記憶されているMACアドレスが正規のもので、有効であった場合はMACアドレスの一致した当該MACアドレス情報の記憶されているアドレスのヒットフラグを1にセットし書き戻し、SAアドレス検索を終了する。
(2D)MACアドレスの学習
以下、図10を用いて、SA検索対象アドレスが記憶されていなかった場合のMACアドレスの学習動作について説明する。
一致検出回路421は、検索対象のバケット内に検索対象のMACアドレスが記憶されていなかった場合、検索対象のMACアドレス情報が記憶されていなかった旨を、SAアドレス検索終了信号とともにメモリ制御回路420に出力する。
メモリ制御回路420は、一致検出回路421から下りSAアドレス検索用メモリ317に検索対象のMACアドレス情報が記憶されていない旨の通知を受け取ると、MACアドレスの学習動作に入る。具体的には、アドレス学習の対象となるMACアドレス、ポート、及び制御情報を準備するとともに、未使用エリア検出回路422より、SAアドレス検索中に確認していたバケット内の空きアドレス情報を読み込む。
空きアドレスがある場合は、アドレス発生回路407から出力された下りSAアドレス検索用メモリ317のアドレス情報を生成し、アドレス登録要求信号とともに、該生成したアドレス情報、新たに記憶するMACアドレス情報、ポート情報、及び制御情報を、出力端子424を介して、上りDAアドレス検索制御回路406、下りDAアドレス検索制御回路314、及び上りSAアドレス検索制御回路308に出力する。
一方、空きアドアドレスがない場合は、新たなアドレス登録ができないため、この実施の形態1では、MACアドレスの登録を行わずSAアドレス検索動作を終了する。
各アドレス検索制御回路へのアドレス学習(アドレス登録)要求信号の出力が完了すると、下りSAアドレス検索制御回路316は、下りSAアドレス検索用メモリ317に対してMACアドレス学習制御に入る。具体的には、入力端子401から、アドレス登録/削除登録要求が入力されているか否かを確認する。ここで、入力されていない場合は、先ほど生成した下りSAアドレス検索用メモリ317のアドレスから、現在記憶されているデータを読み出し、制御情報を確認し、有効フラグ、及び静的フラグが有効ではないことを確認した後、新たに記憶するMACアドレス情報、ポート情報、及び制御情報を書き込む。
なお、上りSAアドレス検索の際と同様に、空きスペースは、未使用エリア検出回路422で検出したものであるが、再度、有効フラグ、静的フラグの確認を実施後、MACアドレス等のデータの登録を行う。上りSAアドレス登録/削除登録要求が入力されている場合は、該アドレス登録/削除登録要求の処理を完了した後、アドレス学習を実施する。
(2E)アドレス登録要求が入力された際のメモリ制御回路420の動作
次に、上りSAアドレス検索制御回路308からのアドレス登録要求が入力された際の下りSAアドレス検索制御回路316のメモリ制御回路420の動作を説明する。
アドレス学習要求信号は、入力端子401を介して、メモリ制御回路420に通知される。メモリ制御回路420では、登録/削除登録制御情報が入力されると、現在、下りSAアドレス検索中かを確認する。
上りSAアドレス検索中であった場合は、その動作を一時中断し、アドレス登録/削除登録動作を開始する。具体的には、該信号が登録要求であった場合、SAアドレスの検索結果、上りSAアドレス検索用メモリ309にMACアドレス情報が記憶されていなかったことを示すため、下りSAアドレス検索制御回路316は、入力されたメモリアドレスに、入力されたMACアドレス情報、ポート情報、及び制御情報を書き込む。具体的な、MACアドレス情報の書き込み判断は、上りSAアドレス検索時と同一であるので詳細な説明は省略する。
上記MACアドレス情報の登録が完了すると、メモリ制御回路420は、SAアドレスを検索中にアドレス登録を実施した場合、SAアドレス検索を再開する。一方、SAアドレス検索を実施していなかった場合は、次のSAアドレス検索の要求が入力されるまで待機する。
(2F)アドレス学習要求された際の下りSAアドレス検索制御回路316による動作
次に、同時に上り方向と下り方向のアドレス学習要求が入力された場合の、本実施の形態1における、下りSAアドレス検索制御回路316の動作を説明する。
基本的な動作は、上りSAアドレス検索制御回路308の動作と同一であるが、上述したように、SAアドレス検索の結果、同時にアドレス用検索用メモリの同じアドレスに異なるMACアドレスの情報を書き込むようにアドレス登録要求がくる場合がある。
その際は、メモリ制御回路420では、上りSAアドレス検索制御回路306から出力されるアドレス検索用メモリのアドレス情報を確認する。そして、自ら出力したアドレス情報と同一であった場合は、同時に同じアドレスに対してアドレス登録/削除情報が入力されたと判断し、一旦アドレス登録削除要求は破棄し、新たな空きアドレスを検索し、再度各アドレス検索制御回路に対してアドレス登録/削除登録要求を出力する。
上述のように、下りSAアドレス検索制御回路316を制御することで、同一のアドレスに異なるMACアドレスを登録することなく、4つの異なるアドレス検索用メモリを制御することが可能になるという効果がある。
(2G)削除登録におけるメモリ制御回路420の動作
次に、削除登録を実施する際のメモリ制御回路420の動作を説明する。
一致検出回路421は、SAアドレス検索の結果、検索対象のMACアドレスが記憶されており、有効フラグ、或いは静的フラグのいずれか一方が有効で、かつオーナーフラグが有効であるにもかかわらず、入力ポート番号が異なる場合、接続機器の接続ポートが変わったと判断し、MACアドレスの登録削除制御に入る。
メモリ制御回路420は、一致検出回路421から削除登録指示を受け取ると、MACアドレスの削除登録動作に入る。具体的には、アドレス削除登録の対象となるMACアドレス、ポート、及び制御情報を準備するとともに、一致検出回路421が、下りSAアドレス検索用メモリ317から読み出したどのアドレスのMACアドレスデータが一致したかを確認し、削除登録の対象となる上りSAアドレス検索用メモリ309内のアドレスを生成する。
そして、下りSAアドレス検索用メモリ317内のアドレス情報の生成が完了すると、アドレス登録削除要求信号とともに、該生成したアドレス情報、削除登録を実施するMACアドレス情報、ポート情報、及び制御情報を出力端子424を介して、上りDAアドレス検索制御回路306、下りDAアドレス検索制御回路314、及び上りSAアドレス検索制御回路308に出力する。
各アドレス検索制御回路へのアドレス登録削除要求信号の出力が完了すると、下りSAアドレス検索制御回路316は、下りSAアドレス検索用メモリ317に対してポート情報の更新を実施する。具体的には、先ほど生成した下りSAアドレス検索用メモリ317のアドレスより現在記憶されているデータを読み出し、ポート情報、及び制御情報を確認し、オーナーフラグ、及び有効フラグ、静的フラグのいずれかが有効であることを確認した後、ポート情報が一致していない旨を確認する。これらの確認処理が終了すると、新たなポート情報、及び制御情報を書き込む。
(2H)アドレス削除登録要が入力された際のメモリ制御回路420の動作
次に、上りSAアドレス検索制御回路308からのアドレス削除登録要求が入力された際の下りSAアドレス検索制御回路316内のメモリ制御回路420の動作を説明する。
アドレス削除登録要求信号は、入力端子401を介してメモリ制御回路420に通知される。具体的には、上りSAアドレス検索の結果、アドレス削除登録が必要な場合は、上りSAアドレス検索制御回路308から、アドレス削除登録要求信号とともに、下りSAアドレス検索用メモリ317への書き込みアドレス情報、学習対象のMACアドレス情報、ポート情報、制御情報、登録/削除登録制御情報が入力される。
削除登録要求信号が入力されると、下りSAアドレス検索制御回路316は、入力されたメモリアドレスのポート情報、及び制御情報を書き換える。例えば、下りSAアドレス検索用メモリ317から当該アドレスの情報を読み出し、MACアドレス情報が一致しているか否かを確認した後、一致していた場合は、下りSAアドレス検索用メモリ319にポート情報、及び制御情報を更新したデータを書き込む。一致していなかった場合は、その旨を上記CPUに通知する。
(2I)不正アクセスの確認時の処理
次に、SAアドレス検索の結果、検索対象のMACアドレスが記憶されており、有効フラグ、或いは静的フラグのいずれか一方が有効で、かつオーナーフラグが無効であった場合の動作について説明する。この場合、当初、入力端子21側に接続されていた機器(光ネットワーク4側に接続されていた機器)が、入力端子28側に接続(基幹ネットワーク5側に接続)されたことを意味する。これは、不正に本ネットワークに機器が接続されたことを意味する。
従って、上述のようなケースを検出した場合、上りSAアドレス検索時と同様に、当該MACアドレスを持つ機器がネットワークに不正にアクセスしてきたとみなし、上記CPU(不図示のデータ送受信装置のCPU)に対して本件を通知するとともに、ポート情報の更新を行わない。
また、上述のような不正アクセスを確認した場合は、不審者からのネットワークへの不正アクセス、或いは攻撃とみなし、基地局1内の上記データ送受信装置は、このアクセスを上位のネットワークには送信せず、破棄するものとする。
一方、下りDAアドレス検索制御回路314でのアドレス検索が終了すると、連想メモリ回路204は、アドレス検索結果(ポート情報、及びアドレスがヒットしたかの情報)を、下りブリッジメモリ制御回路207に通知するとともに、下りVLA処理回路208に対しても、アドレス検索が終了した旨を通知する。その際、上記アドレス検索結果も出力する。
下りVLAN処理回路208は、DAアドレス検索結果が入力されると、アドレス検索結果に基づいて、VLANの付け替え処理等を実施する。下りVLAN処理回路208でVLANの付け替え処理が完了したMACヘッダ情報は、下りブリッジメモリ制御回路207に入力される。
下りブリッジ制御回路205では、下りVLAN処理回路208でVLANの付け替え処理が終了すると、FIFOメモリ209に記憶されているEthernetフレームデータの処理を開始する。具体的には、下りフィルタリング処理回路210から出力されるフィルタリング結果に基づき、入力されたEthernetフレームを破棄するか否かを確認する。
破棄する場合は、FIFOメモリ209からEthernetフレームデータを読み出し、そのデータを破棄する。同様に、連想メモリ回路204で不正アクセスと判断されたEthernetフレームについても同様に破棄する。
下りフィルタリング処理回路210で通過と判断されたEthernetフレームは、連想メモリ回路204から出力されるDAアドレス検索結果に基づき、ブリッジメモリ25にVLANの付け替えを実施した後、記憶する。
下りブリッジメモリ制御回路206は、連想メモリ204から出力されるDAアドレス検索で得られたポート情報に基づいて、入力されたEthernetフレームの書き込みアドレスを発生し、FIFOメモリ209からEthernetフレームを読み出して、VLANを付け替えた後に、バスアービタ回路211に入力する。
バスアービタ回路211では、上りブリッジメモリ制御回路206、及び下りブリッジメモリ制御回路207から入力されるブリッジメモリ25へのデータの書き込み、及び読み出し要求を調停し、ブリッジメモリ25へのデータの書き込み、及び読み出しを実施する。
なお、DAアドレス検索の結果、アドレス情報がヒットしなかった場合、この実施の形態1では、該当するブリッジメモリ25の全てのポートの記憶エリアにEthernetフレームを書き込むものとする。
一方、ブリッジメモリ25からの上りフレームの読み出しは、MAC部23から出力される制御信号(不図示)に基づいて、ブリッジメモリ25に記憶されているEthernetフレームを読み出す。ブリッジメモリ25より読み出されたEthernetフレームは出力端子212を介してMAC部23に出力される。MAC部23は、誤り検出符号やLLID情報等を付加し、出力端子22を介して光ネットワーク4へEthernetフレームデータを送出する。
以上のように、この実施の形態1によれば、検索対象のMACアドレスから算出したハッシュ値に対応するバケットを選択し、選択された連想メモリのバケットから所定数の情報を一括して読み出し、検索対象のMACアドレスに対応するポート情報等を検索するとともに、検索されたMACアドレス及びこれに関連付けられたポート情報等を連想メモリに登録するにあたり、検索対象のMACアドレスに一致する情報が連想メモリに記憶されていないと判定されると、検索が実行された複数のバケット内の同一の空き領域アドレスに対して一括に、MACアドレス及びポート情報等を書き込む。このように、アドレス検索用メモリを複数個配置し、アドレス学習にあたり、複数配置されたアドレス検索用メモリを空き領域に対して一括に(ほぼ同時に)アドレス学習することにより、10Gbpsで送受信されるEthernetフレームを所定の処理速度でアドレス検索が実施できるとともに、バケットサイズも大きくとることができる。
また、この実施の形態1によれば、アドレス検索用メモリから並列に読み出すデータ数を、必要以上に大きくとる必要がないので、LSI化を図る際、配線数が大きくなり、回路規模に比べてLSIサイズが大きくなってしまうことがない。複数個のMACアドレス情報を同時に読み出し、MACアドレスの一致判定を行う場合、複数のMACアドレスの中から一致した情報を特定する場合も、同時に読み出すMACアドレス数が少ないため、処理時間を最小に抑えることができる。
さらに、この実施の形態1によれば、オーナーフラグを用いることで、外部からの不正なアクセスに対しても、検出し処理することができる。
また、SAアドレス検索の結果、新たに登録するMACアドレスの登録アドレスをSA検索の際に、同時に確認するよう構成するので、SAアドレス検索の結果、MACアドレスの登録が必要な場合、再度SAアドレス検索用メモリ内の空きアドレスを検索しなくてよい。このため、不必要にSAアドレス検索用メモリをアクセスすることなく、また、高速化を図ることができる。
さらに、アドレス登録時に、各アドレス検索用メモリへの書き込みアドレスを、MACアドレス情報等と一緒に出力することで、各アドレス検索用制御回路で再度、登録アドレスを検索する必要がない。
また、全てのアドレス検索用メモリ内のMACアドレス情報とポート情報は同じとなるので、削除登録についても対象のMACアドレスが記憶されているアドレス検索用メモリ内のアドレス情報を出力するだけで、アドレス検索制御回路が、新たに削除登録を実施するMACアドレスを検索する必要がなく、アドレス検索時間の短縮を図ることができる。具体的には、アドレス検索用メモリからのデータの読み出し、及び対象アドレスへの新規データの書き込みの2クロックでアドレス登録、或いはアドレス削除登録を実施することができる。
この実施の形態1では、DAアドレス検索用メモリ、及びSAアドレス検索用メモリをそれぞれ2個配置するように構成したが、これに限るものではなく、例えばDAアドレス検索用メモリとSA検索用メモリとをそれぞれ一個ずつ設けてもよい。
また、ルータ装置等、複数のポートが独立に設けられているような装置では、ポートごとに連想メモリ装置を配置し、各ポートでのSAアドレス検索の結果、アドレス登録、或いは削除登録が必要な場合、複数配置された連想メモリ装置内のアドレス情報を、ほぼ同時に変えるよう制御すれば同様の効果を奏する。
さらに、複数の連想メモリ装置でSAアドレス検索を実施し、SAアドレス検索の結果、複数の連想装置から同時にアドレス学習要求がきた場合、予めアドレス学習の際の優先順位を決めておき、その優先順位に基づき、アドレス学習を実施するよう構成する。このようにすることで、各連想メモリ装置内のアドレス検索用メモリ内のMACアドレス情報及びポート情報は同じとなり、上記実施の形態1と同様に、アドレス学習要求に対して、各アドレス検索制御回路が、空きアドレス等を検索する必要がなく、高速化を図ることができる。
なお、上記実施の形態1では、光ネットワーク4と基幹ネットワーク5を中継する光を用いた通信装置について説明したが、これに限るものではなく、高速PLCや無線LAN、UWB、高速Ethernet通信方式を採用する他の伝送方式を採用しても、本発明の連想メモリ装置を適用でき、同様の制御によって同様の効果を得ることができる。
また、上記実施の形態1では、各アドレス検索制御装回路によるアドレス検索用メモリへのアクセス制御の優先順位を上述のように設定する場合を示したが、これに限定されるものではない。本発明の趣旨から逸脱しない範囲で予め定められた順で制御すれば、同様の効果が得られる。
この発明の実施の形態1による連想メモリ装置を適用した光通信ネットワークシステムの構成を概略的に示す図である。 図1中の基地局内のデータ送受信装置の構成を示すブロック図である。 図2中のブリッジ回路の構成を示すブロック図である。 図3中の連想メモリ回路の構成を概略的に示すブロック図である。 MACフレームの構成例を示す図である。 図4中の連想メモリ回路内の各アドレス検索用メモリの構成を概略的に示す図である。 図6中のアドレス検索用メモリに記憶する、MACアドレス情報、ポート情報及び制御情報の記憶フォーマットの一例を示す図である。 図6中のアドレス検索用メモリから、MACアドレス情報、ポート情報及び制御情報を読み出す際のデータ読み出しフォーマットの一例を示す図である。 図4中の上りDAアドレス検索制御回路の構成を概略的に示すブロック図である。 図4中の上りSAアドレス検索制御回路の構成を概略的に示すブロック図である。
符号の説明
1 基地局、2a〜2c ホームゲートウェイ、3a〜3c コンピュータ、4 光ネットワーク、5,7 基幹ネットワーク、6 インターネット網、8 プロバイダのサーバ、9a〜9c 宅内ネットワーク、21,28,200,213,301,302,401,402,403,404,405,406 入力端子、22,28,201,212,310,318,412,413,414,424 出力端子、23,26 MAC部、24 ブリッジ回路、25 ブリッジメモリ、202 上りフィルタリング処理回路、203,209 FIFOメモリ、204 連想メモリ回路、205 上りVLAN処理回路、206 上りブリッジメモリ制御回路、207 下りブリッジメモリ制御回路、208 下りVLAN処理回路、210 下りフィルタリング処理回路、211 バスアービタ回路、303,311 MACアドレス分離回路、304,305,312,313 ハッシュ値計算回路(ハッシュ演算部)、306 上りDAアドレス検索制御回路(書き込み処理部、検索部、制御部)、307 上りDAアドレス検索用メモリ(連想メモリ)、308 上りSAアドレス検索制御回路(書き込み処理部、検索部、制御部)、309 上りSAアドレス検索用メモリ(連想メモリ)、314 下りDAアドレス検索制御回路(書き込み処理部、検索部、制御部)、315 下りDAアドレス検索用メモリ(連想メモリ)、316 下りSAアドレス検索制御回路(書き込み処理部、検索部、制御部)、317 下りSAアドレス検索用メモリ(連想メモリ)、407 アドレス発生回路、408,420 メモリ制御回路(制御部)、409a〜409d 比較回路、410,421 一致検出回路、411 選択回路、422 未使用エリア検出回路(空き領域検出部)。

Claims (4)

  1. キー情報に関連付けて連想情報を記憶する複数のバケットに分割された少なくとも2個以上の連想メモリを備えた連想メモリ装置において、
    検索対象のキー情報からハッシュ値を算出するハッシュ演算部と、
    前記複数の連想メモリのバケットのうち、前記ハッシュ演算部で検索対象のキー情報から算出した該ハッシュ値に対応するバケットを選択する選択部と、
    前記選択部で選択された連想メモリのバケットから所定数の情報を一括して読み出し、前記検索対象のキー情報に対応する連想情報を検索する検索部と、
    バケット内の空き領域アドレスを検出する空き領域検出部と、
    連想メモリのバケットへ情報の書き込みを行う書き込み処理部と、
    前記検索部で検索対象のキー情報に一致する情報が前記連想メモリに記憶されていないと判定されると、前記検索部によって検索が実行された複数のバケット内の前記空き領域検出部で検出された同一の空き領域アドレスに対して一括に、前記キー情報及びその連想情報を書き込むように前記書き込み処理部を制御する制御部とを備えたことを特徴とする連想メモリ装置。
  2. 連想メモリは、連想メモリ毎の各バケットにおける連想情報の登録状況を示す制御情報をキー情報に関連付けて記憶し、
    制御部は、検索部により検索対象のキー情報と一致する連想情報が前記連想メモリに記憶されていると判定されると、検索の際に選択された前記連想メモリのバケット内の前記キー情報に対応する制御情報を、前記検索の結果に応じて書き換えるように書き込み処理部を制御することを特徴とする請求項1記載の連想メモリ装置。
  3. 連想メモリは、キー情報に対応する連想情報を登録する学習用メモリと前記キー情報に対応する連想情報の検索用メモリとから構成されることを特徴とする請求項1または請求項2記載の連想メモリ装置。
  4. 制御部は、検索部で検索されたキー情報及びその連想情報を連想メモリに登録するにあたり、前記キー情報に対応する連想情報の使用の有無を示す制御情報を設定してから書き込みするように書き込み処理部を制御することを特徴とする請求項1から請求項3のうちのいずれか1項記載の連想メモリ装置。
JP2008096205A 2008-04-02 2008-04-02 連想メモリ装置 Pending JP2009253433A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2008096205A JP2009253433A (ja) 2008-04-02 2008-04-02 連想メモリ装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2008096205A JP2009253433A (ja) 2008-04-02 2008-04-02 連想メモリ装置

Publications (1)

Publication Number Publication Date
JP2009253433A true JP2009253433A (ja) 2009-10-29

Family

ID=41313726

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008096205A Pending JP2009253433A (ja) 2008-04-02 2008-04-02 連想メモリ装置

Country Status (1)

Country Link
JP (1) JP2009253433A (ja)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013123129A (ja) * 2011-12-09 2013-06-20 Nippon Telegr & Teleph Corp <Ntt> フレーム転送装置および方法
KR102085132B1 (ko) * 2018-11-13 2020-04-20 인하대학교 산학협력단 버킷 내부에서 해시 함수의 분류를 이용한 효율적인 쿠쿠 해시 방법
CN112333297A (zh) * 2017-02-15 2021-02-05 金钱猫科技股份有限公司 一种批量获取终端属性的方法及系统
WO2022104540A1 (zh) * 2020-11-17 2022-05-27 深圳大学 一种跨模态哈希检索方法、终端设备及存储介质

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013123129A (ja) * 2011-12-09 2013-06-20 Nippon Telegr & Teleph Corp <Ntt> フレーム転送装置および方法
CN112333297A (zh) * 2017-02-15 2021-02-05 金钱猫科技股份有限公司 一种批量获取终端属性的方法及系统
CN112333297B (zh) * 2017-02-15 2023-03-24 金钱猫科技股份有限公司 一种批量获取终端属性的方法及系统
KR102085132B1 (ko) * 2018-11-13 2020-04-20 인하대학교 산학협력단 버킷 내부에서 해시 함수의 분류를 이용한 효율적인 쿠쿠 해시 방법
WO2022104540A1 (zh) * 2020-11-17 2022-05-27 深圳大学 一种跨模态哈希检索方法、终端设备及存储介质

Similar Documents

Publication Publication Date Title
US8228908B2 (en) Apparatus for hardware-software classification of data packet flows
US9727508B2 (en) Address learning and aging for network bridging in a network processor
US8515965B2 (en) Concurrent linked-list traversal for real-time hash processing in multi-core, multi-thread network processors
US7949683B2 (en) Method and apparatus for traversing a compressed deterministic finite automata (DFA) graph
JP3734704B2 (ja) パケット分類エンジン
US8086609B2 (en) Graph caching
US8180803B2 (en) Deterministic finite automata (DFA) graph compression
EP2019360B1 (en) Data processing apparatus and data transfer method
US8176300B2 (en) Method and apparatus for content based searching
US8799507B2 (en) Longest prefix match searches with variable numbers of prefixes
US9600591B2 (en) Method and apparatus for URL address search in URL list
KR101476940B1 (ko) 스위치 시스템, 및 데이터 전송 방법
CN108306835B (zh) 一种以太网交换机的输入缓存及数据转发方法
CN104704779A (zh) 用于加速软件定义网络中的转发的方法和设备
JP2009253433A (ja) 連想メモリ装置
US20130336327A1 (en) Network system, packet processing method and recording medium
US7827324B2 (en) Method of handling flow control in daisy-chain protocols
US9137158B2 (en) Communication apparatus and communication method
US7461142B2 (en) Method and apparatus for address management in a network device
US9699072B2 (en) Packet handling in information centric networking networks
JP2010020821A (ja) 連想メモリ装置
US9160688B2 (en) System and method for selective direct memory access
CN115396323B (zh) 一种基于有限状态机的端口实时数据流可视化方法及其系统
CN107094114A (zh) 用于模块化转发表可缩放性的技术
CN116033017A (zh) 网络数据包的处理设备及处理方法、电子设备