(57)【要約】【課題】  PCIバスを用いずに、連想メモリへのエントリを可能にし、以ってエントリ完了までの時間を削減する。【解決手段】  連想メモリ4へのデータエントリをイネーブルに設定しておき、回線系バスB1から自装置宛の転送フレームを受信したとき、該エントリがイネーブルに設定されていることに基づき、該フレームのヘッダ情報を連想メモリ4へエントリする。該フレームは、他装置の連想メモリ4にエントリされたヘッダ情報に基づいて作成され、該他装置から送信されたものを用いることができ、自装置宛ではないときには、該フレームを廃棄する。さらに、該エントリがイネーブルに設定されていないときには、通常フレーム処理を行う。【選択図】  図１
2006262336.tif 000002
【特許請求の範囲】
【請求項１】
連想メモリへのデータエントリをイネーブルに設定するステップと、
回線系バスから自装置宛の転送フレームを受信したとき、該エントリがイネーブルに設定されていることに基づき、該フレームのヘッダ情報を該連想メモリへエントリするステップと、
を備えたことを特徴とするフレーム転送方法。
【請求項２】
請求項１において、
該フレームが、他装置の連想メモリにエントリされたヘッダ情報に基づいて作成され、該他装置から送信されたものであることを特徴とするフレーム転送方法。
【請求項３】
連想メモリへのデータエントリをイネーブルに設定する手段と、
回線系バスから自装置宛の転送フレームを受信したとき、該エントリがイネーブルに設定されていることに基づき、該フレームのヘッダ情報を該連想メモリへエントリする手段と、
を備えたことを特徴とするフレーム転送装置。
【請求項４】
請求項３において、
該フレームが、他装置の連想メモリにエントリされたヘッダ情報に基づいて作成され、該他装置から送信されたものであることを特徴とするフレーム転送装置。
【請求項５】
請求項３において、
該フレームが、自装置宛ではないときには、該フレームを廃棄する手段をさらに含むことを特徴とするフレーム転送装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はフレーム転送方法及び装置に関し、特にルータ等においてIPフレーム（以下、単にフレームと称する。）を転送（中継）するために用いる連想メモリ（CAM）にデータエントリする方法及び装置に関するものである。
【背景技術】
【０００２】
図10は、連想メモリを用いた従来のフレーム転送装置の構成例を示している。このフレーム転送装置は、回線インターフェースLIから回線系バスB1で順に接続されたデバイス1及び2と、これらのデバイス1及び2に、さらに回線系バスB1で直列接続されたバスブリッジ3と、このバスブリッジ3にローカルバスB2で接続された連想メモリ4と、さらにバスブリッジ3にPCIバスB3を経由して接続されたCPU5とで構成されており、PCIバスB3はデバイス1及び2にも接続されている。
【０００３】
デバイス1は、例えば、OSI参照モデルの第1層（PHY：物理層）に位置するデータを処理する機能を有するLSIであり、具体的にはケーブルの材質やコネクタ形状、及びデータと電気信号の相互変換方式（電圧等の規定）を対象とするデータを処理するものである。
【０００４】
また、デバイス2は、例えば、OSI参照モデルにおけるデータリンク層中の下層であるMAC（Media Access Control）層に位置し、フレームの送受信方向やフレームの形式、誤り検出方法等を対象とするデータを処理する機能を有するLSIである。
【０００５】
また、バスブリッジ3は、フレーム（パケット）の負荷分散機能を有するLSC（Load Sharing Controller）であり、到着したフレームのヘッダ情報に基づいて振り分け先（転送先）を決定し、送信元/宛先MACアドレスの書き換えを行い、振り分け先にフレームを送信するものである。
【０００６】
またフレームの振り分けに必要となる中継情報は連想メモリ4にエントリする必要がある。
【０００７】
図11において、連想メモリ4内のテーブルフォーマットを示す。図中、エントリコード（4ビット）はエントリ種別（IPv4DA, IPv4SA,IPv6DA, IPv6SA）を識別するためのコードである。また、VIDはIPフレームのVLAN IDを識別するためのコードである。IP DAはIPフレームの宛先IPアドレスを示し、IPSAは送信元IPアドレスを示している。
【０００８】
そして、振り分けの対象となるIPフレームのヘッダ情報を連想メモリ4に格納しておき、連想メモリ4を検索した結果、ヒットしたフレームに対しMACアドレスの書き換えを行ってパケットの転送を行う（通常運用動作：後述する図4に示す通常運用時の動作例においてステップS5を除いた処理に相当。）。
【０００９】
このようなフレーム転送装置において、連想メモリ4に対しIPフレームのヘッダ情報をエントリする場合、CPU5が接続されたPCIバスB3と連想メモリ4が接続されたローカルバスB2との間におけるデータ転送は、バスブリッジ3を介して行われる。すなわち、CPU5からローカルバスB2上の連想メモリ4にアクセスする場合、まずPCIバスB3上でバスブリッジ３にリクエストを出し（図10(b)）、ローカルバスB2上で連想メモリ4に対してリードサイクルを発生させ（同図(c)）、ヘッダ情報を取得後、PCIバスB3に転送することによって行われていた。
【００１０】
このような連想メモリ4へのエントリ動作のタイミングチャートが図12(1)に示されている。
【００１１】
図中、CLK33はPCIバスのクロックを示す（33MHｚ）。AD[31:0]はPCIバスB3のアドレス（ADR）及びデータバス（WDT）を示す。ｘCBE[3:0]はPCIバスB3のアドレスコマンド（CMD）及びバイトイネーブル（BE）を示す。PARはPCIバスB3のパリティ（AP：アドレスパリティ、DP：データパリティ）を示す。ｎFRAMEはPCIバスB3のフレーム信号を示す。ｎIRDYはPCIバスB3のイニシエータレディ信号を示す。ｎDEVSELはPCIバスB3のデバイスセレクション信号を示す。ｎTRDYはPCIバスB3のターゲットレディ信号を示す。ｎSTOPはPCIバスB3のSTOP信号を示す。CLK2XはローカルバスB2のクロック（156.25MHz）を示す。REQSTBはローカルバスB2のバスリクエスト信号を示す。INSTはローカルバスB2のバスコマンド（Instruction）信号を示す。GMASKはローカルバスB2のバスコマンド（GlocalMaskレジスタ選択）信号を示す。REQDATA[71:0]はローカルバスB2のデータバスを示す。
【００１２】
一方、LAN 収容部からシステムバスに送信されるパケットは、CAM制御装置に格納されることなく、各LAN収納部の受信部に格納され、このパケットのデータが格納されている最中に、パケットデータの相手先アドレス及び発信元アドレスがCAM制御装置により抽出され、フィルタリング及びルーチングが遂行されるパケット処理方式がある（例えば、特許文献1参照。）。
【００１３】
また、バスブリッジがシステムバスとローカルバスとの間に接続され、システムバス上で、CPUとI/O機器と主記憶装置との間で転送されるデータを連想メモリ制御部を介して連想メモリに保持し、ローカルバス上のI/O機器からこのデータへのアクセスが生じた場合、連想メモリからI/O機器にデータを転送するデータ転送装置および方法がある（例えば、特許文献2参照。）。
【特許文献１】特開平8-70319号公報
【特許文献２】特開2002-24162号公報
【発明の開示】
【発明が解決しようとする課題】
【００１４】
図10に示した従来のフレーム転送装置においては、PCIバスB3が使用中であれば、PCIバスB3上のバスブリッジ３にアクセスし、このバスブリッジ３からデータを連想メモリ4に転送するまでに遅延時間が発生し、データ転送が遅くなる。また、連想メモリ４へエントリするデータ量が多い場合、PCIバスB3-ローカルバスB2間のデータ変換に時間を要するため、全データエントリを完了するまでに膨大な時間を要するという課題があった。
【００１５】
従って本発明は、PCIバスを用いずに連想メモリへのデータエントリを可能にし、以ってエントリ完了までの時間を削減することを目的とする。
【課題を解決するための手段】
【００１６】
上記の目的を達成するため、本発明に係るフレーム転送方法は、連想メモリへのデータエントリをイネーブルに設定するステップと、回線系バスから自装置宛の転送フレームを受信したとき、該エントリがイネーブルに設定されていることに基づき、該フレームのヘッダ情報を該連想メモリへエントリするステップと、を備えたことを特徴としている。
【００１７】
このような本発明を原理的に示す図1を参照して説明すると、本発明では、従来、PCIバスB3を経由して行っていた連想メモリ4へのデータエントリを回線系バスB1を経由して行うものである。この場合、CPU5は、PCIバスB3を経由してエントリイネーブルの設定を行う（同図(a)）。このようにエントリイネーブルを設定した後、バスブリッジ3は、回線系バスB1からのフレームのヘッダ情報をローカルバスB2経由で連想メモリ4にエントリする。
【００１８】
従って本発明では、連想メモリ4へのエントリを回線系バスB1を経由して行うので、エントリ速度（数100MHz〜GHz）は従来のPCIバスの速度（33MHz）に比べて大幅に高速になり、エントリに必要となるCPU処理時間を大幅に削減することができる。
【００１９】
このようなフレーム転送方法を実現する本発明に係るフレーム転送装置は、連想メモリへのデータエントリをイネーブルに設定する手段と、回線系バスから自装置宛の転送フレームを受信したとき、該エントリがイネーブルに設定されていることに基づき、該フレームのヘッダ情報を該連想メモリへエントリする手段と、を備えたことを特徴としている。
【００２０】
上記のフレーム転送方法及び装置において、上記のフレームは、他装置の連想メモリにエントリしたヘッダ情報に基づいて作成され該他装置から送信されたものを用いることができる。
【００２１】
従って、図2に示すように、コンソール100a（図1のCPU5に相当）からエントリ情報の設定を受けたフレーム転送装置100からさらにフレーム転送装置200へ同じエントリ情報を設定したい場合、回線系バスB1でエントリ情報の転送を行うことができるので、連想メモリへのデータ転送が高速に行うことができる。
【００２２】
また、上記のフレームは、自装置宛ではないときには、該フレームを廃棄するステップ又は手段をさらに含むことができる。
【００２３】
さらに、上記のデータエントリがイネーブルに設定されていないときには、通常フレーム処理を行うことができる。
【００２４】
また、該フレームが、IPv4、IPv6フレームではないときには、該フレームを廃棄することができる。
【００２５】
また、該フレームが連想メモリにエントリされていないときには、該フレームを廃棄することができる。
【００２６】
また、該フレームが、自装置のフレーム生成機能により生成され、該他装置へ送信する機能を有することができる。
【００２７】
また、該フレームが、Tag有りフレームか否かを判断することができる。
【００２８】
さらに、フレーム生成機能は、IPv4、IPv6両方のフレームを生成することができる。
【発明の効果】
【００２９】
本発明によれば、PCIバス経由で行っていた連想メモリへのデータエントリを、より高速な回線系バスを経由して行うため、連想メモリへのより高速なアクセスが可能となる。また、フレーム転送装置間で同じエントリ情報を設定したい場合、回線系バスでエントリ情報の転送を行うことができるので、連想メモリへのデータ転送が高速に行うことができる。さらに、回線系バスから直接連想メモリへのエントリアクセスを行うため、CPUを介在することが無く、従ってCPUの占有時間を短縮する効果がある。
【発明を実施するための最良の形態】
【００３０】
図3は、図1に示した本発明によるフレーム転送方法を実現する装置の一実施例を示したもので、特にバスブリッジ3の構成実施例を詳細に示している。この実施例では、バスブリッジ3は、回線系バスB1に接続されたバス変換部11と、このバス変換部11でバス変換されたフレームを格納するFIFO12と、このFIFO12から出力されたフレームにおけるヘッダ情報を識別するヘッダ識別部13と、ヘッダ識別部13で識別されたヘッダ情報に基づいて、検索、エントリ（書込）、又はリード（読出）を行うCAMシーケンサ14と、CAMシーケンサ14からの指示信号に従って連想メモリ4の制御を行うCAM制御部15と、CAM制御部15によって連想メモリ4から得られたデータに対してハッシュ計算を行うハッシュ計算部16と、このハッシュ計算部16で変換されたヘッダ情報に基づき、MACテーブルを検索するMACテーブル検索部17と、このMACテーブル検索部17での検索結果に基づきMACヘッダを更新するMACヘッダ更新部18と、このMACヘッダ更新部18で更新されたヘッダ情報に基づいてフレームを生成しバス変換部11に送るFIFO19と、PCIバスP3とのインタフェースを行うPCIインタフェース部（I/F部）20と、PCIインタフェース部20とCAMシーケンサ14とのデータの受け渡しを行うレジスタ21とで構成されている。
【００３１】
以下、このバスブリッジ3によるフレーム転送動作の実施例を通常運用時とCAMエントリ時に分けて説明する。
通常運用時：
図4に示す通常運用時の動作例を示したフローチャートにおいて、まずフレーム転送装置100は、自分にPCIバスB3を介して接続されているCPU5から連想メモリ4に対してメモリ6に保存しておいたデータ（ヘッダ情報）のエントリ（CAMエントリ）を行う（ステップS1）。これは、図5の点線で示すように、CPU5からPCIバスB3を経由し、さらにPCIインタフェース20、レジスタ21、CAMシーケンサ14、及びCAM制御部15を経由してローカルバスB2から連想メモリ4へ、図6に示すようなフレーム中のヘッダ情報、すなわち、VID、IPversion、IP SA、及びIP DAが書き込まれることになる。
【００３２】
このような状態で、フレーム転送装置100は、回線系バスB1から同図(2)に示すように、フレームを受信したとする（ステップS2）。このように受信したフレームはバス変換部11及びFIFO12を経由してヘッダ識別部13に送られる。このヘッダ識別部13では、フレーム転送装置100のバスブリッジ3のMACアドレスを含んでいるか否かを判定し（ステップS3）、自分のMACアドレスが含まれていないときにはそのフレームを廃棄する（ステップS14）。
【００３３】
受信フレームが、このバスブリッジ3に宛てたフレームであることが分かったときには、さらに図6に示すようにTypeがIPv4かIPv6かを判定し（ステップS4）、いずれかのTypeに属している場合のみ、ステップS5に進み、それ以外の場合にはフレームを廃棄する（ステップS14）。
【００３４】
ステップS5において、CAMシーケンサ14は、レジスタ21から与えられているエントリイネーブルがONかOFFかを判定する。図4に示した例は通常運用時であるので、エントリイネーブルはOFFに設定されている。従って、CAMシーケンサ14が起動され（ステップS6）、フレームから図6に示したヘッダ情報を抽出し（ステップS7）、その内のIPDA並びにIP SAによる連想メモリ4の検索をCAM制御部15に対して指示する（ステップS8及びS9）。これに伴い、CAM制御部15はヘッダ情報を連想メモリ4に与えることにより連想メモリ4は、同図(3)に示すように、CAM検索を実行する。
【００３５】
CAM検索の結果、ヘッダ情報中のIP DA及びIP SAのいずれもミスヒットだった場合のみフレームを廃棄し（ステップS14）、少なくともいずれかがヒットしている場合には、ハッシュ計算部16において連想メモリ4から読み出した（リード）ヘッダ情報にハッシュ計算部16がハッシュ演算を行って疑似乱数のヘッダ情報に変換した後、このヘッダ情報におけるMACアドレスが存在するか否かをMACテーブル検索部17で検索し、存在している時にはMACヘッダ更新部18において、そのMACヘッダを更新し、FIFO19においてフレームをバッファリングして、同図(4)に示すようにバス変換部11から回線系バスB1にフレーム中継することとなる。
CAMエントリ時：
図7には、CAMエントリ時の動作実施例がフローチャートで示されており、図8(1)に示すように、フレーム転送装置100はまず図4に示したステップS1と同様に、CPU5から連想メモリ4に対してCAMエントリを実行する（ステップS21）。
【００３６】
この後、フレーム転送装置100は図8(2)で示すように、フレーム転送装置200に対してフレーム自送信を実行する。すなわち、CPU5からヘッダ情報がPCIバスB3、PCIインタフェース20、及びレジスタ21を経由してFIFO12に送られ、このFIFO12においてヘッダ情報が付加されたフレームが生成される。このフレームは、ヘッダ識別部13、CAMシーケンサ14、ハッシュ計算部16、MACテーブル検索部17、MACヘッダ更新部18、FIFO19、及びバス変換部11を経由して回線系バスB11からフレーム転送装置200へ転送される（ステップS22）。
【００３７】
このようにしてフレーム転送装置200が、同図(3)に示すように、フレーム受信すると（ステップS23）、このフレーム転送装置200において、図4におけるステップS3〜S5と同様にヘッダ識別部13においてステップS24〜S26が実行される。
【００３８】
このとき、フレーム転送装置200においては、CPU（図示せず）からPCIバスB3を経由して、PCIインタフェース20及びレジスタ21よりCAMシーケンサ14にエントリイネーブルが予めONに設定されているので（ステップS26）、ステップS27及びステップS28を実行する。これは、図4におけるステップS6及びステップS7に対応した処理である。このようにして、CAMシーケンサ14は図８(4)に示すように、ヘッダ識別部13で識別されたヘッダ情報を連想メモリに4にエントリすることができる（ステップS29）。
【００３９】
ここでシミュレーションによる性能を検討する。
【００４０】
従来例では、PCIバスB3（33MHz）で144ビット(32ビットx4.5)のIPフレームのヘッダ情報を連想メモリ4へエントリするのには、図12(1)に示すように、690nsecx4.5＝3.105us程度時間を要していた。この方式で複数のIPフレームを連続でエントリする場合は、その間のCPU処理能力を占有することになる。
【００４１】
一方、本発明では、回線系バスB1-ローカルバスB2間のデータ変換を含め、１フレームエントリ当たり約51nsec程度でエントリが可能である(同図(2))。従って、従来例に比べCPU処理占有時間は極端に減少し、約60倍以上もの速度向上が可能になる。（なお、CCLKは連想メモリ4の内部システムクロック（78.125MHz）である。）
例えば、連想メモリ4の全領域に対してエントリを行う場合、本発明が適用されるフレーム転送装置内の連想メモリ4は144ビットのエントリデータを16k個エントリすることが可能であるが、PCIバス経由による従来例の場合、PCIバス上における他のPCIデバイスからのアクセス競合が無いと仮定して、CAMの全エントリ完了までに、3.105usecx 16k = 50.872msec程度の時間を要する。
【００４２】
一方、本発明では、全エントリ完了までに51nsec x16k=0.835msecで完了する。
【００４３】
また、本発明ではPCIバスB3上のアクセス競合によるアクセス時間の遅延は発生しない。
【００４４】
図９に示すタイミングチャートはバスブリッジ内のヘッダ識別部のものである。図６に示した「フレームフォーマットとヘッダ情報抽出例（IPv4フレームの場合）」で示されるフレームを1クロック当たり64ビットに区切って、処理を行う（同図(1)参照。）。
【００４５】
即ち、０クロック目はrxfifo_pkt_lt（同図(2)）であり、MAC＿DA、MAC_SAの一部が抽出される。1クロック目はrxfifo_pkt_lt2であり（同図(3)）、MAC_SAの一部とIP_Version識別候補Aが抽出される。２クロック目はrxfifo_pkt_lt3（同図(4)）であり、IP_Version識別候補Bが抽出される。
【００４６】
以上の抽出された情報を元に図９のIP version識別手順に従い、該フレームがIPv4,IPv6,廃棄対象であるかの識別を行う。このとき、該フレームがTag有りフレームであるかの判別も行っている。
【００４７】
なお、上記の実施例においては、フレーム転送装置100からフレーム転送装置200に対してフレームを送信して与えることにより装置200においてCAMエントリを実行しているが、例えばフレーム転送装置100又は200のみにおいて何らかの形で回線係バスB1から受信したフレームに基づいて同様のCAMエントリを行うことも可能である。
【００４８】
（付記１）
連想メモリへのデータエントリをイネーブルに設定するステップと、
回線系バスから自装置宛の転送フレームを受信したとき、該エントリがイネーブルに設定されていることに基づき、該フレームのヘッダ情報を該連想メモリへエントリするステップと、
を備えたことを特徴とするフレーム転送方法。
（付記２）付記１において、
該フレームが、他装置の連想メモリにエントリされたヘッダ情報に基づいて作成され、該他装置から送信されたものであることを特徴とするフレーム転送方法。
（付記３）付記１において、
該フレームが、自装置宛ではないときには、該フレームを廃棄するステップをさらに含むことを特徴とするフレーム転送方法。
（付記４）付記１において、
該エントリがイネーブルに設定されていないときには、通常フレーム処理を行うことを特徴とするフレーム転送方法。
（付記５）
連想メモリへのデータエントリをイネーブルに設定する手段と、
回線系バスから自装置宛の転送フレームを受信したとき、該エントリがイネーブルに設定されていることに基づき、該フレームのヘッダ情報を該連想メモリへエントリする手段と、
を備えたことを特徴とするフレーム転送装置。
（付記６）付記５において、
該フレームが、他装置の連想メモリにエントリされたヘッダ情報に基づいて作成され、該他装置から送信されたものであることを特徴とするフレーム転送装置。
（付記７）付記５において、
該フレームが、自装置宛ではないときには、該フレームを廃棄する手段をさらに含むことを特徴とするフレーム転送装置。
（付記８）付記５において、
該エントリがイネーブルに設定されていないときには、通常フレーム処理を行うことを特徴とするフレーム転送装置。
（付記９）
該フレームが、IPv4、IPv6フレームではないときには、該フレームを廃棄する手段をさらに含むことを特徴とするフレーム転送装置。
（付記１０）
該フレームが連想メモリにエントリされていないときには、該フレームを廃棄する手段をさらに含むことを特徴とするフレーム転送装置。
（付記１１）付記６において、
該フレームが、自装置のフレーム生成機能により生成され、該他装置へ送信する機能を有することを特徴とするフレーム転送装置。
（付記１２）付記９において、
該フレームが、Tag有りフレームか否かを判断する手段をさらに含むことを特徴とするフレーム転送装置。
（付記１３）付記１１において、
フレーム生成機能は、IPv4、IPv6両方のフレームを生成する機能を有することを特徴とするフレーム転送装置。
【図面の簡単な説明】
【００４９】
【図１】本発明に係るフレーム転送方法及び装置の原理を示したブロック図である。
【図２】本発明によるフレーム転送装置間でのCAMエントリを説明するための図である。
【図３】本発明に係るフレーム転送装置に用いられるバスブリッジの一実施例を示したブロック図である。
【図４】図3に示したバスブリッジにおいて通常運用時の動作実施例を示したフローチャート図である。
【図５】図4に示した動作実施例を、図３に示した構成例において概略的に示したブロック図である。
【図６】連想メモリにエントリされるヘッダ情報とそのフレームのフォーマット（IPv4フレームの場合）を示した図である。
【図７】図3に示したバスブリッジにおいてCAMエントリ時の動作実施例を示したフローチャート図である。
【図８】図7の動作実施例を、図2に示したフレーム転送装置間に適用して概略的に示したブロック図である。
【図９】ヘッダ識別部内の動作説明図である。
【図１０】従来のフレーム転送装置の構成例を概略的に示したブロック図である。
【図１１】連想メモリ内の一般的なテーブルフォーマット図である。
【図１２】連想メモリへのアクセスを、従来例と本発明に分けて示したタイミングチャート図である。
【符号の説明】
【００５０】
1, 2  デバイス
3  バスブリッジ
4  連想メモリ（CAM）
5  CPU
6  メモリ
11  バス変換部
12, 19  FIFO
13  ヘッダ識別部
14  CAMシーケンサ
16  ハッシュ計算部
17  MACテーブル計算部
18  MACヘッダ更新部
B1  回線系バス
B2  ローカルバス
B3  PCIバス
100, 200  フレーム転送装置
LI  回線インタフェース
図中、同一符号は同一又は相当部分を示す。
【図１】
2006262336.tif 000003
【図２】
2006262336.tif 000004
【図３】
2006262336.tif 000005
【図４】
2006262336.tif 000006
【図５】
2006262336.tif 000007
【図６】
2006262336.tif 000008
【図７】
2006262336.tif 000009
【図８】
2006262336.tif 000010
【図９】
2006262336.tif 000011
【図１０】
2006262336.tif 000012
【図１１】
2006262336.tif 000013
【図１２】
2006262336.tif 000014