(57)【要約】【課題】高優先フレームと低優先フレームとが存在する場合に、規格外の符号をフレームに付すことなく、低優先フレームの転送効率の悪化を抑えて、高優先フレームを低遅延で低優先フレームより優先的に送信する。【解決手段】中継装置１は、フレーム判定部２で判定後のフレームを転送する転送処理部３、及びこの転送されたフレームを送信するフレーム送信部４を有する。転送処理部３は、フレーム送信部４への転送対象の低優先フレーム及び転送対象の高優先フレームのうちの、前者をフレーム送信部４により送信中、転送対象の低優先フレームの未送信部分の長さに対応する時間が基準時間以下である場合、フレーム送信部４に、転送対象の低優先フレームの送信を完了させた後に転送対象の高優先フレームを送信させ、上記時間が基準時間より大きい場合、フレーム送信部４に、転送対象の低優先フレームの送信を中断させて転送対象の高優先フレームを送信させる。【選択図】図１
2017208743.tif 000002
【特許請求の範囲】
【請求項１】
入力されたフレームが低優先フレーム及び前記低優先フレームより優先度の高い高優先フレームのいずれであるかを判定するフレーム判定部と、
前記フレームを転送する転送処理部と、
前記転送処理部で転送された前記フレームを送信するフレーム送信部と、
を有し、
前記転送処理部は、
前記フレーム送信部への転送対象の前記低優先フレーム及び前記フレーム送信部への転送対象の前記高優先フレームのうちの、前記転送対象の前記低優先フレームを前記フレーム送信部により送信中、
前記転送対象の前記低優先フレームの未送信部分の長さに対応する時間が基準時間以下である場合、前記フレーム送信部に、前記転送対象の前記低優先フレームの送信を完了させた後に前記転送対象の前記高優先フレームを送信させ、
前記時間が前記基準時間より大きい場合、前記フレーム送信部に、前記転送対象の前記低優先フレームの送信を中断させて前記転送対象の前記高優先フレームを送信させる
ことを特徴とする中継装置。
【請求項２】
前記基準時間は、前記転送対象の前記高優先フレームの遅延許容時間以下の時間である
ことを特徴とする請求項１に記載の中継装置。
【請求項３】
前記基準時間は、前記遅延許容時間からインターフレームギャップに対応する時間を減算した時間以下の時間である
ことを特徴とする請求項２に記載の中継装置。
【請求項４】
前記高優先フレームは、第１の高優先フレームと前記第１の高優先フレームより優先度が低い第２の高優先フレームとに分類され、
前記転送処理部は、前記第１の高優先フレームを前記転送対象の前記高優先フレームとする
ことを特徴とする請求項１から３のいずれか１項に記載の中継装置。
【請求項５】
前記転送処理部は、前記第２の高優先フレームを破棄する
ことを特徴とする請求項４に記載の中継装置。
【請求項６】
前記転送処理部は、
前記第２の高優先フレームを格納する高優先フレームバッファを有し、
前記第１の高優先フレームの前記フレーム送信部からの送信が完了したとき、前記第２の高優先フレームを前記転送対象の前記高優先フレームとする
ことを特徴とする請求項４に記載の中継装置。
【請求項７】
前記転送処理部は、前記低優先フレームを格納する低優先フレームバッファを有する
ことを特徴とする請求項１から６のいずれか１項に記載の中継装置。
【請求項８】
前記フレーム判定部は、前記フレームのヘッダ又はペイロード内に定義された識別子に基づき、前記フレームが前記低優先フレーム及び前記高優先フレームのいずれであるかを判定する
ことを特徴とする請求項１から７のいずれか１項に記載の中継装置。
【請求項９】
前記長さに対応する時間は、データ長で定義される値であり、
前記基準時間は、データ長で定義される値である
ことを特徴とする請求項１から８のいずれか１項に記載の中継装置。
【請求項１０】
中継装置によりフレームを転送するフレーム転送方法であって、
入力されたフレームが低優先フレーム及び前記低優先フレームより優先度の高い高優先フレームのいずれであるかを判定するフレーム判定ステップと、
前記フレームを転送する転送処理ステップと、
前記転送処理ステップで転送された前記フレームを送信するフレーム送信ステップと、
を有し、
前記フレーム送信ステップは、
前記転送処理ステップにおける転送対象の前記低優先フレーム及び前記転送処理ステップにおける転送対象の前記高優先フレームのうちの、前記転送対象の前記低優先フレームを送信中、
前記転送対象の前記低優先フレームの未送信部分の長さに対応する時間が基準時間以下である場合、前記転送対象の前記低優先フレームの送信が完了した後に前記転送対象の前記高優先フレームを送信し、
前記時間が前記基準時間より大きい場合、前記転送対象の前記低優先フレームの送信を中断し、前記転送対象の前記高優先フレームを送信する
ことを特徴とするフレーム転送方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、中継装置及びその中継装置によるフレーム転送方法に関する。
【背景技術】
【０００２】
近年、産業分野においてイーサネット（登録商標。以下同様。）化が進み、製造現場ではＰＬＣ（Ｐｒｏｇｒａｍｍａｂｌｅ  Ｌｏｇｉｃ  Ｃｏｎｔｒｏｌｌｅｒ）、インバータ、センサ等のＦＡ（Ｆａｃｔｏｒｙ  Ａｕｔｏｍａｔｉｏｎ）機器を繋いだ通信ネットワークが構築されている。このような通信ネットワークは、産業用ネットワーク又はＦＡネットワークと称される。ＦＡネットワークでは、処理精度を向上させるために、複数のＦＡ機器が時刻を同期させ、連携して動作することが重要である。ＦＡネットワークでは、高速且つ高精度のモーション制御を実現するため、中継装置が遅延時間に敏感なフレーム（以下、高優先フレームと記載）を所定時間内で転送することが要求される。一方、遅延時間に敏感でないフレームを低優先フレームと記載する。高優先フレームとしては、ＦＡ機器間の時刻同期処理に用いられるフレーム等が挙げられる。
【０００３】
一般的な中継装置では、転送制御方式として、フレーム全体を蓄積してから出力するストアアンドフォワード方式が用いられている。ストアアンドフォワード方式では、転送フレームを優先度毎に数種類のクラスに分類し、優先度が高いフレームから順次転送するＰｒｉｏｒｉｔｙ  Ｑｕｅｕｉｎｇを用いることで、転送遅延時間を短くすることが可能となる。しかしながら、ストアアンドフォワード方式は、Ｐｒｉｏｒｉｔｙ  Ｑｕｅｕｉｎｇを用いたとしても、遅延ジッタを完全に排除することができない。その理由は、ストアアンドフォワード方式では、低優先フレームを送信している間に高優先フレームが入力された場合、低優先フレームの送信が完了するまで待つ必要があるためである。したがって、出力ポートで高優先フレームの転送と低優先フレームの転送との競合が発生する限り、低優先フレームの最大フレーム長と伝送速度から決定される遅延ジッタが高優先フレームの転送遅延時間に付加される可能性がある。よって、高優先フレームの遅延ジッタを完全に排除するには、出力ポートにおける高優先フレームの転送と低優先フレームの転送との競合を回避することが要求される。
【０００４】
特許文献１は、前述した、競合時の高優先フレームの遅延ジッタを低減する技術を記載している。特許文献１に記載されたＥｔｈｅｒｎｅｔ（登録商標。以下同様。）フレーム転送装置では、低優先フレームを送信中に高優先フレームが入力された場合、低優先フレームの送信を中断し、高優先フレームを低優先フレームの間に割り込ませて送信することで、高優先フレームの遅延ジッタを低減させる。このＥｔｈｅｒｎｅｔフレーム転送装置では、割り込んで送信する高優先フレームの前後に、挿入位置を示す制御コードを付加して送信している。
【０００５】
また、特許文献２は、上述したような競合が発生した場合、低優先フレームの送信を中断し、高優先フレームを優先して送信する通信装置を記載している。特許文献２に記載された通信装置では、低優先フレームを送信するのと並行して再送バッファに送信フレームを格納しており、競合に伴って送信を中断した低優先フレームを高優先フレーム送信後に再送している。具体的には、この通信装置では、高優先フレームと低優先フレームとを互いに異なるキュー部に格納し、高優先フレームの送信が可能なタイミングで低優先フレームが送信中であった場合、低優先フレームの転送を中断し、高優先フレームを送信している。ここで、低優先フレームは、高優先フレームとの競合で転送が中断され、高優先フレームの送信が完了するまでの間にも、再送用バッファにも蓄積されており、高優先フレームの送信が完了した後には、この再送用バッファから低優先フレームを出力させることで、低優先フレームの再送処理が実施される。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２００６−５４６５３号公報
【特許文献２】特開２００９−２６７８２２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
しかしながら、特許文献１に記載されたＥｔｈｅｒｎｅｔフレーム転送装置では、高優先フレームの挿入位置を示す制御コードとして汎用ネットワークの規格外の符号を用いる構成となっており、汎用ネットワークで利用するためには上述した符号の挿入及び除去を実施するＥｔｈｅｒｎｅｔフレーム転送装置を送信側と受信側に最低１台ずつ設置する必要がある。したがって、特許文献１に記載の技術では、規格外の符号を除去する用途だけのためにＥｔｈｅｒｎｅｔフレーム転送装置を組み込む分だけ、高優先フレームの転送遅延時間が増大するだけでなく、導入コストもかかるという課題がある。また、この技術を適用する場合、伝送経路上の装置は、規格外の符号が付与されたフレームを廃棄しないことが要求される。
【０００８】
また、特許文献２に記載された通信装置を用いたフレーム転送方法では、上述したように、高優先フレームの送信が完了した後の低優先フレームの再送処理が再送用バッファから低優先フレームを出力させることで実施されることになる。しかしながら、このフレーム転送方法では、高優先フレームとの競合で転送を中断した低優先フレームが後段装置でエラーフレームとして廃棄されるため、出力ポートでの競合に伴って転送を中断した低優先フレームのフレーム長が長い程、転送効率が悪くなる。
【０００９】
本発明は、上述のような実状に鑑みてなされたものであり、その目的は、優先度の判定がなされたフレームとして高優先フレームと低優先フレームとが存在する場合に、規格外の符号をフレームに付すことなく且つ低優先フレームの転送効率の悪化を抑えて、高優先フレームを低遅延で低優先フレームより優先的に送信することが可能な中継装置、及びその中継装置を用いたフレーム転送方法を提供することにある。
【課題を解決するための手段】
【００１０】
上述の課題を解決するために、本発明の一形態に係る中継装置は、入力されたフレームが低優先フレーム及び前記低優先フレームより優先度の高い高優先フレームのいずれであるかを判定するフレーム判定部と、前記フレームを転送する転送処理部と、前記転送処理部で転送された前記フレームを送信するフレーム送信部と、を有し、前記転送処理部は、前記フレーム送信部への転送対象の前記低優先フレーム及び前記フレーム送信部への転送対象の前記高優先フレームのうちの、前記転送対象の前記低優先フレームを前記フレーム送信部により送信中、前記転送対象の前記低優先フレームの未送信部分の長さに対応する時間が基準時間以下である場合、前記フレーム送信部に、前記転送対象の前記低優先フレームの送信を完了させた後に前記転送対象の前記高優先フレームを送信させ、前記時間が前記基準時間より大きい場合、前記フレーム送信部に、前記転送対象の前記低優先フレームの送信を中断させて前記転送対象の前記高優先フレームを送信させることを特徴とする。
【００１１】
本発明の一形態に係るフレーム転送方法は、中継装置によりフレームを転送するフレーム転送方法であって、入力されたフレームが低優先フレーム及び前記低優先フレームより優先度の高い高優先フレームのいずれであるかを判定するフレーム判定ステップと、前記フレームを転送する転送処理ステップと、前記転送処理ステップで転送された前記フレームを送信するフレーム送信ステップと、を有し、前記フレーム送信ステップは、前記転送処理ステップにおける転送対象の前記低優先フレーム及び前記転送処理ステップにおける転送対象の前記高優先フレームのうちの、前記転送対象の前記低優先フレームを送信中、前記転送対象の前記低優先フレームの未送信部分の長さに対応する時間が基準時間以下である場合、前記転送対象の前記低優先フレームの送信が完了した後に前記転送対象の前記高優先フレームを送信し、前記時間が前記基準時間より大きい場合、前記転送対象の前記低優先フレームの送信を中断し、前記転送対象の前記高優先フレームを送信することを特徴とする。
【発明の効果】
【００１２】
本発明によれば、中継装置において、優先度が判定されたフレームとして高優先フレームと低優先フレームとが存在する場合に、規格外の符号をフレームに付すことなく且つ低優先フレームの転送効率の悪化を抑えて、高優先フレームを低遅延で低優先フレームより優先的に送信することが可能になる。
【図面の簡単な説明】
【００１３】
【図１】実施の形態１に係る中継装置の一構成例を示す機能ブロック図である。
【図２】図１に示される中継装置の判定部に入力される一連のフレームを時系列で示す模式図である。
【図３】図１に示される中継装置における低優先フレームバッファの処理の一例を示すフロー図である。
【図４】図１に示される中継装置における高優先フレームバッファ及び選択部の処理の一例を示すフロー図である。
【図５】図１に示される中継装置においてフレーム選択制御部が実行する、低優先フレームバッファに出力する出力制御信号の決定処理の一例を示すフロー図である。
【図６】図１に示される中継装置においてフレーム選択制御部が実行する、選択部に出力する出力制御信号の決定処理の一例を示すフロー図である。
【図７】図１に示される中継装置においてフレーム選択制御部が実行する、高優先フレームバッファに出力する出力制御信号の決定処理の一例を示すフロー図である。
【図８】図１に示される中継装置における処理の一例を示すフロー図である。
【図９】実施の形態２に係る中継装置の一構成例を示す機能ブロック図である。
【図１０】図９に示される中継装置における処理の一例を示すフロー図である。
【図１１】実施の形態１及び２に係る中継装置の変形例の構成の一部を示すハードウェア構成図である。
【図１２】実施の形態１及び２に係る中継装置の他の変形例の構成の一部を示すハードウェア構成図である。
【発明を実施するための形態】
【００１４】
以下に、本発明の実施の形態について、図面を参照しながら説明する。実施の形態では、中継装置及びその中継装置によりフレームを転送するフレーム転送方法について説明する。
【００１５】
《１》実施の形態１
実施の形態１に係る中継装置及びその中継装置によるフレーム転送方法について、図１から図８を参照しながら説明する。図１は、実施の形態１に係る中継装置の一構成例を示す機能ブロック図である。なお、図１において、太線の矢印は、主信号となるフレーム（フレーム信号）の流れを示し、細線の矢印は、制御のための信号の流れを示している。
【００１６】
図１に示されるように、実施の形態１に係る中継装置１は、フレーム判定部２、転送処理部３、及びフレーム送信部４を有する。中継装置１は、ＦＡ機器等の装置間を中継する装置であり、ある装置（前段装置と称す）から送信されたフレームを他の装置（後段装置と称す）に転送する。ここで、フレームとは、イーサネットフレームを指すものとするが、これに限らず、同様のフレームに適用することができる。
【００１７】
また、中継装置１は、図示しないが、伝送媒体を介してＦＡ機器等の装置を接続する複数のポート（通信ポート）を有することができる。なお、伝送媒体としては、例えば、光ファイバケーブル、ＳＴＰ（Ｓｈｉｅｌｄｅｄ  Ｔｗｉｓｔ  Ｐａｉｒ  ｃａｂｌｅ）、ＵＴＰ（Ｕｎｓｈｉｅｌｄｅｄ  Ｔｗｉｓｔ  Ｐａｉｒ  ｃａｂｌｅ）、同軸ケーブルなどが挙げられる。なお、ポートが物理的なポート（物理ポート）であることを前提に説明するが、これに限らず、中継装置１におけるポートは、仮想的なポート（仮想ポート）とすることもできる。例えば、中継装置１は、１又は複数の物理ポートを有し、その物理ポートの一部又は全部を仮想的に分割して、複数のポートを構成することもできる。また、中継装置１は、中継装置１の全体を制御する制御部（図示せず）を備えることもできる。
【００１８】
フレーム判定部２は、入力されたフレーム（受信フレーム）が低優先フレーム及び高優先フレームのいずれであるかを判定する。高優先フレームは、低優先フレームより優先度の高いフレームである。フレーム判定部２は、複数（Ｎ個とする）のフレームを入力し、Ｎ個のフレームのうちのそれぞれのフレームが低優先フレーム及び高優先フレームのいずれであるかを判定することができる。ここで、Ｎは、２以上の整数であり、中継装置１が有するポートの数とすることができる。この場合、Ｎ個のフレームはＮ個のポートで受信されたフレームとなる。
【００１９】
フレーム判定部２は、Ｎ個のフレームについての判定を同時に可能な（並列に可能な）構成を有することができる。例えば、図１に示されるように、フレーム判定部２は、Ｎ個の入力経路を有するとともに、Ｎ個の入力経路のそれぞれに接続されたＮ個の判定部２−１〜２−Ｎを有することができる。判定部２−ｋ（ｋは１〜Ｎの整数）は、ｋ番目の入力経路から入力された（ｋ番目のポートから入力された）フレーム（フレーム＃ｋ）が低優先フレーム及び高優先フレームのいずれであるかを判定する。なお、図１における紙面の都合上、判定部２−ｋを明示しないが、判定部２−１〜２−Ｎのいずれかであることを意味する。
【００２０】
また、フレーム判定部２は、例えば、図２に示されるようなフレームのヘッダ又はペイロード内に定義された識別子を優先度の判定の基準として使用することができる。つまり、フレーム判定部２は、入力されたフレームが低優先フレーム及び高優先フレームのいずれであるかを、そのフレームのヘッダ又はペイロード内に定義された識別子に基づき、判定することができる。この場合、判定部２−ｋが、フレーム＃ｋのヘッダ又はペイロード内に定義された識別子に基づき、低優先フレーム及び高優先フレームのいずれであるかを判定する。なお、図２は、中継装置１の判定部２−ｋに入力される一連のフレームを時系列で示す模式図である。図２に示されるフレームは、イーサネットフレームであり、ヘッダ、ペイロード、及びＦｒａｍｅ  Ｃｈｅｃｋ  Ｓｅｑｕｅｎｃｅ（ＦＣＳ）で構成されている。
【００２１】
また、判定部２−ｋは、優先度を判定後、その対象となったフレーム（低優先フレーム又は高優先フレーム）を転送処理部３に伝送するが、その際、低優先フレームであった場合と高優先フレームであった場合とで転送処理部３の内部における伝送先を異ならせることで、低優先フレームと高優先フレームとを振り分けることができる。例えば、低優先フレームを後述する多重部６に振り分け、高優先フレームを後述するカットスルー転送処理部５−１〜５−Ｎのうちの１つに振り分けることができる。以下、判定部２−ｋがフレームの振り分けを行うことを前提に説明するが、例えば、判定部２−ｋが優先度の判定結果とともに、フレームを転送処理部３に出力し、転送処理部３が内部で低優先フレームと高優先フレームとを振り分け、互いに違う処理を行うように構成することもできる。
【００２２】
また、中継装置１は、前段装置から送信されたフレームを後段装置に転送するために、その後段装置が接続されたポート（つまり、そのフレームの出力先（転送先、宛先）となるポート）である出力ポートの選出を行い、その選出結果に従い、フレームを出力ポートに振り分け、その出力ポートから送信する。このような処理のうち、フレーム判定部２は、フレームの出力ポートの選出を行い、転送処理部３の内部における伝送先を異ならせることで、フレームを出力ポートに振り分けることができる。なお、フレーム判定部２が転送先を示す情報とともに、フレームを転送処理部３に出力し、転送処理部３が内部でフレームを転送先毎に振り分けることもできる。
【００２３】
フレーム判定部２におけるフレームの出力ポートの選出及びフレームの出力について、簡単に説明する。例えば、判定部２−ｋは、フレームのヘッダ内に記述された宛先（送信先）のＭＡＣ（Media Access Control）アドレスを読み出し、そのＭＡＣアドレスに従い、内部に格納されたＭＡＣ学習テーブル等の経路選択テーブルを参照して宛先となる後段装置が接続されている出力ポートを選出し、その出力ポートにそのフレームが転送されるように出力する。なお、経路選択テーブルは、出力ポート毎に用意しておくことができる。
【００２４】
フレームの出力に関してより具体的に説明する。判定部２−ｋは、選出された出力ポートがｊ番目のポート（ポートｊ）であった場合、高優先フレームをポートｊに対応した後述のカットスルー転送処理部５−ｊに出力し、低優先フレームを転送先情報（転送先がポートｊ［又はそれに対応した後述の出力選択部４−ｊ］であることを示す情報）とともに後述の多重部６に出力する。ここで、ｊは、ｊ≠ｋを満たす１〜Ｎの整数とする。
【００２５】
このように、判定部２−ｋは、優先度の判定と出力ポート（フレームを出力させるポート）の選出を行い、フレームの優先度及びフレームの出力ポートに基づいて、転送処理部３にフレームを出力する。これにより、フレーム判定部２は、出力ポート毎に高優先フレームと低優先フレームとを振り分けることができる。但し、中継装置１は、出力ポートの選出を転送処理部３より前段で実行する構成であればよく、このような選出を行うポート選出部をフレーム判定部２の前段又は後段に設けることもできる。
【００２６】
転送処理部３は、フレーム判定部２から出力されたフレームを転送する。その転送先は、フレーム送信部４である。フレーム判定部２により優先度が判定された後のフレームは、転送処理部３に伝送され、少なくともその一部のフレームが転送対象となり、フレーム送信部４に転送される。
【００２７】
そして、実施の形態１の主たる特徴として、転送処理部３は、フレーム送信部４への転送対象の低優先フレーム及びフレーム送信部４への転送対象の高優先フレームのうちの、転送対象の低優先フレームをフレーム送信部４により送信中、転送対象の低優先フレームの未送信部分の長さに対応する時間（以下、所要時間と称す）が基準時間以下である場合、（Ａ）フレーム送信部４に、転送対象の低優先フレームの送信を完了させた後に転送対象の高優先フレームを送信させる。なお、転送対象のフレームとは、転送処理部３での転送対象のフレームを指すが、結果的に中継装置１による前段装置から後段装置への転送対象のフレームとなる。
【００２８】
一方で、転送処理部３は、転送対象の低優先フレームをフレーム送信部４により送信中、所要時間が基準時間より大きい場合、（Ｂ）フレーム送信部４に、転送対象の低優先フレームの送信を中断させて転送対象の高優先フレームを送信させる。
【００２９】
また、基準時間は、転送対象の高優先フレームの遅延許容時間以下の時間であることが好ましい。ここで、高優先フレームの遅延許容時間は、中継装置１が組み込まれるシステムで規定される許容時間とすることができる。特に、基準時間は、高優先フレームの遅延許容時間から図２に示されるようなインターフレームギャップ（ＩＦＧ：Ｉｎｔｅｒ  Ｆｒａｍｅ  Ｇａｐ）に対応する時間を減算した時間以下の時間であることがより好ましい。ここで、ＩＦＧはイーサネットフレームの場合、前のフレームの末尾から現フレームのプリアンブルまでの間隔であり、最小１２ｂｙｔｅのフレーム送信間隔を指す。
【００３０】
また、ここでは、転送処理部３が上述したような時間に関する条件を満たすか否かを判定して、その結果に基づきフレーム送信部４に対する制御（上記（Ａ）の処理又は上記（Ｂ）の処理）を実行している。但し、フレームの伝送に要する時間は、そのフレームのフレーム長（データ長）と線形の相関があるため、時間に関する条件は、データ長に関する条件と同義であると言える。換言すれば、転送処理部３は、上述したような処理を、実質的に次のような処理を実行することにより実現することもできる。つまり、転送処理部３は、転送対象の低優先フレームの未送信部分のデータ長（未送信データ長）が基準の長さ以下である場合、上記（Ａ）の処理を実行し、未送信データ長が基準の長さより大きい場合、上記（Ｂ）の処理を実行する。上記基準の長さは、転送対象の高優先フレームの遅延許容時間に対応するデータ長以下の長さであることが好ましく、特に、高優先フレームの遅延許容時間に対応するデータ長からＩＦＧのデータ長を減算した長さ以下の長さであることがより好ましい。さらに換言すると、このように時間に関する条件はデータ長に関する条件と同義であると言えるため、上述した長さに対応する時間は、データ長で定義される値とし、上記基準時間は、データ長で定義される値とすることもできる。
【００３１】
また、転送処理部３は、低優先フレームをストアアンドフォワード転送方式で送信するために、低優先フレームを格納するフレームバッファ（例えば、低優先フレームバッファ７）を有することができる。低優先フレームバッファ７は、格納済みの低優先フレームをフレーム送信部４に出力することが可能になっている。また、低優先フレームバッファ７は、低優先フレームの送信が完了するまでその低優先フレームを一時的に格納しておけばよく、その場合、完了した段階でその低優先フレームを破棄すればよい。また、低優先フレームバッファ７は、低優先フレームのうち送信がなされたデータから部分的に破棄していくこともできる。
【００３２】
また、低優先フレームバッファ７は、例えば、ポートｊに対応した合計Ｎ個のバッファ（図示せず）を有することができる。低優先フレームバッファ７は、ｊ番目のバッファに、判定部２−ｋから出力された低優先フレームのうち宛先がポートｊに対応する低優先フレームを格納するように構成しておけばよい。ｊ番目のバッファは、格納された低優先フレームをフレーム送信部４に出力することが可能になっている。例えば、ｊ番目のバッファは、後述する出力選択部４−ｊに接続しておくことで、宛先に応じた出力選択部４−ｊへ低優先フレームを出力することができる。
【００３３】
また、転送処理部３は、低優先フレームバッファ７とともに多重部６を有することができる。多重部６は、判定部２−１〜２−Ｎに接続され、判定部２−１〜２−Ｎは、入力されたフレームのうち低優先フレームを多重部６に出力する。多重部６は、Ｎ個のポート分の低優先フレーム多重化して、多重化した低優先フレームを低優先フレームバッファ７に出力することが可能になっている。
【００３４】
この多重化に関して補足する。多重部６は、判定部２−１〜２−Ｎに接続されたＮ個のバッファを有し、このうちのｋ番目のバッファに判定部２−ｋから出力された低優先フレームを入力し、その低優先フレームの全体が書き込まれた段階で、その低優先フレームを低優先フレームバッファ７（低優先フレームバッファ７におけるその低優先フレームの宛先に対応するｊ番目のバッファ）に出力する。なお、ｊ≠ｋとする。また、多重部６は、内部の複数のバッファ（例えばｋ番目のバッファとｋ＋２番目のバッファ）において低優先フレームの蓄積が完了するタイミングが同時であった場合には、予め定めた順序（例えば、小さい番号のバッファを優先するなど）に従い、低優先フレームを順次出力する。そのため、多重部６は、書き込み時のレートより高レートで、低優先フレームを低優先フレームバッファ７に出力することが可能となっている。例えば、Ｎ＝８で且つ前段装置と中継装置１とのリンク速度（前段装置とフレームが入力されるポートとのリンク速度）が１Ｇｂｐｓであった場合、多重部６の内部のバッファにおける出力側（低優先フレームバッファ７への書き込み側）は、例えば１０Ｇｂｐｓなど、８Ｇｂｐｓ以上の通信帯域を確保しておけばよい。この例では、多重部６は、内部の８個のバッファのそれぞれに最大１Ｇｂｐｓで低優先フレームを書き込むことになるが、低優先フレームバッファ７への出力を１０Ｇｂｐｓで実行できるようにすることで、書き込み側（入力側）より出力側の速度の方が速いため、バッファが溢れることによるフレームの廃棄を回避することができる。そして、このような多重部６の処理は、１Ｇｂｐｓ×８ポートの通信を１０Ｇｂｐｓ×１本の通信に多重化する処理に相当する。
【００３５】
なお、転送処理部３は、例えば、Ｎ−１個の判定部２−ｋから出力された低優先フレームをそれぞれ格納するＮ−１個のバッファを有するＮ個の低優先フレームバッファを設けることもできる。この場合、ｊ番目の出力ポートに対応する低優先フレームバッファには、Ｎ−１個の判定部２−ｋ（ｊ≠ｋ）から出力された低優先フレームが順次格納される。但し、低優先フレームについては、出力ポート毎に実行する処理が同じであるため、図１に示されるような多重部６及び低優先フレームバッファ７を設けることで、回路規模を小さくすることができる。
【００３６】
さらに、転送処理部３は、高優先フレームをカットスルー転送方式で送信するために、高優先フレームの転送用のＮ個のカットスルー転送処理部５−１〜５−Ｎを有することができる。１番目のカットスルー転送処理部５−１は、図１に示されるように、選択部１１、高優先フレームバッファ１２、セレクタ１３、及びフレーム選択制御部１４を有することができる。カットスルー転送処理部５−１は、その前段に判定部２−２〜２−Ｎが接続され、カットスルー転送処理部５−１の後段に後述する出力選択部４−１が接続されている。また、カットスルー転送処理部５−１は、低優先フレームバッファ７に接続されている。なお、ｊ番目のカットスルー転送処理部５−ｊは、カットスルー転送処理部５−１と同様の構成とすることができる。すなわち、カットスルー転送処理部５−ｊは、その前段に判定部２−１〜２−Ｎのうちの判定部２−ｊ以外の判定部が接続され、カットスルー転送処理部５−ｊの後段に後述する出力選択部４−ｊが接続されている。また、カットスルー転送処理部５−ｊは、低優先フレームバッファ７に接続されている。よって、以下の説明では、カットスルー転送処理部５−１における符号１１〜１４で示される各構成要素を、カットスルー転送処理部５−ｊにおける各構成要素として取り扱う。
【００３７】
ここで、カットスルー転送処理部５−ｊに判定部２−１〜２−Ｎのうちの判定部２−ｊ以外の判定部が接続されていることから分かるように、ｊはｊ≠ｋを満たす１〜Ｎの間の整数である。但し、図１に示される構成例では、高優先フレームの転送経路としてｊ＝ｋとなる経路を含まない中継装置１を例示していることから、ｊ≠ｋとしているが、ｊ＝ｋとなる経路を含むように中継装置１の構成を変更することも可能である。このように構成が変更された中継装置は、受信したフレームのヘッダに記述された送信先のＭＡＣアドレスと送信元のＭＡＣアドレスとが同じであっても、そのまま同じポートで返信することになる。
【００３８】
カットスルー転送処理部５−ｊにおいて、選択部１１は、フレーム判定部２によりｊ番目の出力ポート（ポートｊ）に振り分けられた高優先フレームを入力して集約し、複数の高優先フレームが集約された場合（同時に存在した場合）、その中から転送対象の高優先フレームを選択し、後段に出力する。なお、１つの高優先フレームのみが入力された場合にはその高優先フレームを後段に出力すればよい。
【００３９】
選択部１１における複数フレーム入力時の選択処理の一例について説明する。中継装置１が組み込まれるシステムにおいて、高優先フレームは、第１の高優先フレームと第１の高優先フレームより優先度が低い第２の高優先フレームとに分類されることもできる。つまり、高優先フレームは、その中でも優先度が２以上に分類されているものとすることができる。このような場合において、複数の高優先フレームが同時に存在した場合（高優先フレーム同士の競合が生じた場合）、選択部１１がそのシステムで規定されている優先度に基づいて優先度の判定を行い、１つの第１の高優先フレームを転送対象の高優先フレームとして選択して後段に出力する。これにより、転送処理部３は、１つの第１の高優先フレームを転送対象の高優先フレームとすることができる。転送対象として選択されなかった（選出に漏れた）高優先フレームである第２の高優先フレームは、選択部１１が破棄すればよい。このように、実施の形態１における転送処理部３は、第２の高優先フレームを破棄するように構成することができる。
【００４０】
また、選択部１１は、同じ優先度の高優先フレーム同士の競合が発生した場合、それらを出力した判定部２−ｋの中の最も若い番号の判定部２−ｋから出力された高優先フレームを転送対象の高優先フレームとして選択するなど、予め定められた規則に従い、転送対象の高優先フレームを選択すればよい。この場合にも、実施の形態１に係る転送処理部３は、選択されなかった高優先フレームを破棄するように構成することができる。
【００４１】
また、選択部１１は、１つの高優先フレームの入力中に他の高優先フレームが入力されたときには、既に入力中の高優先フレームをそのまま選択した状態を維持することが望ましい。但し、選択部１１は、このような場面においても、高優先フレーム同士の優先度の比較を行い、その結果に基づき、より優先的に優先度の高い方の高優先フレームを転送対象として選択し（優先度の低い方の高優先フレームが既に後段に出力中であった場合にはその出力を中止し、優先度の高い方の高優先フレームを割り込みで転送対象として選択し）、後段に出力するようにしてもよい。
【００４２】
また、中継装置１に選択部１１を設けた場合で、且つ上述した基準時間を転送対象の高優先フレームの遅延許容時間に基づき定義される時間とする場合、この遅延許容時間は、選択部１１で選択されている高優先フレームの遅延許容時間とすることができ、高優先フレームの中でも優先度に応じて基準時間を異ならせることができる。但し、転送対象の高優先フレームの遅延許容時間は、高優先フレームであれば優先度に依らず、例えば、最も優先度が高い高優先フレームの遅延許容時間とすることもできる。
【００４３】
そして、選択部１１は、このようにして後段に出力する高優先フレームを選択するだけでなく、その主たる処理として、その出力先の選択も行う。具体的に説明すると、選択部１１には、その後段に高優先フレームバッファ１２及びセレクタ１３が接続されており、選択部１１は、上記（Ａ）の処理と上記（Ｂ）の処理とを切り替えるために、高優先フレームを高優先フレームバッファ１２に出力するか、セレクタ１３に出力するかの選択も行う。
【００４４】
高優先フレームバッファ１２について説明する。中継装置１では、上記（Ａ）の処理を行うために、転送対象となる高優先フレームも一時的に格納（蓄積）することになる。高優先フレームバッファ１２は、このような高優先フレームの格納を行うフレームバッファの例である。高優先フレームバッファ１２は、選択部１１から出力された高優先フレームを格納し、格納された高優先フレームを後段のセレクタ１３に出力する。但し、高優先フレームは低優先フレームに比べて遅延時間に敏感であるため、高優先フレームバッファ１２は、低優先フレームバッファ７とは異なり、高優先フレームをその全体が格納されていない状態でも出力するように制御されることが望ましい。
【００４５】
カットスルー転送処理部５−ｊにおいて、セレクタ１３は、選択部１１から直接出力された高優先フレームと、高優先フレームバッファ１２から出力された高優先フレームとのうち、後述する出力選択部４−ｊに出力するフレームを選択する。
【００４６】
カットスルー転送処理部５−ｊにおけるフレーム選択制御部１４は、選択部１１、高優先フレームバッファ１２、及びセレクタ１３を制御するとともに、低優先フレームバッファ７も制御する。この制御の具体例については後述するが、カットスルー転送処理部５−ｊにおけるフレーム選択制御部１４は、これらの構成要素を制御することで、次のように、ｊ番目の出力ポートの送信状況（出力選択部４−ｊの送信状況）に基づいて送信対象のフレームを選択させる処理を行う。
【００４７】
すなわち、このフレーム選択制御部１４は、後述する出力選択部４−ｊへ転送中の低優先フレームと出力選択部４−ｊへの転送対象の高優先フレームが存在した場合、つまり、出力選択部４−ｊから高優先フレームの送信が可能なタイミングで低優先フレームが出力選択部４−ｊへ転送中（これにより低優先フレームが出力選択部４−ｊから送信中）であった場合、上述した所要時間と基準時間との比較を行い、所要時間が基準時間以下である場合、出力選択部４−ｊにこの低優先フレームの送信を完了させた後にこの高優先フレームを送信させ（上記（Ａ）の処理を行い）、上述した所要時間が基準時間より大きい場合、出力選択部４−ｊにこの低優先フレームの送信を中断させてこの高優先フレームを送信させる（上記（Ｂ）の処理を行う）。なお、フレーム選択制御部１４は、このようにしてフレーム送信部４から送信するフレームを実質的に選択するため、送信フレーム選択部と称することもできる。
【００４８】
次に、フレーム送信部４について説明する。フレーム送信部４は、転送処理部３で転送されたフレームを送信する。フレームの送信先（出力先）は、上述したように、例えば、そのフレームのヘッダに記述された宛先のＭＡＣアドレスで特定される後段装置であり、このフレームは、この後段装置が接続されたポートを介して送信される。
【００４９】
フレーム送信部４は、図１に示されるように、例えば、転送処理部３で転送されたフレームを選択し、送信するＮ個の出力選択部４−１〜４−Ｎを有することができる。ｊ番目の出力選択部４−ｊは、カットスルー転送処理部５−ｊに接続されるとともに、ｊ番目の出力ポート（ポートｊ）に接続される。また、出力選択部４−ｊは、低優先フレームバッファ７にも接続される。低優先フレームバッファ７にＮ個のバッファが含まれる場合、上述したように、出力選択部４−ｊはｊ番目のバッファに接続される。
【００５０】
そして、フレーム選択制御部１４の制御により、ポートｊに対応した出力選択部４−ｊで送信対象として選択されるフレームは、低優先フレーム及び高優先フレームのいずれか一方となる。具体的に説明すると、出力選択部４−ｊは、カットスルー転送処理部５−ｊのセレクタ１３から入力され得る高優先フレームと、低優先フレームバッファ７から入力され得るポートｊに出力される低優先フレームとのうち、いずれか一方を、送信対象として選択し、ポートｊを介して後段装置に出力する。なお、出力選択部４−ｊは、このようないずれか一方のフレームを選択するように出力の切り替えを行うため、出力切替部又は出力制御部と称することもできる。
【００５１】
このように、中継装置１では、フレーム判定部２、多重部６、低優先フレームバッファ７、及びフレーム送信部４により低優先フレームに対するストアアンドフォワード転送経路が形成されているとともに、フレーム判定部２、選択部１１、セレクタ１３、及びフレーム送信部４により、高優先フレーム全体を受信し終わる前に宛先のアドレスを解析すると同時に転送を開始するカットスルー転送経路が形成されている。なお、フレーム選択制御部１４は、高優先フレームバッファ１２に格納される高優先フレームについても、１フレーム蓄積される前に出力するように高優先フレームバッファ１２を制御することもできる。
【００５２】
次に、図３から図７を参照しながら、低優先フレームバッファ７、高優先フレームバッファ１２、選択部１１、及びフレーム選択制御部１４のより具体的な処理例の一つを説明する。図３は、低優先フレームバッファ７の処理の一例を示すフロー図、図４は、高優先フレームバッファ１２及び選択部１１の処理の一例を示すフロー図である。また、図５は、フレーム選択制御部１４が実行する、低優先フレームバッファ７に出力する出力制御信号の決定処理の一例を示すフロー図、図６は、フレーム選択制御部１４が実行する、選択部１１に出力する出力制御信号の決定処理の一例を示すフロー図、図７は、フレーム選択制御部１４が実行する、高優先フレームバッファ１２に出力する出力制御信号の決定処理の一例を示すフロー図である。なお、以下の説明では、有意な論理レベル（論理値）を有する信号を有意論理信号と称し、無意な論理レベルを有する信号を無意論理信号と称する。
【００５３】
図３に示されるように、低優先フレームバッファ７は、前段装置からのフレームの受信が開始されると、そのうちの低優先フレームを格納する（ステップＳ３１）。次いで、低優先フレームバッファ７は、フレーム（低優先フレーム）が格納された状態であるか否かを判定し（ステップＳ３２）、ＮＯの場合には処理を終了し、フレームのデータが受信されると図３の処理が繰り返される。ここで、図３に示されるステップＳ３１〜Ｓ３７の処理例は、ポートｊ毎に、つまり出力選択部４−ｊ毎に実行される。例えば、低優先フレームバッファ７は、多重部６から受信した低優先フレームを宛先のポート（出力ポート）ｊ毎に格納する。
【００５４】
また、図３に示されないが、ステップＳ３１では、低優先フレームバッファ７が、低優先フレームの蓄積数を示す情報、及び低優先フレームの未送信部分（未出力部分）のデータ長を示すバッファ情報（バッファ信号）を、宛先のポートｊに対応したカットスルー転送処理部５−ｊのフレーム選択制御部１４に通知する。なお、低優先フレームの蓄積数を示す情報は、そのポートｊに対する出力を待機している低優先フレームの個数を示す情報を指す。低優先フレームの蓄積数は、低優先フレームバッファ７にフレーム全体を蓄積した段階でインクリメントし、低優先フレームバッファ７から読み出しが完了した段階でデクリメントする。また、同じ宛先の低優先フレームが複数格納されている場合において、フレームの未送信部分とは、最初にその出力選択部４−ｊに出力されるべき低優先フレームの未送信部分を指す。また、イーサネットフレームにおいて、データ長は、ヘッダのタイプ／長さフィールドに記述されており、単に「Ｌｅｎｇｔｈ（又はＬｅｎｇｔｈ長）」などと称されることもある。低優先フレームバッファ７は、未送信部分のデータ長を、例えば、フレームのヘッダにあるフレーム長（フレーム全体のデータ長）から出力済みのデータ長を差し引くことで算出することができる。
【００５５】
低優先フレームバッファ７は、ステップＳ３２でＹＥＳの場合、フレーム選択制御部１４から出力された出力制御信号が有意論理信号であるか否かを判定し（ステップＳ３３）、有意論理信号になるまで待機する。低優先フレームバッファ７は、有意論理信号になった段階で（ステップＳ３３でＹＥＳの場合）、格納されている低優先フレームの出力選択部４−ｊに対する出力を開始する（ステップＳ３４）。つまり、ステップＳ３４において、低優先フレームバッファ７は、フレーム選択制御部１４からの出力制御信号が有意論理信号であった場合、ポートｊを宛先とする低優先フレームを出力可能と判定し、出力選択部４−ｊにその低優先フレームを出力する。後述するが、フレーム選択制御部１４は、低優先フレームバッファ７のバッファ情報、並びに後述する高優先フレームバッファ１２のフレーム情報及び選択部１１からの入力通知情報に基づき、出力制御信号を有意論理信号及び無意論理信号のいずれかにし、低優先フレームバッファ７に出力する。
【００５６】
その後、低優先フレームバッファ７は、再度、ステップＳ３３と同様に出力制御信号が有意論理信号であるか否かを判定し（ステップＳ３５）、ＹＥＳの場合、低優先フレームの出力が完了したか否かを判定する（ステップＳ３６）。低優先フレームバッファ７は、ステップＳ３６でＹＥＳの場合、ステップＳ３２に戻ってフレームが格納された状態であるか否かを判定し、ステップＳ３６でＮＯの場合、ステップＳ３５に戻って出力制御信号が有意論理信号であるか否かを判定する。一方で、ステップＳ３５でＮＯの場合（つまり、無意論理信号である場合）、低優先フレームバッファ７は、低優先フレームの出力を中断し（ステップＳ３７）、ステップＳ３２に戻って、フレームが格納された状態であるか否かを判定する。
【００５７】
図４に示されるように、高優先フレームバッファ１２は、前段装置からのフレームの受信が開始されると、フレーム（高優先フレーム）がその一部でも格納された状態であるか否かを判定する（ステップＳ４１）。なお、図４に示されるステップＳ４１〜Ｓ４９の処理例は、選択部１１及び高優先フレームバッファ１２がポートｊ毎に設けられていることからも分かるように、ポートｊ毎に、つまり出力選択部４−ｊ毎に実行される。
【００５８】
ステップＳ４１でＹＥＳの場合、選択部１１は、新たに入力された高優先フレームがあるか否か、つまり高優先フレームバッファ１２に格納された高優先フレーム以外にポートｊに出力すべき高優先フレームが入力されたか否かを判定する（ステップＳ４２）。ステップＳ４２でＹＥＳの場合、選択部１１が、入力された高優先フレーム（複数入力された場合には、その中から選択された高優先フレーム）を高優先フレームバッファ１２に出力し、高優先フレームバッファ１２がその高優先フレームを格納する（ステップＳ４３）。つまり、選択部１１は、高優先フレームバッファ１２に既に高優先フレームが格納されている場合、新たに入力された高優先フレームをすぐに出力できないため、その入力された高優先フレームを高優先フレームバッファ１２に格納する。
【００５９】
また、図４に示されないが、ステップＳ４３において、高優先フレームバッファ１２は、格納された高優先フレームの蓄積数を示すバッファ情報（バッファ信号）を、フレーム選択制御部１４に出力する。高優先フレームの蓄積数は、高優先フレームバッファ１２に高優先フレームの書き込みを開始した段階でインクリメントし、高優先フレームバッファ１２から読み出しが完了した段階でデクリメントする。なお、書き込み開始の段階で蓄積数をインクリメントすることで、ステップＳ４１において高優先フレームの一部でも格納された場合にＹＥＳと判定させることができる。
【００６０】
ステップＳ４３の処理後、並びにステップＳ４２でＮＯの場合、高優先フレームバッファ１２は、自身に対するフレーム選択制御部１４から出力された出力制御信号が有意論理信号であるか否かを判定する（ステップＳ４４）。高優先フレームバッファ１２は、この出力制御信号が有意論理信号になるまで待機し、有意論理信号となった段階で（ステップＳ４４でＹＥＳの場合）、格納されている高優先フレーム（複数存在する場合には先に格納された高優先フレーム）が出力可能であると判定し、その高優先フレームをセレクタ１３に出力する（ステップＳ４５）。これにより、その高優先フレームは、セレクタ１３経由で対応する出力選択部４−ｊに出力可能な状態となる。ステップＳ４５の処理後は、ステップＳ４１に戻り、高優先フレームバッファ１２がフレームの格納状態を判定する。
【００６１】
一方で、ステップＳ４１でＮＯの場合（高優先フレームバッファ１２が空の状態である場合）、選択部１１は、新たに入力された高優先フレームがあるか否かを判定する（ステップＳ４６）。ステップＳ４６でＮＯの場合、選択部１１及び高優先フレームバッファ１２は処理を終了する。ステップＳ４６でＹＥＳの場合、選択部１１は、自身に対するフレーム選択制御部１４から出力された出力制御信号が有意論理信号であるか否かを判定する（ステップＳ４７）。ステップＳ４７でＹＥＳの場合、選択部１１は、入力されたポートｊを宛先とする高優先フレームを出力可能と判定し、その高優先フレームをセレクタ１３に出力する（ステップＳ４８）。これにより、この高優先フレームは、セレクタ１３経由で対応する出力選択部４−ｊに出力可能な状態となる。
【００６２】
ステップＳ４７でＮＯの場合、選択部１１は、入力された高優先フレームを高優先フレームバッファ１２に出力し、高優先フレームバッファ１２は、その高優先フレームを格納する（ステップＳ４９）。つまり、選択部１１は、フレーム選択制御部１４からの選択部１１に対する出力制御信号が無意論理信号であった場合、選択された高優先フレームを出力不可である（高優先フレームを入力後すぐに出力できない）と判定し、高優先フレームバッファ１２に格納する。選択部１１は、ステップＳ４９においても、ステップＳ４３と同様に、格納された高優先フレームの蓄積数を示すバッファ情報をフレーム選択制御部１４に出力する。ステップＳ４８の処理後、並びにステップＳ４９の処理後は、ステップＳ４１に戻り、高優先フレームバッファ１２がフレームの格納状態を判定する。
【００６３】
また、図４に示されないが、選択部１１は、高優先フレームが入力中であるか否かを示す入力通知情報（入力通知信号）をフレーム選択制御部１４に出力する。この入力通知信号は、ステップＳ４１における高優先フレームの入力時にアサートされ、ステップＳ４３，Ｓ４９における高優先フレームバッファ１２への高優先フレームの出力が完了した段階、又はステップＳ４８におけるセレクタ１３への高優先フレームの出力が完了した段階でデアサートされる。また、後述するが、フレーム選択制御部１４は、この入力通知情報、高優先フレームバッファ１２のバッファ情報、及び低優先フレームバッファ７のバッファ情報に基づき、選択部１１に対する出力制御信号及び高優先フレームバッファ１２に対する出力制御信号を、有意論理及び無意論理のいずれかを示す信号にし、選択部１１及び高優先フレームバッファ１２に対象となる出力制御信号を出力する。
【００６４】
また、セレクタ１３の処理例については図示しないが、セレクタ１３は、選択部１１から直接出力された高優先フレームと、高優先フレームバッファ１２から出力された高優先フレームとのうち、フレーム選択制御部１４からの出力制御信号に基づき、出力選択部４−ｊに出力する高優先フレームを選択する。
【００６５】
図５に示されるように、フレーム選択制御部１４は、低優先フレームバッファ７から出力されたフレームの蓄積数を示す情報を含むバッファ信号に基づき、低優先フレームバッファ７の蓄積数が０より大きいか否かを判定する（ステップＳ５１）。なお、図５に示されるステップＳ５１〜Ｓ５６の処理例は、ポートｊ毎に、つまり出力選択部４−ｊ毎に実行される。ステップＳ５１でＮＯの場合、低優先フレームが格納されていないため、フレーム選択制御部１４は、低優先フレームバッファ７に対して出力制御信号を出力する処理を終了する。
【００６６】
ステップＳ５１でＹＥＳの場合、フレーム選択制御部１４は、選択部１１に対する出力制御信号及び高優先フレームバッファ１２に対する出力制御信号がいずれも無意論理信号であるか否かを判定する（ステップＳ５２）。ステップＳ５２でＹＥＳの場合、フレーム選択制御部１４は、選択部１１から出力された入力通知信号が無意論理信号であるか否かを判定する（ステップＳ５３）。
【００６７】
ステップＳ５３でＹＥＳの場合、フレーム選択制御部１４は、低優先フレームバッファ７に対する出力制御信号を、有意論理信号として出力する（ステップＳ５４）。これにより、低優先フレームの出力が継続される。ステップＳ５３でＮＯの場合、フレーム選択制御部１４は、低優先フレームバッファ７から受信したバッファ信号に含まれる未送信部分に対応する所要時間が基準時間以下であるか否かを判定し（ステップＳ５５）、ＹＥＳの場合にはステップＳ５４の処理を実行する。これにより、低優先フレームの出力が継続される。一方で、ステップＳ５５でＮＯの場合、フレーム選択制御部１４は、低優先フレームバッファ７に対する出力制御信号を、無意論理信号として出力する（ステップＳ５６）。これにより、低優先フレームの出力が中断される。ステップＳ５４の処理後、並びにステップＳ５６の処理後は、ステップＳ５１に戻り、フレーム蓄積数の判定を行う。
【００６８】
このように、フレーム選択制御部１４は、低優先フレームバッファ７における低優先フレームの蓄積数が１以上であり、且つ選択部１１及び高優先フレームバッファ１２に対する出力制御信号が無意論理信号である場合に、ステップＳ５４の処理（低優先フレームバッファ７に対する出力制御信号を有意論理信号として出力する処理）を行うことで、低優先フレームの出力を許可する。
【００６９】
図６に示されるように、フレーム選択制御部１４は、図５に示されるステップＳ５３の処理と同様に（但し、ここでは逆の判定を記載する）、選択部１１から出力された入力通知信号が有意論理信号であるか否かを判定する（ステップＳ６１）。なお、図６に示されるステップＳ６１〜Ｓ６６の処理例は、ポートｊ毎に、つまり出力選択部４−ｊ毎に実行される。
【００７０】
ステップＳ６１でＮＯの場合、高優先フレームが入力されていないため、フレーム選択制御部１４は、選択部１１に対して出力制御信号を出力する処理を終了する。ステップＳ６１でＹＥＳの場合、フレーム選択制御部１４は、高優先フレームバッファ１２から出力されたフレーム蓄積数を示す情報を含むバッファ信号に基づき、高優先フレームバッファ１２のフレーム蓄積数が０であるか否かを判定する（ステップＳ６２）。ここで、高優先フレームバッファ１２から出力されるバッファ信号は、上述したように、フレームの蓄積開始時点で蓄積数をインクリメントするため、ステップＳ６２では、少なくともフレームの一部が格納された段階でもＮＯと判定される。ステップＳ６２でＹＥＳの場合、フレーム選択制御部１４は、低優先フレームバッファ７に対する出力制御信号が無意論理信号であるか否かを判定する（ステップＳ６３）。
【００７１】
ステップＳ６３でＹＥＳの場合、フレーム選択制御部１４は、選択部１１に対する出力制御信号を、有意論理信号として出力する（ステップＳ６４）。これにより、選択部１１に入力された高優先フレームがそのまま出力される。ステップＳ６３でＮＯの場合、フレーム選択制御部１４は、低優先フレームバッファ７から受信したバッファ信号に含まれる未送信部分に対応する所要時間が基準時間より大きいか否かを判定し（ステップＳ６５）、ＹＥＳの場合にはステップＳ６４の処理を実行する。これにより、選択部１１に入力された高優先フレームがそのまま出力される。一方で、ステップＳ６５でＮＯの場合、フレーム選択制御部１４は、選択部１１に対する出力制御信号を、無意論理信号として出力する（ステップＳ６６）。これにより、選択部１１に入力された高優先フレームは、高優先フレームバッファ１２に格納される。ステップＳ６２でＮＯの場合にも、ステップＳ６６の処理がなされる。ステップＳ６４の処理後、並びにステップＳ６６の処理後は、ステップＳ６１に戻り、入力通知信号の判定を行う。
【００７２】
このように、フレーム選択制御部１４は、選択部１１から出力された入力通知信号が有意論理信号であり且つ高優先フレームバッファ１２における高優先フレームの蓄積数が０の場合に、ステップＳ６４の処理（選択部１１に対する出力制御信号を有意論理信号として出力する処理）を行い、高優先フレームの出力を許可する。
【００７３】
図７に示されるように、フレーム選択制御部１４は、高優先フレームバッファ１２から出力されたフレーム蓄積数を示す情報を含むバッファ信号に基づき、高優先フレームバッファ１２のフレーム蓄積数が０より大きいか否かを判定する（ステップＳ７１）。ここで、高優先フレームバッファ１２から出力されるバッファ信号は、上述したように、フレームの蓄積開始時点で蓄積数をインクリメントするため、ステップＳ７１では、少なくともフレームの一部が格納された段階でもＹＥＳと判定される。なお、図７に示されるステップＳ７１〜Ｓ７４の処理例は、ポートｊ毎に、つまり出力選択部４−ｊ毎に実行される。
【００７４】
ステップＳ７１でＮＯの場合、高優先フレームが格納されていないため、フレーム選択制御部１４は、高優先フレームバッファ１２に対して出力制御信号を出力する処理を終了する。ステップＳ７１でＹＥＳの場合、フレーム選択制御部１４は、図６に示されるステップＳ６３の処理と同様に、低優先フレームバッファ７に対する出力制御信号が無意論理信号であるか否かを判定する（ステップＳ７２）。
【００７５】
ステップＳ７２でＹＥＳの場合、フレーム選択制御部１４は、高優先フレームバッファ１２に対する出力制御信号を、有意論理信号として出力する（ステップＳ７３）。これにより、高優先フレームバッファ１２に格納された高優先フレームが出力される。ステップＳ７２でＮＯの場合、フレーム選択制御部１４は、高優先フレームバッファ１２に対する出力制御信号を、無意論理信号として出力する（ステップＳ７４）。これにより、高優先フレームバッファ１２に格納された高優先フレームは、格納されたままとなる。ステップＳ７３の処理後、並びにステップＳ７４の処理後は、ステップＳ７１に戻り、高優先フレームバッファ１２のフレーム蓄積数の判定を行う。
【００７６】
このように、フレーム選択制御部１４は、高優先フレームバッファ１２における高優先フレームの蓄積数が１以上であり且つ低優先フレームバッファ７に対する出力制御信号が無意論理信号である場合に、ステップＳ７３の処理（高優先フレームバッファ１２に対する出力制御信号を有意論理信号として出力する処理）を行うことで、高優先フレームの出力を許可する。
【００７７】
次に、フレーム選択制御部１４のセレクタ１３に対する入力選択信号の決定処理の例について説明する。この決定処理の例については図示しないが、フレーム選択制御部１４は、まず、高優先フレームバッファ１２から入力された高優先フレームの蓄積数を示すバッファ信号に従い、高優先フレームバッファ１２が空である（蓄積数が０である）か否かを判定する。そして、フレーム選択制御部１４は、空でない場合、高優先フレームバッファ１２から出力された高優先フレームを選択させるような入力選択信号をセレクタ１３に出力する。一方、フレーム選択制御部１４は、空である場合、選択部１１から直接出力された高優先フレームを選択させるような入力選択信号をセレクタ１３に出力する。
【００７８】
より具体的には、フレーム選択制御部１４では、選択部１１及び高優先フレームバッファ１２のうち、有意論理信号として出力制御信号が出力されている方から出力された高優先フレームを選択させるような入力選択信号を、セレクタ１３に出力する。ここで、選択部１１に対する出力制御信号及び高優先フレームバッファ１２に対する出力制御信号が共に無意論理信号として出力されている場合には、セレクタ１３に対する入力選択信号が示す論理値を前値のまま保持しておけばよい。
【００７９】
換言すれば、フレーム選択制御部１４は、低優先フレームを送信中で高優先フレームが送信できないと判定した場合と、高優先フレームバッファ１２に先着の高優先フレームが格納されている場合とにおいて、高優先フレームバッファ１２から出力された高優先フレームをセレクタ１３に選択させる入力選択信号を出力する。そして、フレーム選択制御部１４は、それ以外の場合において、選択部１１から出力された高優先フレームをセレクタ１３に選択させる入力選択信号を出力する。セレクタ１３は、このような入力選択信号に従い、入力する高優先フレームを選択し、後段の出力選択部４−ｊに出力する。
【００８０】
次に、フレーム選択制御部１４の出力選択部４−ｊに対する入力選択信号の決定処理の例について説明する。この決定処理の例については図示しないが、フレーム選択制御部１４は、低優先フレームバッファ７に対する出力制御信号が有意論理信号である場合、低優先フレームバッファ７から出力される低優先フレームを選択させる入力選択信号を、出力選択部４−ｊに出力する。また、フレーム選択制御部１４は、選択部１１及び高優先フレームバッファ１２のいずれか一方に対する出力制御信号が有意論理信号である場合、セレクタ１３から出力される高優先フレームを選択させる入力選択信号を、出力選択部４−ｊに出力する。また、フレーム選択制御部１４は、選択部１１、高優先フレームバッファ１２、及び低優先フレームバッファ７に対する出力制御信号が全て無意論理信号である場合、出力選択部４−ｊに対する入力選択信号が示す論理値を前値のまま保持しておけばよい。
【００８１】
出力選択部４−ｊは、このような入力選択信号に従い、セレクタ１３から出力された高優先フレーム及び低優先フレームバッファ７から出力された低優先フレームのいずれか一方のフレームを選択し、ポートｊを介して後段装置に送信する。
【００８２】
以上に説明されるように、フレーム選択制御部１４が、各ポートｊについて、高優先フレームと低優先フレームの入力状態を管理し、高優先フレームの遅延許容時間を確保しつつ、転送効率が高いフレームを選択し、出力選択部４−ｊが、選択されたフレームの送信を行う。特に、実施の形態１における特徴である、低優先フレームの送信と高優先フレームの送信とが競合した場合の処理例について、抽出して説明すると、以下のようになる。
【００８３】
まず、フレーム選択制御部１４は、低優先フレームの送信中に高優先フレームの送信要求があった場合、次のようにして送信対象のフレームを選出する。なお、フレーム選択制御部１４は、低優先フレームバッファ７から出力されたバッファ信号に含まれる未送信部分の長さを示す情報に基づき、低優先フレームが送信中であることを判定することができる。また、フレーム選択制御部１４は、選択部１１から出力された入力通知信号又は高優先フレームバッファ１２から出力されたフレームの蓄積数を示すバッファ信号に基づき、高優先フレームの送信要求があったことを判定することができる。
【００８４】
図５に示されるステップＳ５５，Ｓ５６において、フレーム選択制御部１４は、［所要時間］≦［基準時間］の不等式が成立しない場合（［所要時間］＞［基準時間］の不等式が成立する場合）、低優先フレームバッファ７に対する出力制御信号を無意論理信号として出力する。上述したように、所要時間は、低優先フレームバッファ７から出力されたバッファ信号から取得した低優先フレームの未送信部分の長さに対応する時間とすることができる。また、基準時間は、［高優先フレームの遅延許容時間］−［ＩＦＧに対応する時間］とすることができる。
【００８５】
ステップＳ５６の処理の結果、低優先フレームバッファ７は、図３に示されるステップＳ３７において、低優先フレームの出力を中断する。さらに、ステップＳ５６の結果、フレーム選択制御部１４は、図６に示されるステップＳ６５の処理でＹＥＳと判定された後のステップＳ６４の処理として、選択部１１に対する出力制御信号を有意論理信号として出力する。さらに、ステップＳ６４の処理の結果、選択部１１が、図４に示されるステップＳ４８の処理として、高優先フレームを直接セレクタ１３に出力するとともに、フレーム選択制御部１４がセレクタ１３に対して選択部１１から出力された高優先フレームを選択させる入力選択信号を出力し、且つ出力選択部４−ｊに対してセレクタ１３から出力された高優先フレームを出力させる入力選択信号を出力する。これにより、高優先フレームの出力が開始される。
【００８６】
ステップＳ５５，Ｓ５６の処理後のステップＳ６４，Ｓ４８の処理により、この中継装置１を組み込むシステムで規定されている高優先フレームの遅延許容時間を確保することができる。特に、基準時間として［高優先フレームの遅延許容時間］−［ＩＦＧに対応する時間］を採用することで、フレーム選択制御部１４は、ＩＦＧに対応する時間を確保した後に、選択部１１に対する出力制御信号を有意論理信号として出力することができるため、結果として、後段装置がＩＦＧを検出できるようになる。
【００８７】
なお、低優先フレームは、１フレーム分、全て格納された状態にならないと送信処理が開始されないため、図３に示されるステップＳ３７の処理のように、低優先フレームの送信が即座に中断された場合にも、送信が中断された低優先フレームの少なくとも未送信部分は、低優先フレームバッファ７に格納されている。しかし、送信が中断された低優先フレームは、上位の通信プロトコルで再送されることを期待して、低優先フレームバッファ７に格納している当該フレームの送信中断箇所からフレーム末尾までのフレームデータを廃棄することができる。代替処理として、低優先フレームバッファ７は、フレーム全体の出力が完了するまでそのフレームのデータを保持しておき、送信中断後に再度送信が可能な状態になったときに、そのフレームの先頭から再送させることもできる。
【００８８】
一方、フレーム選択制御部１４は、図５に示されるステップＳ５５，Ｓ５４において、［所要時間］≦［基準時間］の不等式が成立する場合、低優先フレームバッファ７に対する出力制御信号を有意論理信号のまま維持することで、低優先フレームの送信を継続させている。また、ステップＳ５４の処理の結果、図６に示されるステップＳ６５，Ｓ６６において、フレーム選択制御部１４は、低優先フレームの送信が完了するまでの間、選択部１１に対する出力制御信号を無意論理信号として出力する。ここで、図６に示されるステップＳ６５でＹＥＳとなった段階で、選択部１１に対する出力制御信号が有意論理信号として出力されるが、この段階では、既に低優先フレームの送信は完了している。但し、低優先フレームバッファ７は、低優先フレームバッファ７の該当フレームの未送信部分がなくなったときに、フレーム選択制御部１４に低優先フレームの送信完了を通知するか、又は、フレーム選択制御部１４がその未送信部分を示すバッファ信号から低優先フレームの送信完了を判定し、送信完了と判定された段階で、選択部１１に対する出力制御信号を有意論理信号として出力してもよい。また、ステップＳ６６の処理の結果、図４に示されるステップＳ４９において、選択部１１は、入力された高優先フレームを高優先フレームバッファ１２に格納する。
【００８９】
一方で、フレーム選択制御部１４は、高優先フレーム送信中に低優先フレームの送信要求があった場合、高優先フレームの送信を継続させるが、その際、次のようにして送信対象のフレームを選出する。なお、フレーム選択制御部１４は、選択部１１から出力された入力通知信号又は高優先フレームバッファ１２から出力されたフレームの蓄積数を示すバッファ信号に基づき、高優先フレームが送信中であることを判定することができる。また、フレーム選択制御部１４は、低優先フレームバッファ７から出力されたバッファ信号に含まれるフレームの蓄積数を示す情報に基づき、低優先フレームの送信要求があったことを判定することができる。
【００９０】
高優先フレームの送信と送信のタイミング（転送タイミング）が競合した低優先フレームに関し、フレーム選択制御部１４は、図５に示されるステップＳ５２，Ｓ５６において、低優先フレームバッファ７に対する出力制御信号を無意論理信号として出力することで、この低優先フレームを低優先フレームバッファ７に格納させておく。また、フレーム選択制御部１４は、図５に示されるステップＳ５４において、高優先フレームの送信空き時間（選択部１１及び高優先フレームバッファ１２に対する出力制御信号が無意論理信号になり、且つ選択部１１からの入力通知信号が無意論理信号になっている時間）に低優先フレームバッファ７に対する出力制御信号を有意論理信号として出力する。ステップＳ５４の処理の結果、低優先フレームバッファ７は、図３に示されるステップＳ３４において低優先フレームの出力を開始し、これにより低優先フレームの送信が開始される。なお、低優先フレームバッファ７は、フレーム選択制御部１４からの指示がなくても、入力された低優先フレームを格納するため、中継装置１は、高優先フレームの送信空き時間に低優先フレームが受信された場合、低優先フレームを後段装置に送信できる。
【００９１】
最後に、高優先フレームと低優先フレームの送信タイミングが同時であった場合における、送信対象のフレームの選出手順について説明する。この場合、フレーム選択制御部１４は、選択部１１に対する出力制御信号を有意論理信号として出力することで高優先フレームの送信を開始し、低優先フレームバッファ７に対する出力制御信号を無意論理信号として出力することで、低優先フレームを送信しないように制御する。
【００９２】
次に、実施の形態１に係るフレーム転送方法について説明する。このフレーム転送方法は、中継装置１によりフレームを転送する方法であって、次に説明するようなフレーム判定ステップ、転送処理ステップ、及びフレーム送信ステップを有する。フレーム判定ステップは、入力されたフレームが低優先フレーム及び高優先フレームのいずれであるかを判定する。このフレーム判定ステップは、例えば、フレーム判定部２により実行される。転送処理ステップは、フレームを転送する。この転送処理ステップは、例えば、転送処理部３により実行される。フレーム送信ステップは、この転送処理ステップで転送されたフレームを送信する。このフレーム送信ステップは、例えば、フレーム送信部４により実行される。フレームは、中継装置１により、例えば、複数の前段装置のいずれかから複数の後段装置のうちの転送先に該当する後段装置へ送信（転送）されることになる。
【００９３】
そして、上記のフレーム送信ステップは、上記転送処理ステップにおける転送対象の低優先フレーム及び上記転送処理ステップにおける転送対象の高優先フレームのうちの、転送対象の低優先フレームを送信中、転送対象の低優先フレームの未送信部分の長さに対応する時間（所要時間）が基準時間以下である場合、転送対象の低優先フレームの送信が完了した後に転送対象の高優先フレームを送信し、所要時間が基準時間より大きい場合、転送対象の低優先フレームの送信を中断し、転送対象の高優先フレームを送信する。
【００９４】
図８を参照しながら、実施の形態１に係るフレーム転送方法の一例について、つまり中継装置１における処理の一例について説明する。図８は、中継装置１における処理の一例を示すフロー図である。換言すれば、実施の形態１に係る中継装置は、図１に示される中継装置１の構成例及び図３から図７を参照して説明した具体例に限らず、ここで説明するような処理を行うように構成することもできる。
【００９５】
まず、フレーム判定部２は、入力されたフレーム（受信フレーム）の優先度を読み取り、そのフレームが高優先度であるか（つまり、高優先フレームであるか）否かを判定する（ステップＳ８１）。フレーム判定部２は、判定の結果、高優先度であった場合（ステップＳ８２でＹＥＳ）、転送処理部３にその高優先フレームを出力し、転送処理部３は、入力された高優先フレーム（同じ宛先の高優先フレーム）が複数存在した場合、そのうち１つを選択する（ステップＳ８３）。次いで、転送処理部３は、低優先フレームが送信中であるか否かを判定する（ステップＳ８４）。
【００９６】
ステップＳ８４でＹＥＳの場合、転送処理部３は、送信中の低優先フレームの未送信部分の長さに対応する所要時間が基準時間以下であるか否かを判定する（ステップＳ８５）。ステップＳ８５でＹＥＳの場合、転送処理部３は、入力された高優先フレーム（複数存在した場合にはステップＳ８３で選択された高優先フレーム）をバッファ等の記憶部に格納し（ステップＳ８６）、低優先フレームの送信が完了したか否かを判定する（ステップＳ８７）。転送処理部３は、ステップＳ８７でＹＥＳとなるまで、つまり低優先フレームの送信が完了するまで待ち、格納された高優先フレームをフレーム送信部４に出力し、フレーム送信部４がその高優先フレームを送信する（ステップＳ８８）。
【００９７】
ステップＳ８４でＮＯの場合には、転送処理部３及びフレーム送信部４は、ステップＳ８５〜Ｓ８７の処理を経ずにそのまま、ステップＳ８８へ進み、入力された高優先フレーム（複数存在した場合にはステップＳ８３で選択された高優先フレーム）を送信する。ステップＳ８２でＮＯの場合には、転送処理部３は、入力された低優先フレームをバッファ等の記憶部に格納し、フレーム全体が格納された段階でフレーム送信部４に出力し、フレーム送信部４がその低優先フレームを送信し（ステップＳ８９）、処理を終了する。なお、この低優先フレームを送信中に高優先フレームの入力があった場合には、図８に示される処理が開始される。
【００９８】
ステップＳ８５でＮＯの場合、転送処理部３は、低優先フレームのフレーム送信部４への出力を中断することで、フレーム送信部４による低優先フレームの送信を中断させる（ステップＳ９０）。次いで、転送処理部３及びフレーム送信部４は、ステップＳ８４でＮＯの場合に実行されるステップＳ８８の処理と同様に、高優先フレームを送信する（ステップＳ９１）。次いで、転送処理部３は、その高優先フレームの送信が完了したか否かを判定する（ステップＳ９２）。転送処理部３は、ステップＳ９２でＹＥＳとなるまで、つまりその高優先フレームの送信が完了するまで待ち、処理を終了する。
【００９９】
なお、ステップＳ９０において送信が中断された低優先フレームは、例えば、再度、前段装置から入力され、図８に示される処理が実行されることで、高優先フレームの送信との競合がなければ、送信させることができる。
【０１００】
以上に説明したように、中継装置１では、フレーム種別（フレームの優先度）に応じ、遅延時間に敏感な（遅延時間の要求が厳しい）高優先フレームに対しては宛先が決定したら即座に送信を開始することで一定の遅延時間以下での送信を保証できるカットスルー転送方式での送信が可能となり、遅延時間に敏感でない低優先フレームについてはフレームを蓄積後に送信可能なストアアンドフォワード転送方式での送信が可能となる。
【０１０１】
そして、中継装置１のように、中継装置に上述した２種類の転送方式を適用すると、出力ポートにおいて両経路からのフレームの送信タイミングが衝突した場合の競合制御（転送方式の切り替え制御）が必要である。中継装置１によれば、実効速度を考慮し、転送効率が高い方のフレームが送信されるように、この競合制御を行うことができる。
【０１０２】
具体的には、中継装置１によれば、低優先フレームの送信中に高優先フレームが送信可能なタイミングとなった場合には、低優先フレームの未送信部分を送信するのに要する所要時間と基準時間とに基づき、実効速度を考慮して、高優先フレームの送信を低優先フレームの送信より優先させつつ、競合時に常に低優先フレームの送信が中断されないようにして低優先フレームの転送効率の悪化を抑えることができる。また、中継装置１によれば、基準時間に基づき高優先フレームに対する最大の送信待機時間を決めているため、高優先フレームの遅延ジッタを抑制することができる。また、中継装置１によれば、フレームの転送時に規格外の符号をフレームに付す必要がないため、前段装置及び後段装置にこのような符号を挿入及び除去する機能を備える必要がなく、且つ伝送路上の装置にこのような符号が付与されたフレームを破棄しないような機能を備える必要もなく、フレームの転送を行うことができる。
【０１０３】
このように、実施の形態１によれば、中継装置において、優先度が判定されたフレームとして高優先フレームと低優先フレームとが存在する場合に（出力ポートにおいて高優先フレームの送信と低優先フレームの送信とが競合する場合に）、規格外の符号をフレームに付すことなく且つ低優先フレームの転送効率の悪化を抑えて、高優先フレームを低遅延で低優先フレームより優先的に送信することが可能になる。特に、実施の形態１によれば、基準時間として高優先フレームの遅延許容時間以下の時間を採用することで、高優先フレームを遅延許容時間内に送信すること、つまり高優先フレームの遅延許容時間を確保することができる。そして、特に、ＦＡネットワークでは、高速、高精度のモーション制御を実現するために、遅延に敏感な特定のフレームを規定時間内に送信することが要求されるため、このような中継装置を組み込むことが有益である。
【０１０４】
さらに、実施の形態１によれば、中継装置に高優先フレーム同士の競合に対応させた選択部（選択部１１として説明）を備えることで、その中継装置を組み込むシステムにおいて、装置同士が同時に高優先フレームの通信を開始しないようなトークン方式又は時分割多重方式を応用した制御方式を採用しなくてもよくなる。また、実施の形態１によれば、高優先フレームの中で最も優先度が高い高優先フレームのみを送信対象として処理することで、最も優先度の高い高優先フレームを低遅延で優先的に転送することができる。
【０１０５】
《２》実施の形態２
実施の形態２に係る中継装置及びフレーム転送方法について、図９及び図１０を参照しながら説明する。図９は、実施の形態２に係る中継装置の一構成例を示す機能ブロック図である。図９において、図１と同じ又は対応する機能を持つ部位には、図１で用いられた符号と同じ符号が付されている。以下、実施の形態２について、実施の形態１との相違点について説明するが、実施の形態２では、実施の形態１における様々な例が適用できる。
【０１０６】
実施の形態１に係る中継装置１では、選択部１１で出力ポート毎に集約した高優先フレームの中から、例えば最も高い優先度の高優先フレームのみを選択するなどして、他の高優先フレームを破棄したが、高優先フレームを破棄しないように構成することもできる。
【０１０７】
図９に示されるように、実施の形態２に係る中継装置１ａは、このような高優先フレームの破棄を行わないように構成されている。具体的には、中継装置１ａは、図１に示される中継装置１における転送処理部３の代わりに転送処理部３ａを有する点が異なる。転送処理部３ａは、図９に示されるように、多重部６及び低優先フレームバッファ７を有するとともに、Ｎ個のカットスルー転送処理部９−１〜９−Ｎを有する。
【０１０８】
１番目のカットスルー転送処理部９−１は、図９に示されるように、選択部１１ａ、Ｎ−１個の高優先フレームバッファ１２−２〜１２−Ｎ、及びフレーム選択制御部１４ａを有することができる。高優先フレームバッファ１２−２〜１２−Ｎは、その前段に判定部２−２〜２−Ｎがそれぞれ接続されている。カットスルー転送処理部９−１は、その後段に出力選択部４−１が接続されている。また、カットスルー転送処理部９−１は、低優先フレームバッファ７に接続されている。以下の説明では、Ｎ−１個の高優先フレームバッファについて区別なく説明する場合、高優先フレームバッファを「高優先フレームバッファ１２ａ」と称す。
【０１０９】
なお、ｊ番目のカットスルー転送処理部９−ｊは、カットスルー転送処理部９−１と同様の構成とすることができる。すなわち、カットスルー転送処理部９−ｊは、その前段に判定部２−１〜２−Ｎのうちの判定部２−ｊ以外の判定部が接続され、カットスルー転送処理部９−ｊの後段に出力選択部４−ｊが接続されている。また、カットスルー転送処理部９−ｊは、低優先フレームバッファ７に接続されている。また、カットスルー転送処理部９−ｊは、Ｎ−１個の高優先フレームバッファ１２−１〜１２−（ｊ−１），１２−（ｊ＋１），１２−Ｎ（但し、便宜上、ｊが１でもＮでもない特別な例で表現している）を有する。ここで、カットスルー転送処理部９−ｊでは、例えば、ｋ番目の高優先フレームバッファ１２−ｋが判定部２−ｋと接続されている。
【０１１０】
カットスルー転送処理部９−１では、図９に示されるように、選択部１１ａの前段に、入力ポート（出力ポート以外のＮ−１個のポート）の数の高優先フレームバッファ１２−２〜１２−Ｎが並列に配置されている。高優先フレームバッファ１２−２〜１２−Ｎは、判定部２−２〜２−Ｎから出力された高優先フレームをそれぞれ格納する。高優先フレームバッファ１２ａは、転送対象となる高優先フレームを一時的に格納（蓄積）するフレームバッファの例である。高優先フレームバッファ１２ａは、高優先フレームが入力中であるか否かを示す入力通知情報（入力通知信号）をフレーム選択制御部１４ａに出力する。この入力通知信号は、高優先フレームの入力時（つまり、フレームの先頭の入力時）にアサートされ、選択部１１ａへの高優先フレームの出力が完了した段階でデアサートされる。また、この入力通知信号には、優先度を示す情報に対応する信号を含めることができる。
【０１１１】
選択部１１ａは、高優先フレームバッファ１２−２〜１２−Ｎから出力される高優先フレームのうち、フレーム選択制御部１４ａから出力される出力制御信号に従い、出力選択部４−１に出力する入力フレームを選択し、出力選択部４−１に出力する。
【０１１２】
フレーム選択制御部１４ａは、実施の形態１におけるフレーム選択制御部１４と同様に、低優先フレームバッファ７からのバッファ情報（バッファ信号）の入力を行う。また、フレーム選択制御部１４ａは、高優先フレームバッファ１２ａから出力された入力通知信号、及び低優先フレームバッファ７から出力されたバッファ信号に基づき、選択部１１ａからＮ−１個の高優先フレームバッファ１２ａを順番に読み出させるような出力制御信号を、高優先フレームバッファ１２ａ及び選択部１１ａに対して出力する。
【０１１３】
例えば、フレーム選択制御部１４ａは、Ｎ−１個の高優先フレームバッファ１２ａから出力されうるＮ−１個の入力通知信号のうち有意論理信号として出力されている高優先フレームバッファ１２ａを判定し、例えば優先度が高い順及び入力ポートの番号順の少なくとも一方などの順番に従い、高優先フレームバッファ１２ａに対する出力制御信号を有意論理信号として出力するとともに、選択部１１ａに対して高優先フレームバッファ１２ａの番号を示す情報が含まれた出力制御信号を出力する。
【０１１４】
また、実施の形態１におけるフレーム選択制御部１４と同様に、フレーム選択制御部１４ａは、低優先フレームバッファ７への出力制御信号の出力、及び出力選択部４−１への入力選択信号の出力を行う。これらの出力制御信号及び入力選択信号も、実施の形態１と同様に、高優先フレームバッファ１２ａから出力された入力通知信号、及び低優先フレームバッファ７から出力されたバッファ信号に基づき、有意論理信号及び無意論理信号のいずれか一方として出力すればよい。但し、フレーム選択制御部１４ａは、例えば、Ｎ−１個の高優先フレームバッファ１２ａから出力されうるＮ−１個の入力通知信号のうち１つでも有意論理信号として出力されている場合に、高優先フレームが入力されていると判定すればよい。
【０１１５】
上述したように、高優先フレームバッファ１２ａは、入力通知信号を高優先フレームの入力時（つまり、フレームの先頭の入力時）にアサートさせている。これにより、選択部１１ａは、競合が発生しない場合又は選択部１１ａへの出力対象となった場合に、フレーム全体が格納される前に高優先フレームバッファ１２ａから読み出しを開始することができ、高優先フレームのカットスルー転送方式での転送を実現することができる。
【０１１６】
優先度の違いに応じた、選択部１１ａにおける高優先フレームの選択処理（フレーム選択制御部１４ａによる選択制御処理）の一例について説明する。実施の形態１で説明した通り、中継装置１ａが組み込まれるシステムにおいて、高優先フレームは、第１の高優先フレームと第１の高優先フレームより優先度が低い第２の高優先フレームとに分類されることもできる。つまり、高優先フレームは、その中でも優先度が２以上に分類されているものとすることができる。このような場合において、複数の高優先フレームが同時に存在した場合（高優先フレーム同士の競合が生じた場合）、フレーム選択制御部１４ａは、そのシステムで規定されている優先度に基づいて優先度の判定を行い、１つの第１の高優先フレームを転送対象の高優先フレームとして選択して、その高優先フレームを出力するような出力制御信号を、選択部１１ａ及びその高優先フレームが格納された高優先フレームバッファ１２ａに対して出力する。これにより、転送処理部３ａは、１つの第１の高優先フレームを転送対象の高優先フレームとすることができる。
【０１１７】
そして、フレーム選択制御部１４ａは、この第１の高優先フレームの出力選択部４−１からの送信が完了したとき、転送対象として最初に選択されなかった高優先フレームである第２の高優先フレーム（複数存在する場合にはその中から同様に選択された１つ）を転送対象の高優先フレームとして選択して、その高優先フレームを出力するような出力制御信号を、選択部１１ａ及びその高優先フレームが格納された高優先フレームバッファ１２ａに対して出力する。フレーム選択制御部１４ａは、このような処理を、Ｎ−１個の高優先フレームバッファ１２ａが空になるまで継続し、その後、低優先フレームを送信させればよい。
【０１１８】
また、フレーム選択制御部１４ａは、１つの高優先フレームを出力選択部４−１に出力中に他の高優先フレームが入力されたときには、既に出力中の高優先フレームをそのまま出力させておくことが望ましい。但し、フレーム選択制御部１４ａは、このような場面においても、高優先フレーム同士の優先度の比較を行い、その結果に基づき、より優先的に優先度の高い方の高優先フレームを転送対象として選択させることもできる。その場合、優先度の低い方の高優先フレームの出力が中断されることになるため、高優先フレームバッファ１２ａは、フレーム全体が送信されるまでそのフレームを破棄しないようにしておくことが、再送も考慮した場合に望ましいと言える。
【０１１９】
また、上述した基準時間を転送対象の高優先フレームの遅延許容時間に基づき定義される時間とする場合、この遅延許容時間は、選択部１１ａで選択されている高優先フレームの遅延許容時間とすることができ、高優先フレームの中でも優先度に応じて基準時間を異ならせることができる。但し、転送対象の高優先フレームの遅延許容時間は、高優先フレームであれば優先度に依らず、例えば、最も優先度が高い高優先フレームの遅延許容時間とすることもできる。
【０１２０】
このように、カットスルー転送処理部９−１は、判定部２−２〜２−Ｎから同時に出力されたＮ−１個の高優先フレームが入力され、それらの送信タイミングが競合するような場合でも、高優先フレームバッファ１２−２〜１２−Ｎに一時的に格納できる。そして、上述したように、フレーム選択制御部１４ａが、複数の高優先フレームの送信タイミングをずらす（カットスルー転送処理部９−１による転送開始をずらす）ように、高優先フレームバッファ１２−２〜１２−Ｎ及び選択部１１ａを制御することで、例えば、１つの高優先フレームも破棄せず送信させることができる。
【０１２１】
また、図９に示される中継装置１ａは、例えば、カットスルー転送処理部９−１においてＮ−１個の判定部２−２〜２−Ｎから入力される可能性のある、優先度の低い高優先フレームを格納するため、Ｎ−１個の高優先フレームバッファ１２ａを有しているが、これに限ったものではない。例えば、中継装置１ａを組み込むシステムにおいて、同時に通信が許容される高優先フレームの数に制限がある場合、又はある程度の数の破棄を許容する場合、又は高優先フレーム自体、低優先フレームより受信される数が少ないシステムに適用する場合などには、カットスルー転送処理部９−１に、Ｎ−１個（Ｎはポート数）より少ない数の高優先フレームバッファ１２ａを設けることもできる。
【０１２２】
なお、カットスルー転送処理部９−１における処理について説明したが、カットスルー転送処理部９−ｊにおける処理も、出力ポートが異なるだけで（但し、それにより入力ポートの一部も異なる）、基本的にカットスルー転送処理部９−１における処理と同様である。
【０１２３】
次に、図１０を参照しながら、実施の形態２に係るフレーム転送方法の一例について、つまり中継装置１ａにおける処理の一例について説明する。図１０は、中継装置１ａにおける処理の一例を示すフロー図である。換言すれば、実施の形態２に係る中継装置は、図９に示される中継装置１ａの構成例に限らず、ここで説明するような処理を行うように構成することもできる。
【０１２４】
まず、フレーム判定部２は、入力されたフレーム（受信フレーム）の優先度を読み取り、そのフレームが高優先度であるか（つまり、高優先フレームであるか）否かを判定する（ステップＳ１０１）。フレーム判定部２は、判定の結果、高優先度であった場合（ステップＳ１０２でＹＥＳ）、転送処理部３ａにそれらの１又は複数の高優先フレームを出力し、転送処理部３ａは、入力された高優先フレームを格納する（ステップＳ１０３）。次いで、転送処理部３ａは、低優先フレームが送信中であるか否かを判定する（ステップＳ１０４）。
【０１２５】
ステップＳ１０４でＹＥＳの場合、転送処理部３ａは、送信中の低優先フレームの未送信部分の長さに対応する所要時間が基準時間以下であるか否かを判定する（ステップＳ１０５）。ここで、基準時間は、例えば、この時点で、Ｎ−１個の高優先フレームバッファ１２ａに格納されている全ての高優先フレームのうちの最初に転送対象として選択される高優先フレームの遅延許容時間とすることができ、これにより少なくともその高優先フレームを遅延許容時間に送信することができるようになる。但し、格納されている全ての高優先フレームのうちのできるだけ多くを遅延許容時間内に送信できるように、基準時間を短く設定しておいてもよく、例えば単純に、格納されている高優先フレームの数に応じて基準時間を決める（数が多いほど短い基準時間に決める）ようにしてもよい。
【０１２６】
ステップＳ１０５でＹＥＳの場合、転送処理部３ａは、低優先フレームの送信が完了したか否かを判定する（ステップＳ１０６）。転送処理部３ａは、ステップＳ１０６でＹＥＳとなるまで、つまり低優先フレームの送信が完了するまで待ち、格納された高優先フレームを、例えば優先度の高い順番にフレーム送信部４に出力し、フレーム送信部４がその順番に高優先フレームを送信する（ステップＳ１０７）。
【０１２７】
ステップＳ１０４でＮＯの場合には、転送処理部３ａ及びフレーム送信部４は、ステップＳ１０５，Ｓ１０６の処理を経ずにそのまま、ステップＳ１０７へ進み、高優先フレームを順番に送信する。ステップＳ１０２でＮＯの場合には、転送処理部３ａは、入力された低優先フレームを低優先フレームバッファ７に格納し、フレーム全体が格納された段階でフレーム送信部４に出力し、フレーム送信部４がその低優先フレームを送信し（ステップＳ１０８）、処理を終了する。なお、この低優先フレームを送信中に高優先フレームの入力があった場合には、図１０に示される処理が開始される。
【０１２８】
ステップＳ１０５でＮＯの場合、転送処理部３ａは、低優先フレームのフレーム送信部４への出力を中断することで、フレーム送信部４による低優先フレームの送信を中断させる（ステップＳ１０９）。次いで、転送処理部３ａ及びフレーム送信部４は、ステップＳ１０４でＮＯの場合に実行されるステップＳ１０７の処理と同様に、高優先フレームを順番に送信する（ステップＳ１１０）。次いで、転送処理部３ａは、それらの高優先フレームの送信が完了したか否かを判定する（ステップＳ１１１）。転送処理部３ａは、ステップＳ１１１でＹＥＳとなるまで、つまりそれらの高優先フレームの送信が完了するまで待ち、処理を終了する。
【０１２９】
なお、ステップＳ１０９において送信が中断された低優先フレームは、例えば、再度、前段装置から入力され、図１０に示される処理が実行されることで、高優先フレームの送信との競合がなければ、送信させることができる。
【０１３０】
以上に説明したように、中継装置１ａでは、複数の高優先フレームの送信が競合した場合、それらの送信タイミングをずらすことで、例えば、１つの高優先フレームも破棄せず送信させることができる。
【０１３１】
このように、実施の形態２によれば、実施の形態１による効果に加え、高優先フレームの破棄を低減又は無くすことができる。さらに、実施の形態２によれば、ポート単位で高優先フレームの優先制御を実施することができ、特に、入力ポート毎に順番に高優先フレームを読み出す機会を与えることができるため、ポート間の公平性を保つことが可能となる。
【０１３２】
《３》変形例
図１１は、実施の形態１及び２に係る中継装置の変形例の構成の一部を示すハードウェア構成図である。図１に示される中継装置１及び図９に示される中継装置１ａはいずれも、例えば、図１１に示される処理回路６１により構成することができる。処理回路６１は、専用のハードウェアであっても、メモリに格納されるプログラムを実行するＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ、中央処理装置、処理装置、演算装置、マイクロプロセッサ、マイクロコンピュータ、プロセッサ、ＤＳＰ［Ｄｉｇｉｔａｌ  Ｓｉｇｎａｌ  Ｐｒｏｃｅｓｓｏｒ］とも称する）であってもよい。
【０１３３】
処理回路６１が専用のハードウェアである場合、処理回路６１は、例えば、単一回路、複合回路、プログラム化したプロセッサ、並列プログラム化したプロセッサ、ＡＳＩＣ（Ａｐｐｌｉｃａｔｉｏｎ  Ｓｐｅｃｉｆｉｃ  Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔ）、ＦＰＧＡ（Ｆｉｅｌｄ  Ｐｒｏｇｒａｍｍａｂｌｅ  Ｇａｔｅ  Ａｒｒａｙ）、又はこれらを組み合わせたものが該当する。フレーム判定部２、転送処理部３（又は転送処理部３ａ）、及びフレーム送信部４の各部の機能をそれぞれ処理回路で実現してもよいし、各部の機能をまとめて処理回路で実現してもよい。
【０１３４】
処理回路６１がＣＰＵの場合について、ＣＰＵがプロセッサである場合を例に挙げ、図１２を参照しながら説明する。図１２は、実施の形態１及び２に係る中継装置の他の変形例の構成の一部を示すハードウェア構成図である。例えば、図１に示される中継装置１及び図９に示される中継装置１ａはいずれも、図１２に示されるようにメモリ７１及びプロセッサ７２を用いて（例えば、コンピュータにより）構成することができる。より具体的には、図１（又は図９）に示されるフレーム判定部２、転送処理部３（又は転送処理部３ａ）、及びフレーム送信部４の各部の機能は、ソフトウェア、ファームウェア、又はソフトウェアとファームウェアとの組み合わせにより実現される。ソフトウェア及びファームウェアは、プログラムとして記述され、メモリ７１に格納される。プロセッサ７２は、メモリ７１に記憶されたプログラムを読み出して実行することにより、各部の機能を実現する。すなわち、中継装置１（又は中継装置１ａ）は、プロセッサ７２により実行されるときに、上述したフレーム判定ステップ、転送処理ステップ、及びフレーム送信ステップが結果的に実行されることになるプログラムを格納するためのメモリ７１を外部又は内部に備える。
【０１３５】
また、これらのプログラムは、上述したフレーム判定ステップ、転送処理ステップ、及びフレーム送信ステップを有するフレーム転送方法、又はフレーム判定部２、転送処理部３（又は転送処理部３ａ）、及びフレーム送信部４の各部における処理手順を、コンピュータに実行させるものであるとも言える。ここで、メモリとは、例えば、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）、ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）、フラッシュメモリ、ＥＰＲＯＭ（Ｅｒａｓａｂｌｅ  Ｐｒｏｇｒａｍｍａｂｌｅ  ＲＯＭ）、ＥＥＰＲＯＭ（Ｅｌｅｃｔｒｉｃａｌｌｙ  Ｅｒａｓａｂｌｅ  Ｐｒｏｇｒａｍｍａｂｌｅ  ＲＯＭ）等の不揮発性又は揮発性の半導体メモリ、磁気ディスク、フレキシブルディスク、光ディスク、コンパクトディスク、ＤＶＤ（Ｄｉｇｉｔａｌ  Ｖｅｒｓａｔｉｌｅ  Ｄｉｓｃ）等が該当する。
【０１３６】
なお、フレーム判定部２、転送処理部３（又は転送処理部３ａ）、及びフレーム送信部４の各部の機能について、一部を専用のハードウェアとしての処理回路で実現し、一部をソフトウェア及びファームウェアの少なくとも一方で実現するようにしてもよい。このように、処理回路６１は、ハードウェア、ソフトウェア、ファームウェア、又はこれらの組み合わせによって、上述の各機能を実現することができる。また、ソフトウェア及びファームウェアは、ネットワークを介して提供されてもよいし、非一時的な記録媒体に記録されて提供されてもよい。
【符号の説明】
【０１３７】
１，１ａ  中継装置、  ２  フレーム判定部、  ２−１，２−２，２−ｋ，２−Ｎ  判定部、  ３，３ａ  転送処理部、  ４  フレーム送信部、  ４−１，４−２，４−ｊ，４−Ｎ  出力選択部、  ５−１，５−２，５−ｊ，５−Ｎ，９−１，９−２，９−ｊ，９−Ｎ  カットスルー転送処理部、  ６  多重部、  ７  低優先フレームバッファ、  １１，１１ａ  選択部、  １２，１２−２，１２−３，１２−Ｎ  高優先フレームバッファ、  １３  セレクタ、  １４，１４ａ  フレーム選択制御部。
【図１】
2017208743.tif 000003
【図２】
2017208743.tif 000004
【図３】
2017208743.tif 000005
【図４】
2017208743.tif 000006
【図５】
2017208743.tif 000007
【図６】
2017208743.tif 000008
【図７】
2017208743.tif 000009
【図８】
2017208743.tif 000010
【図９】
2017208743.tif 000011
【図１０】
2017208743.tif 000012
【図１１】
2017208743.tif 000013
【図１２】
2017208743.tif 000014