以下、図面を参照して、各実施形態について説明する。
(第1実施形態)
まず、第1実施形態について説明する。本実施形態に係るスイッチ装置は、例えばイーサネットに基づくネットワーク(以下、単にネットワークと表記)を構築するために用いられるL2スイッチのようなスイッチ装置(通信制御装置)である。スイッチ装置は、複数の通信ポート(ネットワークポート)を有し、所定の通信ポートに接続されている外部通信機器から送信されたフレームを他の通信ポートに接続されている他の外部通信機器に転送するように動作する。
以下、図1を参照して、本実施形態の第1比較例に係るスイッチ装置の構成の一例について説明する。
図1に示すスイッチ装置10は、例えばN個の通信ポート1~Nを有しており、N個の通信処理部(通信インタフェース)11-1~11-N、N個の受信キュー(Rx)12-1~12-N、FDB(Forwarding/Filtering Database)13、フォワーディング処理部14、N個の送信キュー(Tx)15-1~15-N及び管理部16を備える。ここでは、N個の通信ポートにN個の外部通信機器1-1~1-Nがそれぞれ接続されているものとする。
N個の通信処理部11-1~11-Nは、N個の通信ポート1~Nに対応しており、外部通信機器1-1~1-Nとの通信処理を実行するように構成されている。
通信処理部11-1~11-Nの各々は、MAC(Media Access Controller)11a及びPHY11bと称される機能を含み、ネットワークにおけるデータリンク層及び物理層のプロトコルに従ってフレームの送受信に必要な処理を行う。すなわち、通信処理部11-1~11-Nの各々は、イーサネットのデータリンク層及び物理層の処理を行う。
通信処理部11-1~11-Nは、通信ポート1~Nに接続されている外部通信機器1-1~1-Nから送信されたフレームを受信する。通信処理部11-1~11-Nによって受信されたフレームは、受信キュー12-1~12-Nに出力される。
なお、図1に示す例では通信処理部11-1~11-NがMAC11a及びPHY11bを含むものとして説明したが、当該通信処理部11-1~11-Nは、他の機能を含む(つまり、他の処理を実行する)ように構成されていてもよい。
N個の受信キュー12-1~12-Nは、N個の通信処理部11-1~11-N(通信ポート1~N)に対応している。受信キュー12-1~12-Nは、通信処理部11-1~11-Nからフォワーディング処理部14にフレームを受け渡すために利用されるキューである。上記したように通信処理部11-1~11-Nから出力されたフレームは、受信キュー12-1~12-Nに格納される。
ここで、上記したように外部通信機器1-1~1-Nから送信されたフレームは他の外部通信機器に転送される必要があるため、スイッチ装置10においては、当該フレームの転送先(宛先)となる外部通信機器が接続されている通信ポート(以下、宛先ポートと表記)を決定する必要がある。
FDB13には、受信キュー12-1~12-Nに格納されたフレームに対する宛先ポート(当該フレームの宛先)を決定するための情報(以下、宛先決定情報と表記)が格納されている。
フォワーディング処理部14は、N個の受信キュー12-1~12-Nに対応するN個の宛先決定部14-1~14-Nを含む。
宛先決定部14-1~14-Nは、受信キュー12-1~12-Nに格納されたフレームを当該受信キュー12-1~12-Nから取り出し、FDB13(に格納されている宛先決定情報)を参照して当該フレームに対する宛先ポートを決定する。
フレームに対する宛先ポートが決定された場合、当該フレームは、当該宛先ポートに対応する送信キューに出力される。
N個の送信キュー15-1~15-Nは、N個の通信処理部11-1~11-N(通信ポート1~N)に対応している。送信キュー15-1~15-Nは、フォワーディング処理部14(宛先決定部14-1~14-N)から通信処理部11-1~11-Nにフレームを受け渡すために利用されるキューである。上記したようにフォワーディング処理部14に含まれる宛先決定部14-1~14-Nの各々から宛先ポートに対応する送信キューに出力されたフレームは、当該送信キューに格納される。
このように送信キュー15-1~15-Nに格納されたフレームは、通信処理部11-1~11-Nによって取り出され、外部通信機器1-1~1-Nに送信される。
管理部16は、例えばスイッチ装置10の初期化、起動、停止、FDB13の更新(エントリの追加及び削除)、及び統計情報の管理等に関する処理を実行する。
なお、図1においては、受信キュー12-1~12-N及び送信キュー15-1~15-Nが通信処理部11-1~11-Nの外部に設けられているものとして説明したが、当該受信キュー12-1~12-N及び送信キュー15-1~15-Nは、例えば通信処理部11-1~11-N(例えば、MAC11a)の内部に保持されていてもよい。または、当該受信キュー12-1~12-N及び送信キュー15-1~15-Nは、フォワーディング処理部14の内部に保持されても良い。
次に、図2を参照して、図1に示すフォワーディング処理部14に含まれる宛先決定部14-1の構成の一例について説明する。図2に示すように、宛先決定部14-1は、決定部14a及び送信処理部14bを含む。
決定部14aは、宛先決定部14-1に対応する受信キュー12-1からフレームを取り出し、当該フレームに付加されているヘッダ情報をパースし、当該ヘッダ情報に基づいてFDB13(に格納されている宛先決定情報)にアクセスする。決定部14aは、このようにアクセスされた宛先決定情報に基づいて、受信キュー12-1から取り出されたフレームに対する宛先ポートを決定する。
なお、フレームに付加されているヘッダ情報には、当該フレームの宛先(転送先)である外部通信機器に割り当てられているMACアドレス(宛先MACアドレス)、当該フレームの送信元である外部通信機器に割り当てられているMACアドレス(送信元MACアドレス)及びイーサネットのタイプ等が含まれている。
送信処理部14bは、受信キュー12-1から取り出されたフレームを決定部14aによって決定された宛先ポートに対応する送信キュー(宛先の送信キュー)に出力する。
次に、図3のフローチャートを参照して、上記した宛先決定部14-1の処理手順の一例について説明する。
まず、宛先決定部14-1に対応する受信キュー12-1にフレームが格納された場合、決定部14aは、当該フレームを受信キュー12-1から取り出す(ステップS1)。以下、ステップS1において取り出されたフレームを、便宜的に、対象フレームと称する。
次に、決定部14aは、対象フレームに付加されているヘッダ情報に含まれる宛先MACアドレスを取得する(ステップS2)。
更に、決定部14aは、対象フレームに付加されているヘッダ情報に含まれるイーサネットのタイプを取得する(ステップS3)。
ここで、スイッチ装置10を用いて構成されるネットワーク上では、複数の通信ポート1~Nのうちの少なくとも一部が属するVLAN(Virtual LAN)と称される仮想的なLANセグメントを構築することができる。フレームは例えばネットワーク上に存在する全ての外部通信機器に送信される(ブロードキャスト送信される)ことが可能であるが、このVLANによれば、当該ブロードキャストドメインの分割を行うようなことが可能となる。なお、フレームがブロードキャスト送信される場合、当該フレームに付加されているヘッダ情報には、当該ブロードキャスト送信用のMACアドレス(以下、ブロードキャストアドレスと表記)が宛先MACアドレスとして含まれている。
なお、対象フレームを受信した通信処理部11-1に対応する通信ポート1が属するVLANが構築されている場合、上記したステップS3において取得されるイーサネットのタイプはVLANである。
決定部14aは、ステップS3において取得されたイーサネットのタイプがVLANであるか否かを判定する(ステップS4)。
ステップS4において、イーサネットのタイプがVLANであると判定された場合を想定する(ステップS4のYES)。イーサネットのタイプがVLANである場合、上記した対象フレームに付加されているヘッダ情報にはVLANヘッダ(情報)が含まれており、当該VLANヘッダにはPCP(Priority Code Point)が設定されている。なお、VLANヘッダには、PCP以外に、例えばVLANを識別するためのVLAN ID等が更に設定されている。
決定部14aは、このようにVLANヘッダに設定されているPCPを取得し、当該PCPをTC(Traffic Class)に変換することによって当該TCを取得する(ステップS5)。このTCは、例えば送信キューを特定するための情報である。なお、PCPをTCに変換するための情報(つまり、PCP及びTCの対応関係を示す情報)は、予め決定部14aにおいて保持されているものとする(例えばトラヒッククラステーブル)。
一方、イーサネットのタイプがVLANでないと判定された場合(ステップS4のNO)、対象フレームに付加されているヘッダ情報にはVLANヘッダが含まれていないため、PCPを取得する(つまり、PCPをTCに変換する)ことができない。この場合、決定部14aは、デフォルト値のTCを取得する(ステップS6)。換言すれば、ステップS6においては、TCにデフォルト値が設定される(例えばPVID)。
上記したように対象フレームは例えばブロードキャスト送信されることが可能であるが、決定部14aは、ステップS2において取得された宛先MACアドレスがブローキャストアドレスであるか否かを判定する(ステップS7)。
ブロードキャストアドレスでないと判定された場合(ステップS7のNO)、決定部14aは、対象フレームに付加されているヘッダ情報に基づいて、FDB13を参照する。
ここで、FDB13には、例えば通信ポートを識別するための識別子(以下、ポート識別子と表記)、MACアドレス、VLAN ID及び最終受信時刻等を対応づけて含む複数の宛先決定情報(エントリ)が格納されている。なお、MACアドレスは、対応づけられているポート識別子によって識別される通信ポートに接続されている外部通信機器に割り当てられているMACアドレスである。外部通信機器がスイッチの場合には、その先に接続されているMACアドレスも含まれる。また、VLAN IDは、対応づけられているポート識別子によって識別される通信ポートが属するVLANを識別するための識別情報である。最終受信時刻は、例えば対応づけられているMACアドレスが割り当てられている外部通信機器から最後にフレームが送信されてスイッチで受信した時刻である。
この場合、決定部14aは、ステップS2において取得された宛先MACアドレス及び対象フレームに付加されているヘッダ情報(VLANヘッダ)に設定されているVLAN IDを含むエントリ(つまり、宛先MACアドレス及びVLAN IDが一致するエントリ)を、FDB13から探索する。以下、宛先MACアドレス及びVLAN IDが一致するエントリを、便宜的に対象エントリと称する。
決定部14aは、上記した探索の結果に基づいて、FDB13に対象エントリが存在するか否かを判定する(ステップS8)。
対象エントリが存在すると判定された場合(ステップS8のYES)、決定部14aは、当該対象エントリに含まれるポート識別子によって識別される通信ポート(つまり、対象エントリ中の通信ポート)を宛先ポートとして決定する(ステップS9)。
ステップS9の処理が実行されると、送信処理部14bは、当該ステップS9において取得された宛先ポートに対応する送信キューのうち、上記したTCに基づいて特定される送信キューに対象フレームを出力する(ステップS10)。ステップS10の処理が実行されることにより、宛先ポートに対応する送信キューに対象フレームが格納される(書き込まれる)。
具体的には、例えばステップS9において決定された宛先ポートが通信ポート2である場合には、当該通信ポート2に対応する送信キュー15-2に対象フレームが出力される。同様に、ステップS9において決定された宛先ポートが通信ポートNである場合には、当該通信ポートNに対応する送信キュー15-Nに対象フレームが出力される。
なお、上記した図1に示す構成によれば、通信ポート(通信処理部)と送信キューとが1対1に対応している。この場合、宛先ポートが決定されれば送信キューを特定することができるため、上記したTCは使用されなくても構わない。
一方、1つの通信ポートに対して複数の送信キューが用意されているような構成の場合には、宛先ポートに対して用意されている複数の送信キューの中から、TCを用いて対象フレームを出力すべき送信キューが特定される。
この場合、TCと当該TCに基づいて特定される送信キューとの対応関係を示す情報(つまり、TCから送信キューを特定するための情報)が予め送信処理部14b内に保持されていればよい。
なお、ステップS7においてブロードキャストアドレスであると判定された場合(ステップS7のYES)、決定部14aは、対象フレームを送信した外部通信機器1-1が接続されている通信ポート1以外の全ての通信ポートを宛先ポートとして決定する(ステップS11)。
また、ステップS8において対象エントリが存在しないと判定された場合(ステップS8のNO)、ステップS11の処理が実行される。FDBにエントリが存在しない場合に、対象フレームを送信した外部通信機器1-1が接続されている通信ポート1以外の全ての通信ポートにフレームを送信することを、フラッディングと称される。
なお、上記した対象フレームに付加されているヘッダ情報に含まれるイーサネットのタイプがVLANである(つまり、通信ポート1が属するVLANが構築されている)場合、上記したステップS11における全ての通信ポートは、当該VLAN(VLANヘッダに設定されているVLAN IDによって識別されるVLAN)に属する複数の通信ポートのうちの通信ポート1以外の全ての通信ポートである。
また、図3に示す例では宛先MACアドレスがブロードキャストアドレスである場合について説明したが、当該宛先MACアドレスはマルチキャストアドレスである場合もある。この場合、図3に示す処理においては、宛先MACアドレスがマルチキャストアドレスであるか否かが更に判定されてもよい。マルチキャストであるか否かの判定は宛先MACアドレスのI/Gビットが1であるか否かで判定してもよい。マルチキャストアドレスを含む宛先決定情報(エントリ)の管理方法として、FDB13で管理する方法やFDB13とは別にマルチキャストアドレス用のFDBを別途設ける方法などが考えられる。FDB13でマルチキャストアドレスを含む宛先決定情報(エントリ)を管理する場合、宛先決定情報に複数のポート識別子を保持し、ユニキャストフレームと同様にステップS8でFDB13を参照して宛先となる通信ポートを決定する。マルチキャストアドレス用にFDBを別途設ける場合は、宛先MACアドレスがマルチキャストアドレスと判定された場合は、FDB13ではなくマルチキャストアドレス用FDBを参照して宛先となる通信ポートを決定する。
ここではフォワーディング処理部14に含まれる宛先決定部14-1の構成及び動作について説明したが、他の宛先決定部14-2~14-Nの構成及び動作についても当該宛先決定部14-1と同様である。
本実施形態に係る第1比較例に係るスイッチ装置10においては、フォワーディング処理部14(に含まれる宛先決定部14-1~14-N)が上記した図3に示す処理を実行することにより、所定の外部通信機器から送信されたフレームを他の外部通信機器に転送することができる。
ここで、本実施形態の第1比較例に係るスイッチ装置10においては、外部通信機器1-1~1-Nから送信されたフレーム(つまり、当該スイッチ装置10において受信されたフレーム)に基づくMACアドレスの学習を実施することによって、FDB13を更新することができるものとする。
以下、図4に示すフローチャートを参照して、FDB13の更新処理の処理手順の一例について説明する。このFDB13の更新処理は、例えばフォワーディング処理部14(宛先決定部14-1~14-N)によって実行されるが、管理部16によって実行されてもよいし、フォワーディング処理部14及び管理部16以外に別途用意された更新処理部(図示せず)によって実行されてもよい。ここでは、フォワーディング処理部14がFDB13の更新処理を実行するものとして説明する。
まず、フォワーディング処理部14は、フレームを取得する(ステップS21)。ステップS21において取得されるフレームは、例えばフォワーディング処理部14に含まれる宛先決定部14-1~14-Nの各々が受信キュー12-1~12-Nから取り出したフレームである。以下、ステップS21において取得されたフレームを対象フレームと称する。
次に、フォワーディング処理部14は、対象フレームに付与されているヘッダ情報に含まれる送信元MACアドレス及びVLAN ID(送信元情報)を取得する(ステップS22)。
フォワーディング処理部14は、ステップS22において取得された送信元MACアドレス及びVLAN IDを含むエントリ(以下、対象エントリと表記)をFDB13から探索し、当該FDB13に対象エントリが存在するか否かを判定する(ステップS23)。
ここで、FDB13に対象エントリが存在することは、当該対象エントリに含まれるMACアドレスが割り当てられている外部通信機器が、当該対象エントリに含まれるVLAN IDによって識別されるVLANに属している通信ポート(ポート識別子によって識別される通信ポート)に接続されていることを示すエントリ(宛先決定情報)がFDB13に既に登録されていることを意味する。
このため、FDB13に対象エントリが存在すると判定された場合(ステップS23のYES)、フォワーディング処理部14は、当該対象エントリに含まれる最終受信時刻を現在時刻に更新する(ステップS24)。
一方、FDB13に対象エントリが存在しないと判定された場合(ステップS23のNO)、フォワーディング処理部14は、新たなエントリをFDB13に追加する(ステップS25)。
ここで、FDB13においてはポート識別子、MACアドレス及びVLAN IDの対応関係を管理する必要があるが、対象フレームを送信した外部通信機器(つまり、対象フレームに含まれる送信元MACアドレスが割り当てられた外部通信機器)が接続されている通信ポートは、当該対象フレームが取り出された受信キュー等から特定することができる。
このため、ステップS25においては、上記したように特定された通信ポートを識別するためのポート識別子と、ステップS22において取得された送信元MACアドレス及びVLAN IDと、現在時刻(最終受信時刻)とを含むエントリがFDB13に追加される。
このステップS25の処理が実行されることによって、当該ステップS25において追加されたエントリに含まれるMACアドレスを宛先MACアドレスとして含むフレームがスイッチ装置10において受信された場合に、当該エントリを参照することによって当該エントリに含まれるポート識別子によって識別される通信ポートを宛先ポートとして決定することができる。
なお、FDB13の容量は有限であるが、ステップS25の処理が実行される時点で当該FDB13に空き容量がない場合には、最終受信時刻が最も早い(古い)エントリを削除し、新たなエントリをFDB13に追加するものとする。これにより、FDB13においては、送信された時刻が現在に近いフレームに基づくエントリを優先的に保持(格納)することができる。ただし、FDB13のエントリの入れ替えアルゴリズムはこれに限定されるものではない。
また、図4で説明したFDB13の更新処理以外にも、スイッチの管理者などが手動でエントリを追加・削除することも考えられる。この場合は、例えば管理部16等が管理者からの制御コマンド等を受け取って、FDB13の更新処理を実施する。
ところで、例えば産業用ネットワークまたは車載ネットワークのようなネットワークにおいては高いリアルタイム性が要求される場合があるが、当該ネットワーク上で高いリアルタイム性を実現するための規格として、TSN(Time-Sensitive Networking)の規格化が、IEEE 802.1 TSN Task Groupで進められている。TSNは、例えばプロオーディオ等で用いられている低遅延性を実現するAVB(Audio/Video Bridging)を拡張した規格である。TSNは、AVBよりも高いリアルタイム性に加えて、高信頼性の実現を目指している。
ここで、TSNは複数の規格(規格群)から構成されており、当該複数の規格の1つにIEEE 802.1Qbu/IEEE 802.3br(FPE:Frame Preemption)がある。上記した本実施形態の第1比較例に係るスイッチ装置10においては通信処理部11-1~11-Nが1つのMACを含むものとして説明したが、FPEにおいては、高優先度用のExpress MAC(以下、eMACと表記)及び低優先度用のPreemptable MAC(以下、pMACと表記)が利用される。
このようなFPEによれば、低優先度のフレーム(FPEのPreemptableフレーム)の転送(送信)処理中に、高優先度のフレーム(FPEのExpressフレーム)の転送処理が発生した場合に、低優先度フレームの送信処理を中断して、高優先度フレームを割り込ませることができる。なお、低優先度フレームの転送処理は、高優先度フレームの転送処理が完了した後に再開される。
上記した本実施形態の第1比較例に係るスイッチ装置10を用いて構成されたネットワークにおいては高いリアルタイム性を実現することは困難であるが、FPE(規格)に対応したスイッチ装置であれば、当該スイッチ装置10と比較して、高優先度フレームに対する転送処理の遅延を低減し、高いリアルタイム性を実現することが可能である。
以下、図5を参照して、FPEに対応したスイッチ装置(以下、本実施形態の第2比較例に係るスイッチ装置と表記)の構成の一例について説明する。なお、以下の本実施形態の第2比較例の説明においては、上記した本実施形態の第1比較例に係るスイッチ装置と同様の部分についての詳しい説明を省略する。
図5に示すスイッチ装置20は、N個の通信処理部21-1~21-N、N個の第1受信キュー(eRx)22-1a~22-Na、N個の第2受信キュー(pRx)22-1b~22-Nb、FDB23、フォワーディング処理部24、N個の第1送信キュー(eTx)25-1a~25-Na、N個の第2送信キュー(pTx)25-1b~25-Nb及び管理部26を備える。
本実施形態の第2比較例においては、通信処理部21-1~21-NがFPEに対応しており、上記したeMAC21a及びpMAC21bの2つのMACを含む点が、上記した本実施形態の第1比較例とは異なる。なお、通信処理部21-1~21-Nに含まれるPHY21cは、上記した本実施形態の第1比較例における通信処理部11-1~11-Nに含まれるPHY11bに相当する。
ここで、本実施形態の第2比較例において通信処理部21-1~21-Nによって受信されるフレームは、リアルタイムフレーム及びベストエフォートフレームを含む。なお、リアルタイムフレームとは、転送処理に高いリアルタイム性が要求され、低遅延での転送が必要であるフレームと定義され、例えば上記したFPEのExpressフレームに相当する。一方、ベストエフォートフレームとは、リアルタイムフレーム以外のフレームであり、例えば上記したFPEのPreemptableフレームに相当する。外部通信機器1-1~1-Nから送信されるフレームがリアルタイムフレームであるかベストエフォートフレームであるかはスイッチ装置20の外部(例えば、外部通信機器1-1~1-N等)において設定されているものとする。
上記の例において、リアルタイムフレームとベストエフォートフレームの識別は、受信したイーサネットフレームのSFDフィールドやSMDフィールドを参照して識別することができる。例えば,SMD-Eで定義される値(0xD5)の場合にリアルタイムフレーム(FPEのExpressフレーム)と識別し、SMD-S0~3(0xE6、0x4C、0x7F、0xB3)、SMD-C0~3(0x61、0x52、0x9E、0x2A)の場合にベストエフォートフレーム(FPEのPreemptableフレーム)と識別してもよい。また、FPEのExpressフレームはeMACで受信処理が行われ、FPEのPreemptableフレームはpMACで受信処理が行われるため、どちらのMACで受信したかで識別してもよい。
通信処理部21-1~21-Nが例えばリアルタイムフレームを受信した場合、当該リアルタイムフレームは、eMAC21a(及びPHY21c)を介して、第1受信キュー22-1a~22-Naに出力される。一方、通信処理部21-1~21-Nが例えばベストエフォートフレームを受信した場合、当該リアルタイムフレームは、pMAC21b(及びPHY21c)を介して、第2受信キュー22-1b~22-Nbに出力される。
N個の第1受信キュー22-1a~22-Naは、N個の通信処理部21-1~21-Nに対応しており、当該通信処理部21-1~21-Nからフォワーディング処理部24にリアルタイムフレームを受け渡すために利用されるキューである。上記したように通信処理部21-1~21-Nから出力されたリアルタイムフレームは、第1受信キュー22-1a~22-Naに格納される。
N個の第2受信キュー22-1b~22-Nbは、N個の通信処理部21-1~21-Nに対応しており、当該通信処理部21-1~21-Nからフォワーディング処理部24にベストエフォートフレームを受け渡すために利用されるキューである。上記したように通信処理部21-1~21-Nから出力されたベストエフォートフレームは、第2受信キュー22-1b~22-Nbに格納される。
FDB23は、上記した本実施形態の第1比較例において説明したFDB13と同様に、ポート識別子、MACアドレス、VLAN ID及び最終受信時刻を対応づけて含む宛先決定情報(エントリ)を格納する。
フォワーディング処理部24は、N個の第1受信キュー22-1a~22-Na及びN個の第2受信キュー22-1b~22-Nb(つまり、通信ポート1~N)に対応するN個の宛先決定部24-1~24-Nを含む。
宛先決定部24-1~24-Nは、第1受信キュー22-1a~22-Naに格納されたリアルタイムフレームを当該第1受信キュー22-1a~22-Naから取り出し、FDB23(に格納されている宛先決定情報)を参照して当該リアルタイムフレームに対する宛先ポートを決定する。
また、宛先決定部24-1~24-Nは、第2受信キュー22-1b~22-Nbに格納されたベストエフォートフレームを当該第2受信キュー22-1b~22-Nbから取り出し、FDB2に格納されている宛先決定情報)を参照して当該ベストエフォートフレームに対する宛先ポートを決定する。
例えばリアルタイムフレーム(第1受信キュー22-1a~22-Naから取り出されたフレーム)に対する宛先ポートが決定された場合、当該リアルタイムフレームは、当該宛先ポートに対応する第1送信キューに出力される。
一方、例えばベストエフォートフレーム(第2受信キュー22-1b~22-Nbから取り出されたフレーム)に対する宛先ポートが決定された場合、当該ベストエフォートフレームは、当該宛先ポートに対応する第2送信キューに出力される。
N個の第1送信キュー25-1a~25-Naは、N個の通信処理部21-1~21-N(つまり、通信ポート1~N)に対応している。第1送信キュー25-1a~25-Naは、フォワーディング処理部24(宛先決定部24-1~24-N)から通信処理部21-1~21-Nにリアルタイムフレームを受け渡すために利用されるキューである。上記したようにフォワーディング処理部24に含まれる宛先決定部24-1~24-Nの各々から宛先ポートに対応する第1送信キューに出力されたリアルタイムフレームは、当該第1送信キューに格納される。
このように第1送信キュー25-1a~25-Naに格納されたリアルタイムフレームは、通信処理部21-1~21-Nによって取り出され、eMAC21a(及びPHY21c)を介して外部通信機器1-1~1-Nに送信される。
N個の第2送信キュー25-1b~25-Nbは、N個の通信処理部21-1~21-N(つまり、通信ポート1~N)に対応している。第2送信キュー25-1b~25-Nbは、フォワーディング処理部24(宛先決定部24-1~24-N)から通信処理部21-1~21-Nにベストエフォートフレームを受け渡すために利用されるキューである。上記したようにフォワーディング処理部24に含まれる宛先決定部24-1~24-Nの各々から宛先ポートに対応する第2送信キューに出力されたベストエフォートフレームは、当該第2送信キューに格納される。
このように第2送信キュー25-1b~25-Nbに格納されたベストエフォートフレームは、通信処理部21-1~21-Nによって取り出され、pMAC21b(及びPHY21c)を介して外部通信機器1-1~1-Nに送信される。
なお、後述するように、宛先決定部24-1~24-Nは各TCが第1送信キュー(eTx)または第2送信キュー(pTx)を利用するのかを示す情報(TCと送信キューの対応情報)を保持する。このため、TCと送信キューの対応情報の設定によっては、リアルタイムフレーム(第1受信キュー22-1a~22-Naから取り出されたフレーム)を当該宛先ポートに対応する第2送信キューに出力し、ベストエフォートフレーム(第2受信キュー22-1b~22-Nbから取り出されたフレーム)を当該宛先ポートに対応する第1送信キューに出力することもある。
管理部26は、上記した本実施形態の第1比較例における管理部16に相当し、例えばスイッチ装置20の初期化、起動、停止、FDB23の更新(エントリの追加及び削除)、及び統計情報の管理等に関する処理を実行する。
次に、図6を参照して、図5に示すフォワーディング処理部24に含まれる宛先決定部24-1の構成の一例について説明する。図6に示すように、宛先決定部24-1は、決定部24a及び送信処理部24bを含む。
決定部24aは、宛先決定部24-1に対応する第1受信キュー22-1aからリアルタイムフレームを取り出し、当該リアルタイムフレームに付加されているヘッダ情報に基づいてFDB23(に格納されている宛先決定情報)にアクセスすることによってリアルタイムフレームに対する宛先ポートを決定する。
決定部24aは、宛先決定部24-1に対応する第2受信キュー22-1bからベストエフォートフレームを取り出し、当該ベストエフォートフレームに付加されているヘッダ情報に基づいてFDB23(に格納されている宛先決定情報)にアクセスすることによってベストエフォートフレームに対する宛先ポートを決定する。
送信処理部24bは、第1受信キュー22-1aから取り出されたリアルタイムフレームを決定部24aによって決定された宛先ポートに対応する第1送信キュー(宛先の第1送信キュー)または第2送信キュー(宛先の第2送信キュー)に出力する。
送信処理部24bは、第2受信キュー22-1bから取り出されたベストエフォートフレームを決定部24aによって決定された宛先ポートに対応する第1送信キュー(宛先の第1送信キュー)または第2送信キュー(宛先の第2送信キュー)に出力する。
ここではフォワーディング処理部24に含まれる宛先決定部24-1の構成について説明したが、他の宛先決定部24-2~24-Nの構成についても当該宛先決定部24-1と同様である。
なお、本実施形態の第2比較例における宛先決定部24-1~24-Nは、第1受信キュー22-1a~22-Na及び第2受信キュー22-1b~22-Nbからフレームを取り出す点、及び第1及び第2送信キューにフレームを出力する点以外は上記した図3に示す処理と同様の処理を実行する。
この場合、決定部24aは第1受信キュー22-1a及び第2受信キュー22-1bの一方を選択してフレームを取り出すことになるが、リアルタイムフレームは低遅延での転送処理が要求されることから、フレームが取り出される場合には例えば第1受信キュー22-1aが優先的に選択されるものとする。換言すれば、決定部24aは、第1受信キュー22-1aからリアルタイムフレームを優先的に取り出し、当該第1受信キュー22-1a内にリアルタイムフレームが存在しない場合に、第2受信キュー22-1bからベストエフォートフレームを取り出すように動作する。ただし、決定部24aは、例えばラウンドロビン方式でフレームを取り出す受信キューを選択するようにしてもよい。
また、本実施形態の第2比較例においては通信ポートに2つの送信キュー(第1及び第2送信キュー)が存在するため、送信処理部24bは、宛先ポートに対する第1及び第2送信キューのいずれにフレームを出力するかを判定する必要がある。この場合、送信処理部24bは、上記した図3において説明したTCに基づいてフレームを出力すべき送信キューを特定するものとする。なお、各TCが第1送信キュー(eTx)または第2送信キュー(pTx)を利用するのかを示す情報は、送信処理部24b内部に予め保持されているものとする(例えばフレームプリエンプションステータステーブル)。
ここで、本実施形態の第2比較例に係るスイッチ装置20のFDB23に対するアクセスについて説明する。上記したFPE(TSN)において高いリアルタイム性を実現するためには、FDB23にアクセスする際の遅延時間の最大値及びジッタ(応答時間の揺らぎ)を低減することが重要である。
この場合、例えば本実施形態の第2比較例に係るスイッチ装置20に備えられるFDB23に格納される宛先決定情報をCAM(Content Addressable Memory)を用いて管理する(つまり、FDB23をCMAにより実現する)構成を採用することにより、低遅延及び低ジッタでのFDB23へのアクセスが可能となる。なお、CAMをハードウェアで実装した場合、例えば1クロックサイクルで宛先決定情報(対象エントリ)を探索することが可能である。
一方、FDB23の容量はスイッチ装置20に接続される機器数に影響するため、当該FDB23を大容量化することが好ましい。しかしながら、上記したCAMは、低遅延及び低ジッタを実現するために多数の比較器を並列動作させる構成であるため、ハードウェアリソースを多く消費し、大容量化が困難である。スイッチ装置20を例えばFPGA(Field Programmable Gate Array)または組込みシステムに適用する場合には、よりハードウェアリソースを確保すること(つまり、FDB23の大容量化)が困難となる。
この場合、SDRAMまたはSRAM(BRAM)等を利用し、ハッシュテーブルを用いて宛先決定情報を管理するように構成することによってFDB23の大容量化を図ることが考えられる。しかしながら、このような構成の場合、CAMを用いる場合と比較して遅延時間(探索時間)が増大し、リアルタイム性を実現することが困難となる。更に、ハッシュテーブルを用いる場合にはハッシュ衝突が発生する可能性があり、当該ハッシュ衝突の発生は応答時間の揺らぎ(つまり、ジッタ)を生じさせる要因となり得る。また、FDB23の大容量化自体がジッタの発生の要因となる可能性もある。
そこで、本実施形態に係るスイッチ装置は、リアルタイム性を実現するための遅延時間(及びジッタ)の低減とFDBの大容量化とを両立するための構成を有する。
以下、図7を参照して、本実施形態に係るスイッチ装置の構成の一例について説明する。なお、以下の本実施形態の説明においては、上記した本実施形態の第2比較例に係るスイッチ装置と同様の部分についての詳しい説明を省略する。
図7に示すように、スイッチ装置30は、N個の通信処理部31-1~31-N、N個の第1受信キュー(eRx)32-1a~32-Na、N個の第2受信キュー(pRx)32-1b~32-Nb、eFDB33a、pFDB33b、フォワーディング処理部34、N個の第1送信キュー(eTx)35-1a~35-Na、N個の第2送信キュー(pTx)35-1b~35-Nb及び管理部26を備える。
本実施形態に係るスイッチ装置30は、上記した本実施形態の第2比較例に係るスイッチ装置20と同様にFPEに対応したスイッチ装置であるが、eFDB33a及びpFDB33bを備える(つまり、2つのFDBを利用する)点で、第2比較例に係るスイッチ装置20とは異なる。
eFDB33aは、上記したリアルタイムフレーム用のFDBであり、pFDB33bと比較して高速及び低遅延で当該eFDB33a(宛先決定情報)にアクセスする(つまり、エントリを探索する)ことが可能に構成されている。具体的には、eFDB33aは、容量(つまり、エントリ数)は制限されるが、遅延時間の低減を実現するためにCAMを用いて宛先決定情報を管理する。
一方、pFDB33bは、上記したベストエフォートフレーム用のFDBであり、eFDB33aよりも容量が大きくなるように構成されていてもよい。具体的には、pFDB33bは、eFDB33aと比べて遅延時間及びジッタは大きいが、より多くの宛先決定情報(エントリ)を管理するためにSDRAM等によって実装されるものとする。また、pFDB33bに格納される宛先情報は、例えばハッシュテーブルを用いて管理される。
なお、「ハッシュテーブルを用いて宛先決定情報を管理する」とは、上記した宛先決定情報(ポート識別子、MACアドレス及びVLAN ID)の少なくとも一部から所定のハッシュ関数を用いて計算されるハッシュ値を用いて当該宛先決定情報(エントリ)を管理することをいう。これによれば、pFDB33bの回路規模を削減することが可能となるため、当該pFDB33bにおいて管理される宛先決定情報(エントリ)の数を更に増加させることができる。
フォワーディング処理部34は、N個の宛先決定部34-1~34-Nを含む。宛先決定部34-1~34-Nは、第1受信キュー32-1a~32-Naに格納されたリアルタイムフレームを当該第1受信キュー32-1a~32-Naから取り出し、eFDB33a(に格納されている宛先決定情報)を参照して当該リアルタイムフレームに対する宛先ポートを決定する。
また、宛先決定部34-1~34-Nは、第2受信キュー32-1b~32-Nbに格納されたベストエフォートフレームを当該第2受信キュー32-1b~32-Nbから取り出し、pFDB33b(に格納されている宛先決定情報)を参照して当該ベストエフォートフレームに対する宛先ポートを決定する。
なお、N個の通信処理部31-1~31-N、N個の第1受信キュー(eRx)32-1a~32-Na、N個の第2受信キュー(pRx)32-1b~32-Nb、N個の第1送信キュー(eTx)35-1a~35-Na、N個の第2送信キュー(pTx)35-1b~35-Nb及び管理部36については、本実施形態の第2比較例におけるN個の通信処理部21-1~21-N、N個の第1受信キュー(eRx)22-1a~22-Na、N個の第2受信キュー(pRx)22-1b~22-Nb、N個の第1送信キュー(eTx)25-1a~25-Na、N個の第2送信キュー(pTx)25-1b~25-Nb及び管理部26と同様であるため、ここではその詳しい説明を省略する。
次に、図8を参照して、図7に示すフォワーディング処理部34に含まれる宛先決定部34-1の構成の一例について説明する。図8に示すように、宛先決定部34-1は、第1決定部34a、第2決定部34b及び送信処理部34cを含む。
第1決定部34aは、宛先決定部34-1に対応する第1受信キュー32-1aからリアルタイムフレームを取り出し、当該リアルタイムフレームに付加されているヘッダ情報に基づいてeFDB33a(に格納されている宛先決定情報)にアクセスすることによってリアルタイムフレームに対する宛先ポートを決定する。
第2決定部34bは、宛先決定部34-1に対応する第2受信キュー32-1bからベストエフォートフレームを取り出し、当該ベストエフォートフレームに付加されているヘッダ情報に基づいてpFDB33b(に格納されている宛先決定情報)にアクセスすることによってベストエフォートフレームに対する宛先ポートを決定する。
送信処理部34cは、第1受信キュー32-1aから取り出されたリアルタイムフレームを第1決定部34aによって決定された宛先ポートに対応する第1送信キューまたは第2送信キューに出力する。
送信処理部34cは、第2受信キュー32-1bから取り出されたベストエフォートフレームを第2決定部34bによって決定された宛先ポートに対応する第1送信キューまたは第2送信キューに出力する。
ここではフォワーディング処理部34に含まれる宛先決定部34-1の構成について説明したが、他の宛先決定部34-2~34-Nの構成についても当該宛先決定部34-1と同様である。
なお、本実施形態における宛先決定部34-1~34-Nは、第1受信キュー32-1aから取り出されたリアルタイムフレームに対する宛先ポートをeFDB33aを参照して決定し、第2受信キュー32-1bから取り出されたベストエフォートフレームに対する宛先ポートをpFDB33bを参照して決定する点以外は上記した本実施形態の第2比較例と同様の処理を実行する。
ところで、本実施形態においてはスイッチ装置30が単にFPEに対応するスイッチ装置であるものとして説明したが、以下、図9を参照して、当該スイッチ装置30の具体的な適用例について簡単に説明する。なお、ここでは図7に示すスイッチ装置30と異なる点についてのみ主に述べる。
ここで、上記したTSNを構成する複数の規格のうちのFPEとは別の規格としてIEEE 802.1Qbv(TAS:Time-Aware Shaper)がある。TASによれば、優先度が異なる複数の送信キュー(送信バッファ)を事前に設定した送信スケジュール情報(ゲートコントロールリスト)に従って制御することで、優先度(TC)毎にフレームの送信タイミングを厳密に制御することが可能となる。なお、TASにおける各送信キューにはフレームの送信を許可するゲートが設けられており、当該ゲートが開いている(オープン状態である)場合にはフレームの送信が許可され、当該ゲートが閉じている(クローズ状態である)場合にはフレームの送信が禁止される。
図9に示すスイッチ装置40は、上記したFPEに加えてTASに対応したスイッチ装置を内蔵したスイッチ内蔵NIC(Network Interface Card)として実現されている。
なお、図9に示す例では、スイッチ装置40は、N個の外部通信機器1-1~1-NとN個の通信インタフェース(通信ポート1~N)を介して接続されるとともに、CPU及びメモリ等を備えるホストマシン2とPCI Express(PCIe)(登録商標)を介して接続されているものとする。
すなわち、図9に示すスイッチ装置40は、例えばホストマシン2から送信されたフレームを外部通信機器1-1~1-Nに転送するまたは外部通信機器1-1~1-Nから送信されたフレームをホストマシン2または他の外部通信機器に転送するように構成されている。
図9に示すように、スイッチ装置40は、PCIeインタフェース41、DMAC42、TAS処理部43-0~43-N及び受信キュー44を含む。
PCIeインタフェース41は、スイッチ装置40とホストマシン2とを接続するためのインタフェースである。
DMAC42は、ホストマシン2から送信されたフレームをPCIeインタフェース41を介して受信し、当該フレームをTAS処理部43-0に出力する。また、DMAC42は、受信キュー44に格納されたフレームを当該受信キュー44から取り出し、PCIeインタフェース41を介してホストマシン2に送信する。
TAS処理部43-0は、ホストマシン2に対応しており、ホストマシン2から送信されたフレームに対してTAS処理を実行する。TAS処理部43-0は、例えば送信キューTC0(0)~TC7(0)と、TAS(Host)とを含み、事前に設定されたスケジュール情報(ゲートコントロールリスト)に従ってフレームの送信タイミングを決定する。なお、ゲートコントロールリストは、例えばタイムインターバル毎の8つのTC(TC0~TC7)に対応するキューのゲートの状態を含む。なお、ゲートの状態は、各TCに対応するキューにおける送信が許可されているか否かを示す。TAS処理部43-0は、このようなゲートコントロールリストに基づいて、ゲートが開いている送信キューからフレームを取り出して出力するような動作を行うことができる。
なお、TAS処理部43-0から出力されたフレーム(リアルタイムフレーム及びベストエフォートフレーム)は、図7に示す第1受信キュー32-1a~32-Naと同様の受信キュー32-0a(eRx)及び第2受信キュー32-1b~32-Nbと同様の受信キュー32-0b(pRx)に格納される。
ここではTAS処理部43-0について説明したが、TAS処理部43-1~43-Nは、外部通信機器1-1~1-N(通信ポート1~N)に対応しており、上記したTAS処理部43-0と同様の処理を実行する。
受信キュー44は、フォワーディング処理部34からDMAC42にフレームを受け渡すために利用されるキューである。
なお、TASは送信側の処理であるが、図9に示す例では、ホストマシン2からスイッチ装置40への受信方向にTAS処理部43-0が設けられている。すなわち、このTAS処理部43-0は、ホストマシン2をスイッチ装置40に接続される外部通信機器とみなし、当該外部通信機器の送信処理(TAS処理)を実行するように実装されている。
一方、TASに対応したスイッチ装置の場合、送信方向の全てにおいてTAS処理が必要であるが、ホストマシン2に繋がるバスは他の通信機器とネットワークを共有しておらず、当該TAS処理を実行することによって複数トラヒックの衝突を回避する効果は低いと想定される。このため、図9に示す例では、スイッチ装置40からホストマシン2への送信方向にはTAS処理部が設けられていない。
ただし、図9に示す構成は一例であり、例えば外部通信機器1-1~1-Nからホストマシン2への送信方向(受信キュー44とDMAC42の間)にTAS処理部を設けてもよいし、TAS処理部43-0内のTAS(Host)が省略されるような構成を採用することも可能である。
なお、図9に示すスイッチ装置40の他の構成については本実施形態(図7に示すスイッチ装置30)において説明した通りであるため、ここではその詳しい説明を省略する。ただし、フォワーディング処理部34は、上記した宛先決定部34-1~34-Nに加えて、ホストマシン2側の第1及び第2受信キューに対応する宛先決定部34-0を更に含む。
また、図9に示す例では、本実施形態における管理部36がスイッチ装置40には設けられておらず、ホストマシン2が当該管理部36に相当する管理部2aを含むものとする。なお、この管理部2aは、例えばホストマシン2に備えられるCPUが所定のプログラムを実行すること(つまり、ソフトウェア)により実現される場合を想定している。
次に、図10を参照して、スイッチ装置40に含まれるフォワーディング処理部34の動作について簡単に説明する。
図10に示すように、フォワーディング処理部34に含まれる宛先決定部34-0~34-Nは、eXmitter及びpXmitterを含む。なお、eXmitterは例えば図8に示す第1決定部34a(及び送信処理部34c)と同様の処理を実行し、pXmitterは例えば図8に示す第2決定部34b(及び送信処理部34c)と同様の処理を実行する。
また、フォワーディング処理部34は、ホストマシン2及び各通信ポート1~N(つまり、外部通信機器1-1~1-N)に対応するN+1個のセレクタを含む。なお、図10において、ホストマシン2に対応するセレクタはセレクタS(0)、通信ポート1~Nに対応するセレクタはセレクタS(1)~S(N)のように示されている。
この場合、例えば宛先決定部34-0に含まれるeXmitterによって第1受信キュー32-0aからリアルタイムフレームが取り出された場合、当該eXmitterは、当該リアルタイムフレームに付加されているヘッダ情報に基づいてeFDB33aを参照し、当該リアルタイムフレームに対する宛先ポートを決定する。eXmitterは、決定された宛先ポートに対応するセレクタにリアルタイムフレームを出力する。なお、第1受信キュー32-0aから取り出されたリアルタイムフレーム(つまり、ホストマシン2から送信されたリアルタイムフレーム)は当該ホストマシン2以外の外部通信機器1-1~1-Nに転送されるため、宛先決定部34-0に含まれるeXmitterは、セレクタS(0)以外のセレクタS(1)~S(N)にリアルタイムフレームを送信する。
また、例えば宛先決定部34-0に含まれるpXmitterによって第2受信キュー32-0bからベストエフォートフレームが取り出された場合、当該pXmitterは、当該ベストエフォートフレームに付加されているヘッダ情報に基づいてpFDB33bを参照し、当該ベストエフォートフレームに対応する宛先ポートを決定する。pXmitterは、決定された宛先ポートに対応するセレクタにベストエフォートフレームを出力する。なお、第2受信キュー32-0bから取り出されたベストエフォートフレーム(つまり、ホストマシン2から送信されたベストエフォートフレーム)は当該ホストマシン2以外の外部通信機器1-1~1-Nに転送されるため、宛先決定部34-0に含まれるeXmitterは、セレクタS(0)以外のセレクタS(1)~S(N)にベストエフォートフレームを送信する。
また、例えばセレクタS(0)(ホストマシン2に対応するセレクタ)は、ホストマシン2に対応する宛先決定部34-0以外の宛先決定部34-1~34-N(に含まれるeXmitter及びpXmitter)から当該セレクタS(0)出力されたフレームを入力し、当該入力されたフレームをTCによって特定(選択)される送信キューTC0~TC7のうちの1つに出力する。フレームを出力する送信キューを特定するためのTCは、宛先決定部34-0によって上記した図3に示す処理に相当する処理が実行されることによって得られるものとする。
ここでは宛先決定部34-0及びセレクタS(0)について説明したが、他の宛先決定部34-1~34-N及びセレクタS(1)~S(N)についても同様である。
なお、図10において、宛先決定部34-0~34-Nによって第1受信キュー32-0a~32-Naからリアルタイムフレームを取り出すeXmitterはeX(0)~eX(N)、宛先決定部34-0~34-Nによって第2受信キュー32-0b~32-Nbからベストエフォートフレームを取り出すpXmitterはpX(0)~pX(N)のように示されている。
ここでは、本実施形態に係るスイッチ装置がFPE及びTASに対応したスイッチ装置を内蔵したスイッチ内蔵NICとして実装されている場合について説明したが、当該スイッチ装置は他の態様で実装されていても構わない。
上記したように本実施形態においては、例えば通信ポート1(第1通信ポート)に接続された外部通信機器1-1(第1外部通信機器)から送信されたフレームを受信し、当該受信されたフレームがリアルタイムフレーム(低遅延での転送が必要である第1フレーム)である場合、当該リアルタイムフレームに付与されているヘッダ情報に基づいてeFDB33a(第1データベース)に格納されている宛先決定情報(フレームの宛先となる第2外部通信機器が接続されている第2通信ポートを決定するために用いられる情報)にアクセスすることによって宛先ポートを決定する。一方、受信されたフレームがベストエフォートフレーム(第1フレームとは異なる第2フレーム)である場合、当該ベストエフォートフレームに付与されているヘッダ情報に基づいてpFDB33b(第2データベース)に格納されている宛先決定情報にアクセスすることによって宛先ポートを決定する。本実施形態において、eFDB33aはpFDB33bと比較して高速に宛先決定情報にアクセスすることが可能に構成されている。
本実施形態においては、上記したようにリアルタイムフレームとベストエフォートフレームとで個別のFDBを用意することにより、リアルタイムフレームを転送する際の遅延時間(及びジッタ)を最小化しつつ、単にeFDB33aを備える構成と比較して、pFDB33bを加えることによりFDBの大容量化を実現することができる。換言すれば、本実施形態においては、遅延時間の低減とFDB(データベース)の大容量化とを両立することができる。
ここで、本実施形態においては、例えば外部通信機器1-1~1-Nから送信されたリアルタイムフレームが受信された場合に図4に示す処理が実行されることによってeFDB33aが更新され、当該外部通信機器1-1~1-Nから送信されたベストエフォートフレームが受信された場合に当該図4に示す処理が実行されることによってpFDB33bが更新される構成であってもよいが、eFDB33aの更新処理は、pFDB33bの更新処理と異なっていてもよい。
具体的には、本実施形態におけるN個の外部通信機器1-1~1-Nの中にリアルタイム通信機器(リアルタイム性を要求するアプリケーションプログラム)とベストエフォート通信機器(リアルタイム性を要求しないアプリケーションプログラム)とが混在するような場合には、リアルタイム通信機器の台数はベストエフォート通信機器の台数よりも少ない場合が想定される。
また、産業用ネットワークまたは車載ネットワーク等で緊急信号のようなリアルタイム性を要する通信を実行する通信機器(アプリケーションプログラム)は、ネットワークとの接続及び切断を動的に行う機会は少なく、当該ネットワークの構成時に台数が決定される(つまり、台数が固定である)場合も多いと推測される。
このため、本実施形態においては、例えばeFDB33aに格納されている宛先決定情報はリアルタイムフレームが受信された際に更新されない(つまり、eFDB33aに対するMACアドレスの学習を無効にする)ものとしてもよい。これによれば、eFDB33aに対しては宛先決定情報の更新よりもリアルタイム性を優先し、eFDB33aの更新に伴ってリアルタイムフレームが転送される際の遅延時間またはジッタが増大することを防ぐことが可能である。
一方、pFDB33bに格納されている宛先決定情報は、ベストエフォートフレームが受信された際に更新される(つまり、pFDB33bに対するMACアドレスの学習を有効にする)ものとする。これによれば、例えば外部通信機器1-1~1-Nから送信されたベストエフォートフレームが受信される度にpFDB33bを更新する(エントリの追加等を行う)ことにより、ネットワークに対する外部通信機器の接続及び切断を柔軟に行い、より多くの外部通信機器に対するフレームの転送に対応することができる。
なお、ここではeFDB33aに格納されている宛先決定情報はリアルタイムフレームが受信された際に更新されないものとして説明したが、当該eFDB33aの更新は、例えばスイッチ装置40の外部からの指示等に応じて実行されることは可能であるものとする。
上記したように本実施形態に係るスイッチ装置30は、上記したようにFDB(eFDB33a及びpFDB33b)毎に異なる更新処理が実行されるように構成されていてもよい。この場合、本実施形態に係るスイッチ装置30は、例えばeFDB33aの更新処理が実行される頻度がpFDB33bの更新処理が実行される頻度よりも低くなるように動作すればよい。
ここで、本実施形態においては1つの通信ポート(通信処理部)に対して2つの受信キュー(第1及び第2受信キュー)を備える構成であるものとして説明したが、本実施形態は、例えば図11に示すように、1つの通信ポートに対して1つの受信キューを備える構成(以下、本実施形態の第1変形例と表記)であってもよい。なお、以下の本実施形態の第1変形例の説明においては、上記した本実施形態に係るスイッチ装置と同様の部分についての詳しい説明を省略する。
図11に示す例では、本実施形態の第1変形例に係るスイッチ装置30は通信ポート1~N(通信処理部31-1~31-N)に対応するN個の受信キュー32-1~32-Nを備えており、例えば受信キュー32-1は、通信処理部31-1から出力され、シリアライズされたリアルタイムフレーム及びベストエフォートフレームが順次格納される。他の受信キュー32-2~32-Nについても同様である。
次に、図12を参照して、図11に示すフォワーディング処理部34に含まれる宛先決定部34-1の構成の一例について説明する。
図12に示すように、宛先決定部34-1は、決定部34dを含む。本実施形態の第1変形例において、決定部34dは、本実施形態において説明したように、リアルタイムフレームに対する宛先ポートをeFDB33aを参照して決定し、ベストエフォートフレームに対する宛先ポートをpFDB33bを参照して決定する。
しかしながら、本実施形態の第1変形例においては決定部34dによって取り出されるフレームを格納する受信キューが1つである(つまり、1つの受信キュー32-1からリアルタイムフレーム及びベストエフォートフレームが取り出される)ため、当該決定部34dは、当該受信キュー32-1から取り出されたフレームがリアルタイムフレームであるかベストエフォートフレームであるかを判定する必要がある。
このため、本実施形態の第1変形例において、決定部34dは、例えば受信キュー32-1から取り出されたフレームに付加されているヘッダ情報に含まれるPCPまたは当該PCPから変換されるTCに基づいて、当該フレームがリアルタイムフレームであるかベストエフォートフレームであるかを判定する構成であるものとする。この場合、決定部34dは、例えばPCPまたはTC毎に、リアルタイムフレームであるかベストエフォートフレームであるかを示す情報を予め保持しておくことにより、当該情報に基づいて上記した判定処理を実行することができる。
このような判定処理により、受信キュー32-1から取り出されたフレームがリアルタイムフレームであると判定された場合には、eFDB33aを参照して当該リアルタイムフレームに対する宛先ポートが決定される。一方、受信キュー32-1から取り出されたフレームがベストエフォートフレームであると判定された場合には、pFDB33bを参照して当該ベストエフォートフレームに対する宛先ポートが決定される。
ここではフォワーディング処理部34に含まれる宛先決定部34-1の構成について説明したが、他の宛先決定部34-2~34-Nの構成についても当該宛先決定部34-1と同様である。
なお、本実施形態の第1変形例における宛先決定部34-1~34-Nは、受信キュー32-1~32-Nから取り出されたフレームがリアルタイムフレームであるかベストエフォートフレームであるかを判定する点以外は上記した本実施形態と同様の処理を実行する。
また、本実施形態は、例えば図13に示すように、1つの通信ポートに対してm(mは3以上の整数)個の受信キューを備える構成(以下、本実施形態の第2変形例と表記)であってもよい。なお、以下の本実施形態の第2変形例の説明においては、上記した本実施形態に係るスイッチ装置と同様の部分についての詳しい説明を省略する。
図13に示す例では、本実施形態の第2変形例に係るスイッチ装置30は、通信ポート1~N(通信処理部31-1~31-N)に対応するN×m個の受信キューを備えている。具体的には、例えば通信ポート1に対応する受信キューはm個の受信キュー32-11~32-1mであり、通信ポート2に対応する受信キューはm個の受信キュー32-21~32-2mであり、通信ポートNに対応する受信キューはm個の受信キュー32-N1~32-Nmである。他の通信ポートに対応する受信キューについても同様である。
ここで、本実施形態の第2変形例において、N×m個の受信キューは、リアルタイムフレーム用の受信キュー(つまり、リアルタイムフレームが格納される受信キュー)とベストエフォートフレーム用の受信キュー(つまり、ベストエフォートフレームが格納される受信キュー)とを含む。すなわち、例えば通信処理部31-1から出力されたリアルタイムフレームは、受信キュー32-11~32-1mのうちのリアルタイムフレーム用の受信キューに格納される。一方、通信処理部31-1から出力されたベストエフォートフレームは、受信キュー32-11~32-1mのうちのベストエフォートフレーム用の受信キューに格納される。
また、本実施形態の第2変形例に係るスイッチ装置30は、上記したN×m個の受信キューの各々がリアルタイムフレーム用の受信キューであるかベストエフォートフレーム用の受信キューであるかを示す情報(以下、属性情報と表記)を予め格納する属性情報DB(データベース)37を備えている。
次に、図14を参照して、図13に示すフォワーディング処理部34に含まれる宛先決定部34-1の構成の一例について説明する。
図14に示すように、宛先決定部34-1は、第1フレーム取り出し部34e及び第2フレーム取り出し部34fを含む。
第1フレーム取り出し部34eは、m個の受信キュー32-11~32-1mのうちのリアルタイムフレーム用の受信キューからリアルタイムフレームを取り出し、当該取り出されたリアルタイムフレームを第1決定部34aに出力する。
第2フレーム取り出し部34fは、m個の受信キュー32-11~32-1mのうちのベストエフォートフレーム用の受信キューからベストエフォートフレームを取り出し、当該取り出されたベストエフォートフレームを第2決定部34bに出力する。
なお、本実施形態の第2変形例においてリアルタイムフレーム用の受信キュー及びベストエフォートフレーム用の受信キューは、属性情報DB37に格納されている属性情報に基づいて判別可能である。
具体的には、属性情報DB37に格納されている属性情報においては、例えば図15に示すように受信キューの各々に対応づけてリアルタイムフレーム(Express)またはベストエフォートフレーム(Preemptable)が設定されている。なお、図15において、Rx1~Rxmは、例えば受信キュー32-11~32-1mを識別するための識別情報に相当する。
第1フレーム取り出し部34eは、属性情報においてリアルタイムフレームが設定されている受信キュー(つまり、リアルタイムフレーム用の受信キュー)を判別(特定)し、当該受信キューからリアルタイムフレームを取り出すことができる。同様に、第2フレーム取り出し部34fは、属性情報においてベストエフォートフレームが設定されている受信キュー(つまり、ベストエフォートフレーム用の受信キュー)を判別(特定)し、当該受信キューからベストエフォートフレームを取り出すことができる。
なお、m個の受信キュー32-11~32-1mの中に複数のリアルタイムフレーム用の受信キューが存在する場合、第1フレーム取り出し部34eは、例えばリアルタイムフレーム用の受信キュー毎に予め定められている優先度等に従ってリアルタイムフレームを取り出すものとする。この優先度は、例えば上記した属性情報DB37(属性情報)において設定されていればよい。なお、第1フレーム取り出し部34eは、例えばラウンドロビン方式で複数のリアルタイムフレーム用の受信キューからリアルタイムフレームを取り出すように動作してもよい。
ここでは第1フレーム取り出し部34eがリアルタイムフレームを取り出す場合について説明したが、第2フレーム取り出し部34fがベストエフォートフレームを取り出す場合についても同様である。
ここではフォワーディング処理部34に含まれる宛先決定部34-1の構成について説明したが、他の宛先決定部34-2~34-Nの構成についても当該宛先決定部34-1と同様である。
なお、第1決定部34a及び送信処理部34cは、上記した第1フレーム取り出し部34eがリアルタイムフレームを取り出した(第1フレーム取り出し部34eから第1決定部34aにリアルタイムフレームが出力された)後に上記した本実施形態と同様の処理を実行する。また、第2決定部34b及び送信処理部34cは、第2フレーム取り出し部34fがベストエフォートフレームを取り出した(第2フレーム取り出し部34fから第2決定部34bにベストエフォートフレームが出力された)後に上記した本実施形態と同様の処理を実行する。
上記した本実施形態の第1及び第2変形例によれば、1つの通信ポートに対して設けられる受信キューの数が2つ以外の構成であっても遅延時間の低減とFDBの大容量化との両立を実現することができる。
なお、本実施形態においてはeFDB33aがCAMを用いて宛先決定情報を管理し、pFDB33bがハッシュ値を保持するハッシュテーブルを用いて宛先決定情報を管理するものとして説明したが、eFDB33aがpFDB33bと比較して高速なアクセスを実現することが可能な態様で構成されているのであれば、当該eFDB33a及びpFDB33bは、本実施形態とは異なる態様で宛先決定情報を管理するように構成されていても構わない。また、本実施形態においては、ベストエフォートフレームを転送する際に参照するpFDB33bの容量をeFDB33aの容量よりも大きくした構成を採用してもよい。
また、本実施形態においてはリアルタイム性を実現するための規格としてTSNを説明したが、本実施形態に係るスイッチ装置30は、例えばリアルタイムフレーム(IEEE 802.1Qbu/IEEE 802.3brのExpressフレーム)及びベストエフォートフレーム(IEEE 802.1Qbu/IEEE 802.3brのPreemptableフレーム)に相当するフレームに対する転送処理を実行する構成であれば、他の規格に準拠するものであってもよい。
また、本実施形態に係るスイッチ装置30に含まれる例えばフォワーディング処理部34及び管理部36等はハードウェアによって実現される場合を想定しているが、当該フォワーディング処理部34及び管理部36は、ソフトウェアにより実現されても構わない。
図16は、フォワーディング処理部34及び管理部36がソフトウェアにより実現される場合のスイッチ装置30のハードウェア構成の一例を示す。図16に示すように、スイッチ装置30は、CPU301、不揮発性メモリ302、主メモリ303及び通信デバイス304等を備える。
CPU301は、スイッチ装置30内のコンポーネントの動作を制御するプロセッサである。CPU301(つまり、スイッチ装置30のコンピュータ)は、不揮発性メモリ302から主メモリ303にロードされる所定のプログラムを実行することにより、フォワーディング処理部34及び管理部36の機能を実現する。
通信デバイス304は、例えば外部通信機器1-1~1-N等との通信を実行するように構成されたデバイスである。
なお、図16に示すハードウェア構成の場合、スイッチ装置30に含まれる第1受信キュー32-1a~32-Na、第2受信キュー32-1b~32-Nb、eFDB33a、pFDB33b、第1送信キュー35-1a~35-Na及び第2送信キュー35-1b~35-Nbに利用されるメモリ領域は例えば主メモリ303内に確保される。また、スイッチ装置30に含まれる通信処理部31-1~31-Nは、例えば通信デバイス304に含まれる。
(第2実施形態)
次に、第2実施形態について説明する。本実施形態に係るスイッチ装置の構成は、前述した第1実施形態と同様であるため、適宜、図7を用いて説明する。なお、以下の説明においては、前述した第1実施形態に係るスイッチ装置と同様の部分についての詳しい説明を省略する。
前述した第1実施形態において説明したようにeFDB33a及びpFDB33bを参照して宛先ポートを決定する構成の場合、複数の宛先決定部34-1~34-Nが同時に当該eFDB33a及びpFDB33bにアクセスすることは困難である。このため、本実施形態においては、上記したようにeFDB33a及びpFDB33bのコピー(つまり、eFDB33a及びpFDB33bに格納されている宛先決定情報)をキャッシュし、宛先決定部34-1の内部に保持しておく点が、前述した第1実施形態とは異なる。
図17を参照して、本実施形態におけるフォワーディング処理部34に含まれる宛先決定部34-1の構成の一例について説明する。
図17に示すように、宛先決定部34-1は、前述した第1実施形態において説明したeFDB33aのコピーであるeFDBキャッシュ34g及びpFDB33bのコピーであるpFDBキャッシュ34hを内部に保持する。
eFDBキャッシュ34gはeFDB33aに格納されている宛先決定情報を含み、当該eFDBキャッシュ34gにおいては、eFDB33aと同様にCAMを用いて宛先決定情報が管理される。また、pFDBキャッシュ34hはpFDB33bに格納されている宛先決定情報を含み、当該pFDBキャッシュ34hにおいては、pFDB33bと同様にハッシュテーブルを用いて宛先決定情報が管理されるものとする。
第1決定部34aは、宛先決定部34-1に対応する第1受信キュー32-1aからリアルタイムフレームを取り出し、当該リアルタイムフレームに付加されているヘッダ情報及びeFDBキャッシュ34g(つまり、キャッシュされた宛先決定情報)に基づいて、当該リアルタイムフレームに対する宛先ポートを決定する。
第2決定部34bは、宛先決定部34-1に対応する第2受信キュー32-1bからベストエフォートフレームを取り出し、当該ベストエフォートフレームに付加されているヘッダ情報及びpFDBキャッシュ34h(つまり、キャッシュされた宛先決定情報)に基づいて、当該ベストエフォートフレームに対する宛先ポートを決定する。
ここではフォワーディング処理部34に含まれる宛先決定部34-1の構成について説明したが、他の宛先決定部34-2~34-Nの構成についても当該宛先決定部34-1と同様である。
なお、本実施形態における宛先決定部34-1は、リアルタイムフレームに対する宛先ポートを決定する際に第1決定部34aがeFDBキャッシュ34gを参照し、ベストエフォートフレームに対する宛先ポートを決定する際に第2決定部34bがpFDBキャッシュ34hを参照する点以外は前述した第1実施形態と同様の処理を実行する。
本実施形態においては、eFDB33a(第1データベース)に格納されている宛先決定情報(第1宛先決定情報)及びpFDB33b(第2データベース)に格納されている宛先決定情報(第2宛先決定情報)をキャッシュしておき、当該キャッシュされた宛先決定情報に基づいて宛先ポート(第2通信ポート)を決定する構成により、フォワーディング処理部34に含まれる複数の宛先決定部34-1~34-Nが同時に動作する(宛先決定情報を参照する)ことが可能となるため、より高いリアルタイム性を実現することが可能となる。
ところで、上記したようにeFDB33a及びpFDB33bに格納されている宛先決定情報をフォワーディング処理部34(宛先決定部34-1~34-N)にキャッシュしておく構成の場合、前述したFDBの更新処理と同様に、例えばスイッチ装置30において受信されたフレームに基づいて当該宛先決定部34-1~34-NがeFDBキャッシュ34g及びpFDBキャッシュ34h(宛先決定情報)を更新することが考えられる。このようにeFDBキャッシュ34g及びpFDBキャッシュ34hが更新された場合、eFDB33a及びpFDB33b(に格納されている宛先決定情報)と当該eFDBキャッシュ34g及びpFDBキャッシュ34hとを同期させる処理(以下、同期処理と表記)が必要となる。
しかしながら、eFDBキャッシュ34gはリアルタイムフレーム用のFDB(つまり、eFDB33a)のコピー(キャッシュ)であり、当該eFDB33aとeFDBキャッシュ34gとの同期処理はeFDB33aへの書き込み処理を伴うため、当該同期処理の実行は、リアルタイムフレームの転送処理の遅延及びジッタの増大の要因となり得る。
このため、本実施形態において、eFDB33aとeFDBキャッシュ34gとの同期処理(つまり、eFDB33aに格納されている宛先決定情報とキャッシュされた宛先決定情報とを同期させる処理)は、スイッチ装置30におけるリアルタイムフレームの受信に応じて実行されないものとする。これによれば、同期処理によって遅延及びジッタが発生することを回避し、リアルタイムフレームに対する転送処理における高いリアルタイム性を実現することができる。ただし、例えばスイッチ装置30の外部からの指示に応じてeFDB33aとeFDBキャッシュ34gとの同期処理が実行されることは可能であるものとする。
なお、ここではeFDBキャッシュ34g(宛先決定情報)がeFDB33aと同期される場合について説明したが、当該eFDBキャッシュ34gの更新処理自体もリアルタイムフレームが受信された際には実行されないものとする。
一方、pFDBキャッシュ34hはベストエフォートフレーム用のFDB(つまり、pFDB33b)のコピー(キャッシュ)であり、当該pFDBキャッシュ34hにおいては、リアルタイム性の実現のための遅延及びジッタの低減よりも、多くのエントリ(宛先決定情報)を管理することを優先することが好ましい。
このため、本実施形態において、pFDB33bとpFDBキャッシュ34hとの同期処理(つまり、pFDB33bに格納されている宛先決定情報とキャッシュされた宛先決定情報と同期させる処理)は、スイッチ装置30におけるベストエフォートフレームの受信に応じて実行される。
具体的には、例えば外部通信機器1-1から送信されたベストエフォートフレームに基づいて宛先決定部34-1に保持されているpFDBキャッシュ34hが更新された場合、pFDB33bと当該更新されたpFDBキャッシュ34hとの同期処理が実行される。この場合、宛先決定部34-1に保持されているpFDBキャッシュ34hとの同期処理が実行されたpFDB33bと他の宛先決定部34-2~34-Nの各々に保持されているpFDBキャッシュ34hとの同期処理も更に実行される。これによれば、pFDB33bと宛先決定部34-1~34-Nの各々に保持されているpFDBキャッシュ34hとを同期することが可能となる。
なお、pFDB33bとpFDBキャッシュ34hとの同期処理は、ベストエフォートフレームの受信に応じてpFDBキャッシュ34hが更新された後の予め定められたタイミング(例えば、タイマー等によって管理されるタイミング)で実行されてもよい。
すなわち、本実施形態においては、eFDB33aとeFDBキャッシュ34gとの同期処理はリアルタイムフレームの受信に応じて実行されず、pFDB33bとpFDBキャッシュ34hとの同期処理はベストエフォートフレームの受信に応じて実行される構成とすることができる。
なお、ここではeFDB33aとeFDBキャッシュ34gとの同期処理はリアルタイムフレームの受信に応じて実行されないものとして説明したが、本実施形態に係るスイッチ装置30は、当該eFDB33aとeFDBキャッシュ34gとの同期処理が実行される頻度がpFDB33bとpFDBキャッシュ34hとの同期処理が実行される頻度よりも低くなるように動作する構成であってもよい。
また、本実施形態においては例えばpFDBキャッシュ34hがpFDB33bのコピーであるものとして説明したが、当該pFDBキャッシュ34hに含まれる宛先決定情報は、pFDB33bに格納されている宛先決定情報と異なっていてもよい。
具体的には、pFDBキャッシュ34hに含まれる宛先決定情報の数(つまり、pFDBキャッシュ34hの容量)は、pFDB33bに格納されている宛先決定情報の数(pFDB33bの容量)よりも少なくてもよい。この場合、pFDBキャッシュ34hに含まれる宛先決定情報は、例えばLRU(Least Recently Used)等のアルゴリズムに従ってpFDB33bに格納されている宛先決定情報と入れ替えることができる。また、pFDBキャッシュ34hが更新される場合には当該pFDBキャッシュ34hに含まれる宛先決定情報のうちの最も古い宛先決定情報を破棄して新たな宛先決定情報(エントリ)を追加する場合があるが、当該破棄される宛先決定情報をpFDB33bに反映する(追加する)ような構成としてもよい。
また、pFDB33bとpFDBキャッシュ34hとにおいて、異なるアルゴリズムを用いた宛先決定情報の管理が行われてもよい。
以上述べた少なくとも1つの実施形態によれば、遅延時間の低減とデータベースの大容量化を両立することが可能なスイッチ装置、方法及びプログラムを提供することができる。
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれると同様に、特許請求の範囲に記載された発明とその均等の範囲に含まれるものである。