(57)【要約】【課題】  資源を節約し、効率を高める。【解決手段】  外部インタフェース部で外部から受信した所定の構造を有する受信単位データを主制御部を介することなく、該当する転送先記憶部へ、外部インタフェース部から転送する直接記憶転送を実行する転送処理装置において、外部インタフェース部は、外部インタフェース側記憶部と、閾値設定部と、外部インタフェース側制御部とを備え、閾値到達通知を受け取った主制御部は、外部インタフェース側記憶部に記憶されている受信単位データの該当するフィールドの情報を読み取って、受信単位データを転送先記憶部へ転送することの要否を判定し、判定の結果、転送不要とされた受信単位データは転送先記憶部への転送を行う前に廃棄する。【選択図】  図１
2005303356.tif 000002
【特許請求の範囲】
【請求項１】
外部インタフェース部で外部から受信した所定の構造を有する受信単位データを主制御部を介することなく、該当する転送先記憶部へ、前記外部インタフェース部から転送する直接記憶転送を実行する転送処理装置において、
前記外部インタフェース部は、
前記受信単位データを受信したとき先頭から順番に記憶していく外部インタフェース側記憶部と、
当該外部インタフェース側記憶部に記憶された前記受信単位データの先頭からのデータ量に対する閾値を設定する閾値設定部と、
前記外部インタフェース側記憶部に記憶された受信単位データの先頭からのデータ量が当該閾値に達したとき、前記主制御部に、所定の閾値到達通知を行う外部インタフェース側制御部とを備え、
当該閾値到達通知を受け取った前記主制御部は、前記外部インタフェース側記憶部に記憶されている受信単位データの該当するフィールドの情報を読み取って、当該受信単位データを前記転送先記憶部へ転送することの要否を判定し、判定の結果、転送不要とされた受信単位データは当該転送先記憶部への転送を行う前に廃棄することを特徴とする転送処理装置。
【請求項２】
請求項１の転送処理装置において、
前記外部インタフェース部では、
前記外部インタフェース側制御部が、所定のレジスタの設定内容に応じて、前記外部インタフェース側記憶部で記憶された受信単位データの先頭からのデータ量が、前記閾値に達する前に、当該受信単位データを前記転送先記憶部へ転送することの要否を判定し、判定の結果、転送不要とされた受信単位データは当該転送先記憶部への転送を行う前に廃棄することを特徴とする転送処理装置。
【請求項３】
外部インタフェース部を複数備える場合の請求項２の転送処理装置において、
前記外部インタフェース側制御部は、
前記転送先記憶部として、前記主制御部が直接アクセスする主記憶部または他の外部インタフェース部が持つ外部インタフェース側記憶部を選ぶことを特徴とする転送処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は転送処理装置に関し、例えば、ネットワークから受信したＭＡＣフレームを装置内部で転送する場合などに適用して好適なものである。
【背景技術】
【０００２】
従来、ネットワークから受信したＭＡＣフレームを装置内部で転送する機能を持つフレーム転送装置としては、図２に示す内部構成を持つものがある。
【０００３】
図２に示すフレーム転送装置１０では、ＣＰＵ（中央処理装置）１１が各構成要素（１２，１３も含む）の最終的な制御を行っており、メインメモリ１２は当該ＣＰＵ１１が直接、アクセスすることが可能な記憶手段である。
【０００４】
ネットワークインタフェース１３は、外部のネットワークＮＷ１からフレームＦ１を受信すると、ＤＭＡ（ダイレクトメモリアクセス）転送を行う。ＤＭＡ転送では、ＣＰＵ１１を介することなく、当該ネットワークインタフェース１３がバスＢＡ１経由で当該フレームＦ１をメインメモリ１２へ転送する。したがって、ＣＰＵ１１が他の処理を行っているときでも、メインメモリ１２へフレームＦ１を転送することができ、高速なフレーム転送が可能となる。
【０００５】
メインメモリ１２に転送されたあと、そのフレームＦ１をどのように取り扱うかは、ＣＰＵ１１がメインメモリ１２にアクセスして当該フレームＦ１の各フィールドから読み出した情報に基づいて判断する。例えば、この判断の結果により、当該フレームＦ１の内容を当該フレーム転送装置１０内部で利用したり、他のネットワークインタフェース（図示せず）から外部のネットワーク（ＮＷ１とは別なネットワーク）へ送信したり、即座に廃棄したりする。
【０００６】
従来のフレーム転送装置としては、例えば、下記の特許文献１に記載されたものがある。
【特許文献１】特開２００３−０９９３９６号公報
【発明の開示】
【発明が解決しようとする課題】
【０００７】
ところが、メインメモリ１２へＤＭＡ転送したフレームＦ１が上述した廃棄を行うようなフレームである場合、そのフレームＦ１の転送のためにバスＢＡ１が使用されることは内部伝送資源の浪費となるし、ＤＭＡ転送後にＣＰＵ１１が前記判断を行うことは演算資源の浪費になるため、資源の実質的な利用効率が低いといえる。
【０００８】
例えば、ＶＬＡＮ（バーチャルＬＡＮ）が設定されている場合、ＶＬＡＮ−ＩＤ（ＶＬＡＮ番号）の値が同じで同じＶＬＡＮグループに属する送信元から届いたフレームは必要なものなので、自身の内部で利用したり、中継したりするが、ＶＬＡＮ−ＩＤが異なる送信元から届いたフレームは、廃棄することになる。前記フレーム中でＶＬＡＮ−ＩＤを収容したフィールド（ＶＬＡＮタグ）の位置はＩＥＥＥ８０２．１Ｑの規定で決まっており、ＭＡＣフレームのフォーマットは、図３（Ａ）および（Ｂ）に示すようになるため、フレーム転送装置はそのＶＬＡＮタグの内容を調べることによってＶＬＡＮ−ＩＤの値を知ることができる。
【０００９】
あるいは、ＶＬＡＮフレームしか扱わないフレーム転送装置の場合には、そのフレームが、図４に示すような通常のＭＡＣフレームでＶＬＡＮタグが存在しないことをもって、そのフレームの廃棄を決定することもできる。
【００１０】
ブロードキャストの場合にも同様な廃棄が発生し得る。ブロードキャストされたフレーム（ブロードキャストフレーム）は、不特定の全端末を宛先として送信されるフレームであり、例えば、ＤＨＣＰやＡＲＰなど、制御情報の交換などを目的としてＬＡＮで多用されるが、自身にとって真に必要な情報を届けるフレームであるか否かは、そのフレームを受信した端末（フレーム転送装置）が宛先ＭＡＣアドレス以外の情報から判断することになり、自身にとって不要なフレームであると判断した場合には廃棄する。
【００１１】
ただしこのような廃棄を行う場合に生じる前記資源の浪費を抑制するために、単純にネットワークインタフェース１３を多機能化してしまうと、ネットワークインタフェース１３の回路構成が複雑になり、前記ネットワーク（例えば、ＮＷ１）で使用される通信プロトコルが拡張された場合などに回路構成を変更しなければならなくなってしまうから、柔軟性の低下や開発コストの増大を招く。
【００１２】
通常、ネットワークインタフェース１３の機能の大部分はハードウエアによって実現する必要があるからである。ネットワークインタフェース１３の機能の大部分をハードウエアによって実現する理由は、当該ネットワークインタフェース１３の機能はＯＳＩ参照モデルの例えばデータリンク層など下位の階層に属するものであるため、この階層での処理はＣＰＵ１１がソフトウエア的に実行する処理に比べて十分に高速なものとしておかないと、上位の階層の処理のボトルネックとなって、通信アプリケーションのスループットを著しく低下させる可能性が高いからである。
【課題を解決するための手段】
【００１３】
かかる課題を解決するために、本発明では、外部インタフェース部で外部から受信した所定の構造を有する受信単位データを主制御部を介することなく、該当する転送先記憶部へ、前記外部インタフェース部から転送する直接記憶転送を実行する転送処理装置において、前記外部インタフェース部は、（１）前記受信単位データを受信したとき先頭から順番に記憶していく外部インタフェース側記憶部と、（２）当該外部インタフェース側記憶部に記憶された前記受信単位データの先頭からのデータ量に対する閾値を設定する閾値設定部と、（３）前記外部インタフェース側記憶部に記憶された受信単位データの先頭からのデータ量が当該閾値に達したとき、前記主制御部に、所定の閾値到達通知を行う外部インタフェース側制御部とを備え、（４）当該閾値到達通知を受け取った前記主制御部は、前記外部インタフェース側記憶部に記憶されている受信単位データの該当するフィールドの情報を読み取って、当該受信単位データを前記転送先記憶部へ転送することの要否を判定し、判定の結果、転送不要とされた受信単位データは当該転送先記憶部への転送を行う前に廃棄することを特徴とする。
【発明の効果】
【００１４】
本発明によれば、資源の実質的な利用効率を高め、柔軟性を高めることができる。
【発明を実施するための最良の形態】
【００１５】
（Ａ）実施形態
以下、本発明にかかる転送処理装置をフレーム転送装置に適用した場合を例に、実施形態について説明する。
【００１６】
（Ａ−１）第１の実施形態の構成
本実施形態にかかるフレーム転送装置２０の全体構成例を図１に示す。このフレーム転送装置２０は、パーソナルコンピュータなどの一部（ＬＡＮカードも含む）とみることもできるし、レイヤ２スイッチやルータなどの中継装置の一部とみることもできる。ただし中継装置とみた場合には、図示したネットワークインタフェース２３以外にも１または複数のネットワークインタフェースが存在することになる。
【００１７】
図１において、当該フレーム転送装置２０は、ＣＰＵ（中央処理装置）２１と、メインメモリ２２と、ネットワークインタフェース２３と、バスＢＡ２とを備えている。
【００１８】
このうちバスＢＡ２は、ＣＰＵ２１と、メインメモリ２２と、ネットワークインタフェース２３とを接続するために設けられたフレーム転送装置２０内部の伝送路である。基本的に、これら３つの構成要素２１〜２３のあいだを接続する伝送路は当該バスＢＡ２だけであるため、バスＢＡ２は、フレームＦ２のＤＭＡ転送のほかにも各種の目的で利用されることは当然である。
【００１９】
ＣＰＵ２１は当該フレーム転送装置２０内の各構成要素（２２，２３も含む）を最終的に制御する機能を持つ演算装置である。
【００２０】
メインメモリ２２は当該ＣＰＵ２１が直接、アクセスすることが可能な主記憶手段である。
【００２１】
当該メインメモリ２２には、ＤＭＡ転送によってネットワークインタフェース２３から転送されてきたフレームＦ２が格納されるほか、各種の制御プログラム（その１つがＰＲ１）なども格納され得る。当該制御プログラムＰＲ１は、当該フレーム転送装置２０の起動時などに、図示しないＲＯＭ（リードオンリーメモリ）やハードディスクなどから当該メインメモリへ読み込まれるものである。
【００２２】
この制御プログラムＰＲ１には、例えば、ＯＳＩ参照モデルのネットワーク層以上の階層の通信プロトコル（例えば、ＩＰプロトコルなど）を処理するプロトコル処理プログラムも含まれ得る。
【００２３】
ネットワークインタフェース２３は、フレーム転送装置２０の構成要素２１〜２３、ＢＡ２のうちで唯一、外部のネットワークＮＷ２に直接、接続されたハードウエアであり、必要に応じて、ネットワークＮＷ２から受信した前記フレームＦ２をメインメモリ２２へＤＭＡ転送する機能も有する。
【００２４】
当該ネットワークインタフェース２３は、図１に示すように、バスインタフェース２４と、メモリ２５と、制御回路２６と、制御レジスタセット２７と、受信ＦＩＦＯ部２８と、送信ＦＩＦＯ部２９と、ＭＡＣ部３０とを備えている。
【００２５】
このうちＭＡＣ（メディアアクセスコントロール）部３０は、伝送媒体へのアクセス制御を実行する部分で、例えば、ＯＳＩ参照モデルのデータリンク層に相当する通信プロトコル（例えば、ＩＥＥＥ８０２．３すなわちＣＳＭＡ／ＣＤなど）を処理する。
【００２６】
伝送媒体の物理層の仕様の相違はこのＭＡＣ部３０で吸収される。したがって、本実施形態の構成上、ネットワークＮＷ２の物理層の仕様は特に限定する必要はなく、無線通信などにも対応可能であるが、例えば、前記ＩＥＥＥ８０２．３を用いる場合などには、通常、有線伝送路（例えば、ツイストペアケーブルなど）が利用される。この場合、当該ネットワークインタフェース２３に接続される前記ネットワークＮＷ２は具体的には、このツイストペアケーブルを指す。
【００２７】
２つのＦＩＦＯ部２８，２９はともに、先入れ先出しタイプのメモリであり、ここではフレームは書き込まれた順番に読み出される。このうち受信ＦＩＦＯ部２８は外部のネットワークＮＷ２からフレーム（前記Ｆ２）を受信するときに使用し、送信ＦＩＦＯ部２９は外部のネットワークＮＷ２へフレームを送信するときに使用する。ただし本実施形態は受信したフレームの装置２０内における転送に関連するものなので、本実施形態の構成上は受信ＦＩＦＯ部２８のほうが重要である。
【００２８】
メモリ２５は、ネットワークインタフェース３０内の記憶資源である。前記フレームＦ２はまず最初に前記受信ＦＩＦＯ部２８に書き込まれ、当該受信ＦＩＦＯ部２８から読み出されるときには、読み出されながら当該メモリ２５へ書き込まれて行く。そのフレームＦ２が当該フレーム転送装置２０にとって不要なものであると判定された場合、廃棄されることになるが、廃棄されるべきものと判定されたケースでは、できるだけ速やかに廃棄することが各種資源（メモリ２５などの記憶資源やバスＢＡ２などの内部伝送資源）の節約の増進につながるため、この廃棄は、１つのフレームＦ２の一部（例えば、先頭部分）がメモリ２５に書き込まれ、残り（例えば、末尾部分）が受信ＦＩＦＯ部２８に記憶されている状態でも実行され得る。
【００２９】
フレーム転送装置２０の具体的な仕様にも依存するが、１つのフレーム（ここでは、Ｆ２）の読み出し（例えば、受信ＦＩＦＯ部２８からの読み出し）や、書き込み（例えば、メモリ２５への書き込み）は、一例として、バイト単位で実行され得る。
【００３０】
制御回路２６はネットワークインタフェース２３内の各構成要素２４、２５、２７〜３０を制御するプロセッサである。後述する受信閾値情報とメモリ２５上に記憶されたフレームＦ２のデータ量との比較を行うのも、この制御回路２６である。
【００３１】
制御レジスタセット２７は、制御回路２６や前記ＣＰＵ２１によって利用されるレジスタの集合体で、４つのレジスタ２７Ａ〜２７Ｄを含む。
【００３２】
すなわち、割り込みイネーブルレジスタ２７Ａと、割り込みステータスレジスタ２７Ｂと、受信閾値レジスタ２７Ｃと、フレーム処理コマンドレジスタ２７Ｄとを含む。
【００３３】
このうち割り込みイネーブルレジスタ２７Ａは、ＣＰＵ２１によるプログラムの実行を中断する割り込みを実行してよいか否かを示す制御情報を書き込むためのレジスタである。フレームＦ２をネットワークインタフェース２３からメインメモリ２２にＤＭＡ転送した場合、その旨を制御回路２６からＣＰＵ２１へ伝える転送完了通知を行ってもよいか否かを示す情報（転送完了通知許可情報）や、メモリ２５に書き込まれたフレームＦ２のデータ量が予め定めた受信閾値に到達したことを制御回路２６からＣＰＵ２１に伝える通知（受信閾値到達通知）を行ってもよいかを示す情報（到達通知許可情報）が、当該割り込みイネーブルレジスタ２７Ａに設定される。
【００３４】
これらの通知はＣＰＵ２１に対する割り込みにあたるから、この設定を実行するのは、ＣＰＵ２１である。
【００３５】
割り込みステータスレジスタ２７Ｂは、制御回路２６が上述した転送完了通知や受信閾値到達通知を示す情報を設定するためのレジスタである。この設定は制御回路２６によって実行され、ＣＰＵ２１によって読み出される。
【００３６】
受信閾値レジスタ２７Ｃは、上述した受信閾値の値を示す情報（受信閾値情報）を設定するレジスタである。この受信閾値情報の設定をどのようにして行うかに関しては様々な変形が可能である。例えば、このフレーム転送装置２０を使用するユーザからの指示などに応じてＣＰＵ２１が行うものであってもよい。当該受信閾値レジスタ２７Ｃに設定された受信閾値情報は、メモリ２５上に記憶されたフレームＦ２のデータ量との比較を行うときに、前記制御回路２６によって読み出される。
【００３７】
フレーム処理コマンドレジスタ２７Ｄは、フレームＦ２の処理に関するＣＰＵ２１から制御回路２６へのコマンドを設定するためのレジスタである。この設定はＣＰＵ２１が行い、制御回路２６が読み出す。このコマンドでは、例えば、フレームＦ２の廃棄が指示されることもあり、フレームＦ２のメインメモリ２２へのＤＭＡ転送が指示されることもある。
【００３８】
前記バスインタフェース２４は、ネットワークインタフェース２３内の各構成要素（例えば、制御回路２６など）とバスＢＡ２とのインタフェースである。バスインタフェース２４は、バスＢＡ２の使用権の調停を行う機能などを有する。同時に複数の送信元（例えば、ＣＰＵ２１と制御回路２６）が当該バスＢＡ２を利用してデータ（例えば、フレームＦ２など）を送信すると、衝突によってデータが破壊されてしまうため、このような調停が必要になる。
【００３９】
以下、上記のような構成を有する本実施形態の動作について説明する。ここでは、前記ネットワークインタフェース２３がネットワークＮＷ２から、前記フレームＦ２を受信する場合を例に説明する。
【００４０】
（Ａ−２）第１の実施形態の動作
フレームＦ２が前記ネットワークＮＷ２からネットワークインタフェース２３に受信されると、前記ＭＡＣ部３０による処理を経て、当該フレームＦ２は受信ＦＩＦＯ部２８に書き込まれる。
【００４１】
この時点でメモリ２５上に未処理のフレームが存在せず、なおかつ、受信ＦＩＦＯ部２８に当該フレームＦ２より先に書き込まれたフレームが存在しない場合、フレームＦ２は例えば先頭から１バイトずつ読み出されてメモリ２５に書き込まれて行く。
【００４２】
この間、例えば定期的に、前記制御回路２６はメモリ２５に書き込まれたフレームＦ２のデータ量を、前記受信閾値レジスタ２７Ｃに設定された受信閾値情報と比較する。そして、比較の結果、データ量が当該受信閾値情報に達していることを検出した場合には、制御回路２６は前記受信閾値到達通知を行う。このとき、制御回路２６が前記割り込みイネーブルレジスタ２７Ａなどの設定内容を確認することは当然である。
【００４３】
この受信閾値到達通知を前記バスＢＡ２を介して受け取ったＣＰＵ２１は、前記メインメモリ２２上に格納された制御プログラムＰＲ１に応じたソフトウエア的な処理によってフレームＦ２の要否を判定する。すなわち、バスＢＡ２経由でメモリ２５上のフレームＦ２の該当フィールドの情報を読み出して、そのフレームＦ２がフレーム転送装置２０にとって必要なものであるか否かを判定し、判定結果に応じたコマンドを制御回路２６に通知する。この判定では、上述したようにＶＬＡＮタグの有無やその内容、ブロードキャストフレームに関する宛先ＭＡＣアドレス以外の情報の検査などが行われ得る。
【００４４】
フレーム転送装置２０にとって必要なフレームとは、自身で利用するフレームか、中継する必要のあるフレームであり、必要でないフレームとは自身で利用する必要もなく、中継の必要もないフレームである。自身で利用するフレームのなかには、上述したＤＨＣＰやＡＲＰなど、制御情報の交換などを目的としてＬＡＮで通信されるフレームであって自身に関係するものと、自身に搭載した通信アプリケーションで使用するユーザデータ（例えば、電子メールやＷｅｂなどの通信アプリケーションで通信されるデータ）を収容したフレームがある。ユーザデータを収容したフレームを自身で利用すると判定するのは、当該フレーム転送装置２０が上述したパーソナルコンピュータなどの一部に相当する場合である。
【００４５】
いずれにしても、ＣＰＵ２１が当該フレームＦ２をフレーム転送装置２０にとって必要のないフレームであると判定した場合、ＣＰＵ２１はバスＢＡ２経由で前記フレーム処理コマンドレジスタ２７Ｄに、廃棄を指示するコマンドを設定するが、必要なフレームであると判定した場合には、ＤＭＡ転送を指示するコマンドを設定する。ＤＭＡ転送には、フレーム転送装置２０が複数のネットワークインタフェースを備えている場合には、ネットワークインタフェース２３から別なネットワークインタフェースへのフレームＦ２の転送が含まれていてもよいが、フレーム転送装置２０のネットワークインタフェースが当該ネットワークインタフェース２３だけであるとすると、ＤＭＡ転送によるフレームＦ２の転送先は前記メインメモリ２２しかない。
【００４６】
フレーム処理コマンドレジスタ２７Ｄに廃棄を指示するコマンドが設定された場合、そのコマンドを読み出した制御回路２７は即座に当該フレームＦ２を廃棄する。制御回路２７が具体的にどのような処理を行うことを廃棄とみなすかについては様々な変形があり得るが、すでに当該フレームＦ２が書き込まれたメモリ２５上の記憶領域を何も書き込まれていない記憶領域として取り扱うことをもって廃棄とすることも簡便である。もちろん、この時点でまだ受信ＦＩＦＯ部２８に残っているフレームＦ２の末尾も同様に取り扱うものであってよい。
【００４７】
このような廃棄が行われた場合、受信ＦＩＦＯ部２８やメモリ２５などの記憶資源が節約できるだけでなく、フレーム転送装置２０にとって不要なフレームをＤＭＡ転送することがなくなるため、バスＢＡ２などの内部伝送資源も節約することができるとともに、ＤＭＡ転送先（ここでは、メインメモリ２２）の記憶資源も節約することができる。また、フレームＦ２がメインメモリ２２へＤＭＡ転送されなければ、メインメモリ２２上に記憶されたフレームＦ２を処理するために何回も、ＣＰＵ２１がバスＢＡ２経由でメインメモリ２２にアクセスする必要がなくなるから、その点でも、内部伝送資源の節約になる。
【００４８】
一方、前記フレーム処理コマンドレジスタ２７ＤにＤＭＡ転送を指示するコマンドが設定された場合には、そのコマンドを読み出した制御回路２６は、当該フレームＦ２をネットワークインタフェース２３からバスＢＡ２経由でメインメモリ２２へＤＭＡ転送によって転送する。
【００４９】
フレームＦ２のメインメモリ２２へのＤＭＡ転送が完了すると、制御回路２６は、前記転送完了通知を行う。
【００５０】
この転送完了通知をバスＢＡ２経由で受け取ったＣＰＵ２１は、ＤＭＡ転送によりすでにメインメモリ２２に格納されているフレームＦ２に対し、前記制御プログラムＰＲ１などに応じた処理を実行する。この処理には様々なものがあり得るが、ＯＳＩ参照モデルのデータリンク層より上位の各階層の通信プロトコル（例えば、ＩＰプロトコル）に応じた処理などを実行して、フレームＦ２に収容されていた前記ユーザデータを取り出し、Ｗｅｂページや電子メールの内容などをユーザに提示するものであってもよい。
【００５１】
このような処理を実行するためにも、ＣＰＵ２１が何回もメインメモリ２２に対してバスＢＡ２経由のアクセス（読み出しや書き込み）を行う必要があることは当然である。
【００５２】
（Ａ−３）第１の実施形態の効果
本実施形態によれば、メインメモリ（２２）やメモリ（２５）などの記憶資源とバス（ＢＡ２）などの内部伝送資源を節約し、資源の実質的な利用効率を高めることができる。
【００５３】
これには、前記受信閾値到達通知によって、フレーム転送装置（２０）にとって不要なフレームを早期に廃棄でき、不要なＤＭＡ転送を抑止できることが大きく寄与している。
【００５４】
また本実施形態では、受信したフレーム（Ｆ２）がフレーム転送装置（２０）にとって必要なものであるか否かの判定はＣＰＵ（２１）が制御プログラム（ＰＲ１）に応じたソフトウエア的な処理によって行うため、通信プロトコルが拡張された場合などにも、新たな制御プログラムをインストールすること等で柔軟に対応することができる。
【００５５】
このようなインストールは、すでに設置され運用されている状態のフレーム転送装置（２０）に対しても容易に行うことができるほか、新たな製品としてのフレーム転送装置を開発する場合にも、ハードウエア的な設計変更をともなう開発に比べて、はるかに開発コストが低い。
【００５６】
（Ｂ）第２の実施形態
以下では、本実施形態が第１の実施形態と相違する点についてのみ説明する。
【００５７】
本実施形態は、第１の実施形態ではＣＰＵ２１がソフトウエア的に行っていたフレームＦ２の要否判定に関する処理の少なくとも一部をネットワークインタフェース内の制御回路が実行する点に特徴がある。
【００５８】
（Ｂ−１）第２の実施形態の構成および動作
本実施形態にかかるフレーム転送装置４０の全体構成例を図５に示す。
【００５９】
図５において、図１と同じ符号２１〜２５、２８〜３０、ＢＡ２，ＮＷ２を付与した各構成要素の機能は第１の実施形態と同じなので、その詳しい説明は省略する。
【００６０】
図５中の制御回路４１は前記制御回路２６に対応し、制御レジスタセット４２は前記制御レジスタセット２７に対応するものである。
【００６１】
本実施形態の制御レジスタセット４２は、上述したレジスタ２７Ａ〜２７Ｄを備えているため、第１の実施形態の制御レジスタセット２７と同じ機能を有するが、本実施形態で特徴的な点は、受信したフレームＦ２の要否判定を制御回路４１に実行させるための各種情報を設定する複数のレジスタを有することである。
【００６２】
すなわち、当該制御レジスタセット４２は上述したレジスタ２７Ａ〜２７Ｄのほか、フレームフィルタ位置レジスタ４２Ａと、フレームフィルタレジスタ４２Ｂと、フレームフィルタイネーブルレジスタ４２Ｃと、フレームフィルタ処理レジスタ４２Ｄとを備えている。
【００６３】
このうちフレームフィルタ位置レジスタ４２Ａは、前記要否判定で、フレームＦ２のどの位置の情報を検査するかを示す情報（フィルタ位置情報）を設定するためのレジスタである。設定はＣＰＵ２１が実行し、設定されたフィルタ位置情報を読み出して利用するのは、前記制御回路４１である。
【００６４】
例えば、図３（Ａ）および（Ｂ）に示すＴＰＩＤ（Tag Protocol Identifier）やＴＣＩ（Tag Control Information）などが、このフレームフィルタ位置情報によって指定される。なお、ＴＰＩＤは、ＭＡＣフレーム（例えば、Ｆ２）の先頭から１３〜１４バイト目に配置され、そのＭＡＣフレームがＶＬＡＮに対応したＶＬＡＮフレームである場合には、当該ＴＰＩＤの値が所定値（０ｘ８１００）になるので、この値が当該所定値であるか否かを検査することによってＶＬＡＮフレームであるか否かが分かる。また、ＶＬＡＮ−ＩＤの値を調べるには、当該ＴＰＩＤにつづくＴＣＩのなかに記述されているＶＬＡＮ−ＩＤを検査すればよい。
【００６５】
フレームフィルタ処理レジスタ４２Ｄは、フレームに対する処理の内容を示す情報（処理情報）を設定するためのレジスタである。この設定はＣＰＵ２１が実行し、前記制御回路４１が読み出す。具体的な処理情報が示す処理の例としては、後述するフィルタ情報に適合したとき、そのフレーム（ここでは、Ｆ２）を当該ネットワークインタフェース２３内で廃棄する処理、または、ＤＭＡ転送する処理などがあり得る。また、このＤＭＡ転送で転送先が異なるものは、異なる処理として設定され得る。ＤＭＡ転送の転送先として、メインメモリ２２や他のネットワークインタフェースなどがあり得ることはすでに説明した通りである。
【００６６】
フレームフィルタレジスタ４２Ｃは、前記フレームフィルタ位置レジスタ４２Ａに設定されたフィルタ位置情報が示すフレームＦ２上の位置に配置されている情報と比較するべき情報（フィルタ情報）が設定されるレジスタである。このフィルタ情報との比較の結果に応じて、前記処理情報に応じた処理が実行されることになる。
【００６７】
フレームフィルタイネーブルレジスタ４２Ｃは、前記フレームフィルタ処理レジスタ４２Ｄに設定した処理情報に応じた処理の実施の可否を設定するレジスタである。
【００６８】
なお、複数の条件（異なるフィルタ情報と、そのフィルタ情報に適合したフレームをどのように処理するかを示す処理情報などの組み合わせによって決まる条件）を設定するには、これらのレジスタ４２Ａ〜４３Ｄを複数セット設けるとよい。
【００６９】
ただし、当該レジスタ４２Ａ〜４２Ｄを用いて制御回路４１が前記処理情報で指定された処理を実行しなかった場合には、第１の実施形態と同様の処理が行われる。
【００７０】
すなわち、メモリ２５に書き込まれたフレームＦ２のデータ量が前記受信閾値レジスタ２７Ｃに設定された受信閾値情報に到達したときに制御回路４１が前記受信閾値到達通知を行い、ＣＰＵ２１による要否判定の結果に応じて、制御回路４１が当該フレームＦ２の処理を実行する。
【００７１】
前記レジスタ４２Ａ〜４２Ｄを多数セット設けて、すべてのケースを網羅できるようにすれば、ＣＰＵ２１による処理をまったく行わなくても、受信したすべてのフレーム（その１つが、Ｆ２）を適切に処理することが可能であるが、それでは、ネットワークインタフェース２４が多機能化して回路構成の複雑化や大規模化を招き、柔軟性の低下や開発コストの増大が生じるため、ここでは、ＣＰＵ２１による要否判定が行われ得る構成としている。
【００７２】
（Ｂ−２）第２の実施形態の効果
本実施形態によれば、第１の実施形態の効果とほぼ同等な効果を得ることができる。
【００７３】
加えて、本実施形態では、ネットワークインタフェース（２３）内の制御回路（４１）が、ＣＰＵ（２１）に替わって、前記処理情報で指定された処理を実行することも少なくないため、ＣＰＵ（２１）の処理能力にかかる負荷を軽減でき、同一の条件下で比較した場合、転送時の遅延時間が短縮されて処理速度を高くすることも可能である。
【００７４】
（Ｃ）第３の実施形態
以下では、本実施形態が第１、第２の実施形態と相違する点についてのみ説明する。
【００７５】
本実施形態は、２つのネットワークインタフェースを持つフレーム転送装置に関するものである。
【００７６】
（Ｃ−１）第３の実施形態の構成および動作
本実施形態にかかるフレーム転送装置５０の全体構成例を図５に示す。このように２つのネットワークインタフェースを持つフレーム転送装置は、具体的には、上述したレイヤ２スイッチやルータなどの中継装置に相当するものである。
【００７７】
図５において、図１と同じ符号２１〜３０、ＢＡ２，ＮＷ２を付与した各構成要素の機能は第１の実施形態と同じなので、その詳しい説明は省略する。
【００７８】
前記ネットワークインタフェース２３がネットワークＮＷ２と接続されていたのに対し、本実施形態で新たに加わったネットワークインタフェース５１はネットワークＮＷ３に接続されている。
【００７９】
ただし、ネットワークインタフェース５１の内部構成はネットワークインタフェース２３と同じである。
【００８０】
ネットワークＮＷ３は、ネットワークＮＷ２と異なるブロードキャストドメイン（または、異なるサブネット）を示している。ＮＷ３とＮＷ２が異なるブロードキャストドメインを示すのは、フレーム転送装置４０がレイヤ２スイッチなどの場合であり、ＮＷ３とＮＷ２が異なるサブネットを示すのは、フレーム転送装置４０がルータなどの場合である。
【００８１】
第１の実施形態でも説明したが、このように複数のネットワークインタフェースが存在する場合、あるネットワークインタフェース（例えば、２３）からのフレームＦ２のＤＭＡ転送は、メインメモリ２２を転送先とするケースと、他のネットワークインタフェース（ここでは、４１）を転送先とするケースがあり得る。
【００８２】
図６の例では、ネットワークインタフェースの数（すなわち、ポートの数）は２つであるが、１つのフレーム転送装置５０が、３つ以上のポートを備えていてもよいことは当然である。
【００８３】
（Ｃ−２）第３の実施形態の効果
本実施形態では、第１の実施形態と異なる構成のもとで、第１の実施形態の効果と同等な効果を得ることができる。
【００８４】
（Ｄ）他の実施形態
上記第１〜第３の実施形態の特徴は、上述したものと異なる組み合わせで複合することも可能である。
【００８５】
例えば、上記第３の実施形態にかかわらず、図６に示す制御レジスタセット２７は、図５に示した制御レジスタセット４２に置換することも可能である。この場合、前記処理情報に応じた処理をネットワークインタフェース２４または５１の内部で実行することが可能である。
【００８６】
なお、上記第１〜第３の実施形態でＣＰＵ２１が設定するものとした各レジスタの情報のうちフレーム転送装置の運用中に変更する必要がほとんどないものは、当該レジスタをＥＥＰＲＯＭなどの不揮発性記憶手段で置換し、製造工程などで設定させることも可能である。
【００８７】
本発明は、受信したフレームのフレーム転送装置内における転送に関連するものなので、送信機能を持たない受信専用のフレーム装置にも適用することが可能である。
【００８８】
以上の説明でハードウエア的に実現した機能の大部分はソフトウエア的に実現することが可能であり、ソフトウエア的に実現した機能のほとんどすべてはハードウエア的に実現することが可能である。
【図面の簡単な説明】
【００８９】
【図１】第１の実施形態にかかるフレーム転送装置の全体構成例を示す概略図である。
【図２】従来のフレーム転送装置の構成を示す概略図である。
【図３】ＶＬＡＮフレームのフォーマットを示す概略図である。
【図４】通常のＭＡＣフレームのフォーマットを示す概略図である。
【図５】第２の実施形態にかかるフレーム転送装置の全体構成例を示す概略図である。
【図６】第３の実施形態にかかるフレーム転送装置の全体構成例を示す概略図である。
【符号の説明】
【００９０】
２０…フレーム転送装置、２１…ＣＰＵ、２２…メインメモリ、２３…ネットワークインタフェース、２４…バスインタフェース、２５…メモリ、２６…制御回路、２７…制御レジスタセット、２８…受信ＦＩＦＯ部、２９…送信ＦＩＦＯ部、３０…ＭＡＣ部、ＢＡ２…バス、Ｆ２…ＭＡＣフレーム。
【図１】
2005303356.tif 000003
【図２】
2005303356.tif 000004
【図３】
2005303356.tif 000005
【図４】
2005303356.tif 000006
【図５】
2005303356.tif 000007
【図６】
2005303356.tif 000008