(57)【要約】【課題】通信制御部で行われる通信の優先度制御を行う。【解決手段】実施形態の通信装置は、記憶部と振り分け部とを備える。記憶部は、送信又は受信対象のフレームが記憶される第１記憶領域を参照するためのフレーム情報を、前記フレームの優先度に応じて異なる複数の第２記憶領域に記憶する。振り分け部は、前記フレームの優先度に応じて、前記フレームのフレーム情報を前記複数の第２記憶領域のいずれかに振り分けて記憶させる。【選択図】図９Ｂ
2019057817.tif 000002
【特許請求の範囲】
【請求項１】
送信又は受信対象のフレームが記憶される第１記憶領域を参照するためのフレーム情報を、前記フレームの優先度に応じて異なる複数の第２記憶領域に記憶する記憶部と、
前記フレームの優先度に応じて、前記フレームのフレーム情報を前記複数の第２記憶領域のいずれかに振り分けて記憶させる振り分け部と、
を備える通信装置。
【請求項２】
前記フレーム情報から特定される前記フレームの送信又は受信処理を要求する通信処理要求部、
を更に備える請求項１に記載の通信装置。
【請求項３】
前記フレームの優先度は、前記フレームの送信を中止して、他のフレームの送信を優先させることができるか否かを示す情報を含み、
前記振り分け部は、前記フレームの送信を中止して、他のフレームの送信を優先させることができるか否かを示す情報に応じて、前記フレームのフレーム情報を前記複数の第２記憶領域のいずれかに振り分けて記憶させる、
請求項１に記載の通信装置。
【請求項４】
前記振り分け部は、前記フレームに含まれる情報から前記フレームの優先度を特定し、特定された前記フレームの優先度に応じて、前記フレームのフレーム情報を前記複数の第２記憶領域のいずれかに振り分けて記憶させる、
請求項１に記載の通信装置。
【請求項５】
前記フレームの優先度は、前記フレームに含まれる情報を使用して判定されたトラヒッククラスであり、
前記振り分け部は、前記トラヒッククラスに応じて、前記フレームのフレーム情報を前記複数の第２記憶領域のいずれかに振り分けて記憶させる、
請求項４に記載の通信装置。
【請求項６】
前記フレームの宛先に応じて、前記フレームの送信又は受信処理を実行する複数の通信制御部を更に備え、
前記記憶部は、前記複数の通信制御部毎にあり、
前記振り分け部は、前記フレームの宛先に応じて、前記通信制御部を選択し、選択された前記通信制御部の前記記憶部が有する前記複数の第２記憶領域のいずれかに、前記フレームの優先度に応じて、前記フレームのフレーム情報を振り分けて記憶させる、
請求項１に記載の通信装置。
【請求項７】
前記振り分け部は、前記フレームの受信処理で記録された、前記フレームの送信元アドレス情報と、前記フレームの受信処理で使用された前記通信制御部とが関連付けられた転送先情報を使用して、前記フレームの宛先に応じた前記通信制御部を選択する、
請求項６に記載の通信装置。
【請求項８】
前記通信装置は、複数の仮想マシンが稼働し、
前記複数の通信制御部は、前記仮想マシン間の通信に使用される内部通信制御部、及び、前記仮想マシンと他の通信装置との間の通信に使用される物理通信制御部の少なくとも一方を含む、
請求項６に記載の通信装置。
【請求項９】
前記通信装置は、複数の仮想マシンが稼働し、
前記複数の仮想マシンは、ネットワークインタフェースコントローラの物理通信インタフェース部と直接接続される第１仮想マシンと、ネットワークインタフェースコントローラの物理通信インタフェース部と直接接続されない１以上の第２仮想マシンとを含み、
前記複数の通信制御部は、前記仮想マシン間の通信に使用される内部通信制御部と、前記第１仮想マシンと他の通信装置との間の前記物理通信インタフェース部を介した通信に使用される物理通信制御部と、前記第２仮想マシンと他の通信装置との間の仮想通信インタフェース部を介した通信に使用される仮想通信制御部とを含む、
請求項６に記載の通信装置。
【請求項１０】
送信又は受信対象のフレームが記憶される第１記憶領域を参照するためのフレーム情報を、前記フレームの優先度に応じて異なる複数の第２記憶領域に記憶する記憶部を備える通信装置の通信方法であって、
前記フレームの優先度に応じて、前記フレームのフレーム情報を前記複数の第２記憶領域のいずれかに振り分けて記憶させるステップ、
を含む通信方法。
【請求項１１】
送信又は受信対象のフレームが記憶される第１記憶領域を参照するためのフレーム情報を、前記フレームの優先度に応じて異なる複数の第２記憶領域に記憶する記憶部を備えるコンピュータを、
前記フレームの優先度に応じて、前記フレームのフレーム情報を前記複数の第２記憶領域のいずれかに振り分けて記憶させる振り分け部、
として動作させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の実施形態は通信装置、通信方法及びプログラムに関する。
【背景技術】
【０００２】
ＴＳＮ（Ｔｉｍｅ−Ｓｅｎｓｉｔｉｖｅ  Ｎｅｔｗｏｒｋｉｎｇ）規格等に対応したネットワークを介してリアルタイム通信する通信装置が従来から知られている。また、通信装置のホストプロセッサで複数の仮想マシンを動作させ、各仮想マシンがネットワークを介して通信する技術が従来から知られている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特表２００２−５２０９５０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、従来の技術では、通信制御部で行われる通信の優先度制御を行うことが難しかった。
【課題を解決するための手段】
【０００５】
実施形態の通信装置は、記憶部と振り分け部とを備える。記憶部は、送信又は受信対象のフレームが記憶される第１記憶領域を参照するためのフレーム情報を、前記フレームの優先度に応じて異なる複数の第２記憶領域に記憶する。振り分け部は、前記フレームの優先度に応じて、前記フレームのフレーム情報を前記複数の第２記憶領域のいずれかに振り分けて記憶させる。
【図面の簡単な説明】
【０００６】
【図１】第１実施形態の通信装置のハードウェア構成の例を示す図。
【図２】第１実施形態の通信装置の主要部の機能構成の例を示す図。
【図３】第１実施形態のトラヒッククラステーブルの例を示す図。
【図４】第１実施形態のゲート制御リストの例を示す図。
【図５】第１実施形態のフレームプリエンプションテーブルの例を示す図。
【図６】第１実施形態の振り分け処理の例を説明するための図。
【図７Ａ】第１実施形態の送信用ディスクリプタリングについて説明するための図。
【図７Ｂ】第１実施形態の受信用ディスクリプタリングについて説明するための図。
【図８】第１実施形態の内部通信用ディスクリプタリングについて説明するための図。
【図９Ａ】第１実施形態の第１仮想マシンの通信制御の例を説明するための図。
【図９Ｂ】第１実施形態の第２仮想マシンの通信制御の例を説明するための図。
【図９Ｃ】第１実施形態の第３仮想マシンの通信制御の例を説明するための図。
【図１０】第１実施形態の各仮想マシンの転送情報記憶部に記憶される転送情報の例を示す図。
【図１１】第１実施形態の転送先テーブルの例を示す図。
【図１２Ａ】第１実施形態の内部転送先アドレスリストの例を示す図。
【図１２Ｂ】第１実施形態の外部転送先アドレスリストの例を示す図。
【図１３】第１実施形態の第２仮想マシンのフレーム送信要求処理の例を示すフローチャート。
【図１４】第１実施形態の第１仮想マシンのフレーム受信処理の例を示すフローチャート。
【図１５】第１実施形態の第１仮想マシンのフレーム転送処理の例を示すフローチャート。
【図１６】第１実施形態の第１仮想マシンのフレーム送信処理の例を示すフローチャート。
【図１７】第１実施形態の第３仮想マシンのフレーム受信処理の例を示すフローチャート。
【図１８】第２実施形態の通信装置の主要部の機能構成の例を示す図。
【図１９】第２実施形態の振り分け処理の例を説明するための図。
【図２０Ａ】第２実施形態の第１仮想マシンの通信制御の例を説明するための図。
【図２０Ｂ】第２実施形態の第２仮想マシンの通信制御の例を説明するための図。
【図２０Ｃ】第２実施形態の第３仮想マシンの通信制御の例を説明するための図。
【図２１】第２実施形態の第２仮想マシンのフレーム送信要求処理の例を示すフローチャート。
【図２２】第２実施形態の第３仮想マシンのフレーム受信処理の例を示すフローチャート。
【図２３】実施形態の変形例の各仮想マシンの転送情報記憶部に記憶されるデータの例１を示す図。
【図２４Ａ】実施形態の変形例の第１仮想マシンの通信制御の例を説明するための図。
【図２４Ｂ】実施形態の変形例の第２仮想マシンの通信制御の例を説明するための図。
【図２４Ｃ】実施形態の変形例の第３仮想マシンの通信制御の例を説明するための図。
【図２５】実施形態の変形例の各仮想マシンの転送情報記憶部に記憶されるデータの例２を示す図。
【発明を実施するための形態】
【０００７】
以下に添付図面を参照して、通信装置、通信方法及びプログラムの実施形態を詳細に説明する。
【０００８】
（第１実施形態）
はじめに第１実施形態について説明する。
【０００９】
［ハードウェア構成の例］
図１は第１実施形態の通信装置１００のハードウェア構成の例を示す図である。第１実施形態の通信装置１００は、メモリ１、ホストプロセッサ２、ストレージ３及びネットワークインタフェースコントローラ４を備える。
【００１０】
メモリ１は、ホストプロセッサ２内のメモリコントローラを介してホストプロセッサ２に接続される。メモリ１は、例えばＤＲＡＭ（Ｄｙｎａｍｉｃ  Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）等により実現される。
【００１１】
ホストプロセッサ２は、ＰＣＩ  Ｅｘｐｒｅｓｓ（登録商標）等のバスを用いて、ストレージ３と接続される。同様に、ホストプロセッサ２は、ＰＣＩ  Ｅｘｐｒｅｓｓ（登録商標）等のバスを用いて、ネットワークインタフェースコントローラ４と接続される。
【００１２】
ホストプロセッサ２は、ストレージ３に格納された実行プログラムのイメージをメモリに展開し、メモリ上の命令及びデータを読みながら処理を実行する。処理は、ホストプロセッサ２に備えられた１つまたは複数のコアにより実行される。また、ホストプロセッサ２は、ハードウェア仮想化支援機能を備えており、仮想化対応命令セット及びＩＯＭＭＵ（Ｉｎｐｕｔ／Ｏｕｔｐｕｔ  Ｍｅｍｏｒｙ  Ｍａｎａｇｅｍｅｎｔ  Ｕｎｉｔ）等により、効率的に仮想マシンを実行することができる。
【００１３】
ストレージ３は、例えばＨＤＤ（Ｈａｒｄ  Ｄｉｓｋ  Ｄｒｉｖｅ）及びＳＳＤ（Ｓｏｌｉｄ  Ｓｔａｔｅ  Ｄｒｉｖｅ）等により実現される。
【００１４】
ネットワークインタフェースコントローラ４は、ホストプロセッサ２をネットワーク２００に接続する。
【００１５】
ネットワーク２００は、例えばＥｔｈｅｒｎｅｔ（登録商標）である。ネットワーク２００は、ＩＥＥＥ  ８０２．１で定義されるＡＶＢ（Ａｕｄｉｏ  Ｖｉｄｅｏ  Ｂｒｉｄｇｉｎｇ）及びＴＳＮ規格等に対応したネットワークである。ネットワーク２００の種類は任意でよい。ネットワーク２００は、例えばオフィスネットワーク、データセンタ内部のネットワーク、車載ネットワーク、工場内ネットワーク、及び、携帯基地局のネットワーク等である。
【００１６】
ネットワークインタフェースコントローラ４は、例えばＡＳＩＣ（Ａｐｐｌｉｃａｔｉｏｎ  Ｓｐｅｃｉｆｉｃ  Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｉｔ）、または、ＦＰＧＡ（Ｆｉｅｌｄ−Ｐｒｏｇｒａｍｍａｂｌｅ  Ｇａｔｅ  Ａｒｒａｙ）等により実現される。また、ネットワークインタフェースコントローラ４は、ＡＳＩＣ、ＦＰＧＡ及び汎用プロセッサの組み合わせによって実現してもよい。また、ネットワークインタフェースコントローラ４は、ホストプロセッサ２とは別のチップとして実装されてもよいし、ＳｏＣ（Ｓｙｓｔｅｍ−ｏｎ−ａ−Ｃｈｉｐ）として１つのチップとして実装されてもよい。
【００１７】
［機能構成の例］
図２は第１実施形態の通信装置１００の主要部の機能構成の例を示す図である。第１実施形態の通信装置１００の主要部の機能は、上述のホストプロセッサ２（メモリ１によって実現される機能も含む）及びネットワークインタフェースコントローラ４により実現される。
【００１８】
第１実施形態のホストプロセッサ２では、第１仮想マシン２２ａ、第２仮想マシン２２ｂ及び第３仮想マシン２２ｃが、ハイパバイザ２１上で動作する。
【００１９】
以下、第１仮想マシン２２ａ、第２仮想マシン２２ｂ及び第３仮想マシン２２ｃを区別しない場合は、単に仮想マシン２２という。なお、以下、同じ機能を有する機能ブロックが複数あり、それらを区別しない場合は、同様の省略表記をする。
【００２０】
ハイパバイザ２１により制御される仮想マシン２２の数は任意でよい。ハイパバイザ２１は、転送情報共有処理要求通知部３１及び内部通信処理要求通知部３２を備える。
【００２１】
転送情報共有処理要求通知部３１は、転送情報の共有処理の要求を通知する。転送情報の詳細な説明については、図１０を参照して後述する。
【００２２】
内部通信処理要求通知部３２は、内部通信の処理要求を通知する。
【００２３】
各仮想マシン２２では、ＯＳ２３が動作する。ＯＳ２３は、例えばリアルタイムＯＳ及び汎用ＯＳ等である。なお各仮想マシン２２で動作するＯＳの種類は、同一である必要はなく、仮想マシン２２毎に異なるＯＳを動作させてもよい。
【００２４】
第１仮想マシン２２ａは、フレーム記憶部２６ａ、内部通信制御部（＃１）２７ａ−１、内部通信制御部（＃２）２７ａ−２、転送情報記憶部２８ａ、フレーム転送部２９及び物理通信制御部（＃１）３０を備える。
【００２５】
フレーム記憶部２６ａは、送信又は受信対象のフレームを記憶する。フレーム記憶部２６ａは例えばホストプロセッサ２に接続されたメモリ１で実現される。
【００２６】
内部通信制御部（＃１）２７ａ−１は、第２仮想マシン２２ｂとの通信を制御する。内部通信制御部（＃２）２７ａ−２は、第３仮想マシン２２ｃとの通信を制御する。仮想マシン２２間の通信は、内部通信制御部を介して行われる。内部通信制御部２７は、対になるようにそれぞれの仮想マシン２２に備えられている。片方の内部通信制御部２７がフレームを送信すると、対となる内部通信制御部２７でフレームが受信される。内部通信制御部２７間の通知には、上述の内部通信処理要求通知部３２が使用される。内部通信処理要求通知部３２は、内部通信制御部２７から内部通信処理要求を受け付けると、割り込み等を用いて対となる内部通信制御部２７に通知する。
【００２７】
転送情報記憶部２８ａは転送情報を記憶する。転送情報の詳細な説明については、図１０を参照して後述する。転送情報記憶部２８ａは、例えばホストプロセッサ２に接続されたメモリ１によって実現される。
【００２８】
フレーム転送部２９は転送情報を参照してフレームを転送する。
【００２９】
物理通信制御部（＃１）３０は、ネットワークインタフェースコントローラ４との通信を制御する。なお、ネットワークインタフェースコントローラの数は複数であってもよい。複数の場合には、ネットワークインタフェースコントローラの数と同じ物理通信制御部が備えられる。
【００３０】
第２仮想マシン２２ｂは、アプリケーション２４ｂ、フレーム送受信インタフェース部２５ｂ、フレーム記憶部２６ｂ、内部通信制御部２７ｂ及び転送情報記憶部２８ｂを備える。
【００３１】
アプリケーション２４ｂは任意でよい。図２の例では、簡単のため、ＯＳ２３ｂで動作するアプリケーション２４ｂを１つ示しているが、ＯＳ２３ｂで動作するアプリケーション２４ｂは複数でもよい。また、ＯＳなしでアプリケーション２４ｂを動作させてもよい。
【００３２】
フレーム送受信インタフェース部２５ｂは、アプリケーション２４ｂからフレームを送受信するためのインタフェースである。
【００３３】
フレーム記憶部２６ｂ、内部通信制御部２７ｂ及び転送情報記憶部２８ｂは、上述の内部通信制御部（＃１）２７ａ−１、転送情報記憶部２８ａ、フレーム転送部２９と同様なので、説明を省略する。
【００３４】
第３仮想マシン２２ｃは、アプリケーション２４ｃ、フレーム送受信インタフェース部２５ｃ、フレーム記憶部２６ｃ、内部通信制御部２７ｃ及び転送情報記憶部２８ｃを備える。第３仮想マシン２２ｃは、上述の第２仮想マシン２２ｂと同様なので、説明を省略する。
【００３５】
上述の内部通信制御部２７及び物理通信制御部３０等の通信制御部は、例えばデバイスドライバの機能等によって実現される。第１実施形態では、第２仮想マシン２２ｂ上でアプリケーション２４ｂが動作し、第３仮想マシン２２ｃ上でアプリケーション２４ｃが動作している。第１仮想マシン２２ａでは、第２仮想マシン２２ｂ、第３仮想マシン２２ｃ、及び、ネットワークインタフェースコントローラ４を介して接続される外部ホストとの間でフレーム転送を行うソフトウェアスイッチ（ブリッジ）が動作している。
【００３６】
ネットワークインタフェースコントローラ４は、ホストプロセッサ２とＰＣＩ  Ｅｘｐｒｅｓｓ（登録商標）等のバスにより接続される。ネットワークインタフェースコントローラ４は、ホストプロセッサ２の指示に従って、ネットワーク２００を介してＥｔｈｅｒｎｅｔ（登録商標）フレームを送受信する。
【００３７】
ネットワークインタフェースコントローラ４は、ＩＥＥＥ  ８０２．１で規定されるＴＳＮ（Ｔｉｍｅ−Ｓｅｎｓｉｔｉｖｅ  Ｎｅｔｗｏｒｋｉｎｇ）規格に対応している。ＴＳＮ規格には様々な種類がある。第１実施形態のネットワークインタフェースコントローラ４は、ＩＥＥＥ  ８０２．１Ｑｂｕのフレームプリエンプション、及び、ＩＥＥＥ  ８０２．１Ｑｂｖのゲート送信制御に対応している。
【００３８】
ここで、図３乃至図５を参照して、ＴＳＮで用いられる制御情報の例について説明する。
【００３９】
図３は第１実施形態のトラヒッククラステーブルの例を示す図である。ＴＳＮ規格では、図３に示すようなトラヒッククラステーブルが定義されている。受信フレーム振り分け部４３は、トラヒッククラステーブルを参照することにより、フレームに含まれる優先度（ＰＣＰ：Ｐｒｉｏｒｉｔｙ  Ｃｏｄｅ  Ｐｏｉｎｔ）とトラヒッククラスとを対応させることができる。ＰＣＰの値は、ＩＥＥＥ  ８０２．１Ｑで定義される。トラヒッククラスは、各ブリッジ及びエンドノード等におけるＴＳＮの優先度を示す。トラヒッククラステーブルは各ブリッジやエンドノードのポート毎に定義されてもよい。
【００４０】
図４は第１実施形態のゲート制御リストの例を示す図である。ゲート制御リストは、ＩＥＥＥ  ８０２．１Ｑｂｖによる送信制御で用いられる。各トラヒッククラスに対応するゲートは、ゲート制御リストにより定められた周期で、出力可能（Ｏｐｅｎ）／出力不可（Ｃｌｏｓｅ）を切り替える。この制御はポート単位で行うことができる。複数のトラヒッククラスがＯｐｅｎの場合に、どのようにフレームを送信するかを選択するにはいくつかの方式がある。例えばＳｔｒｉｃｔ  Ｐｒｉｏｒｉｔｙと呼ばれる方式では、トラヒッククラスによって定義される優先度の高い順に、送信対象のトラヒッククラスが選択される。
【００４１】
図５は第１実施形態のフレームプリエンプションテーブルの例を示す図である。フレームプリエンプションテーブルは、フレームの送信を中止して、他のフレームの送信を優先させることができるか否かを示す情報を含む優先度情報の例である。具体的には、フレームプリエンプションテーブルは、ＩＥＥＥ  ８０２．１Ｑｂｕでフレームプリエンプションを行う場合に、どのトラヒッククラスがプリエンプションによってフレーム送信が中止されるトラヒッククラス（ｐｒｅｅｍｐｔａｂｌｅ）かを示す。また、フレームプリエンプションテーブルは、ＩＥＥＥ  ８０２．１Ｑｂｕでフレームプリエンプションを行う場合に、どのトラヒッククラスが他のトラヒッククラスのフレーム送信を中止して、先にフレームを送信できるトラヒッククラス（ｅｘｐｒｅｓｓ）かを示す。これらの設定は、ユーザによって予め与えられてもよいし、ＣＮＣ（Ｃｅｎｔｒａｌｉｚｅｄ  Ｎｅｔｗｏｒｋ  Ｃｏｎｆｉｇｕｒａｔｉｏｎ）によって与えられてもよい。
【００４２】
図２に戻り、第１実施形態のネットワークインタフェースコントローラ４は、物理層処理部４１、データリンク層処理部４２、受信フレーム振り分け部４３、物理通信インタフェース部４４及び送信制御部４５を備える。
【００４３】
物理層処理部４１は、ネットワーク２００と接続され、物理層に関わる送受信処理を実行する。
【００４４】
データリンク層処理部４２は、データリンク層に係わる送受信処理を実行する。
【００４５】
受信フレーム振り分け部４３は、データリンク層処理部４２からフレームを受け付けると、当該フレームを振り分ける。
【００４６】
図６は第１実施形態の振り分け処理の例を説明するための図である。受信フレーム振り分け部４３は、上述のトラヒッククラステーブルを使用して、フレーム中のＩＥＥＥ８０２．１Ｑで定義されるＰＣＰ値をトラヒッククラスに変換し、当該トラヒッククラスにより、当該フレームを振り分ける。具体的には、受信フレーム振り分け部４３は、物理通信制御部３０のフレーム情報記憶部３０５の受信用のトラヒッククラス毎に異なるディスクリプタリング（記憶領域）に、フレームのフレーム情報を振り分ける。受信フレーム振り分け部４３は、物理通信インタフェース部４４を介して、ディスクリプタに書かれている転送先アドレスに受信フレームを転送し、割り込み等により、物理通信制御部３０にフレームの受信処理が完了したことを通知する。なお、フレーム情報及びディスクリプタリングの詳細な説明については、図７Ａ乃至図８を参照して後述する。
【００４７】
図２に戻り、物理通信インタフェース部４４は、ホストプロセッサ２の物理通信制御部３０とやり取りするためのインタフェースである。例えば、ホストプロセッサ２への割り込み通知や、ホストプロセッサ２に提供するレジスタインタフェース、ディスクリプタリングを読んでメモリ１との間のデータを転送する機能などを提供する。
【００４８】
送信制御部４５は、送信の優先度制御等の送信制御を行う。送信制御部４５は、物理通信制御部３０のフレーム情報記憶部３０５の送信用のトラヒッククラス毎のディスクリプタリングにフレームの転送元アドレス及び長さが書き込まれると、当該フレームの送信制御を行う。送信制御部４５は、例えばＩＥＥＥ  ８０２．１Ｑｂｖ及びＩＥＥＥ  ８０２．１Ｑｂｕ等の送信制御を行う。フレームは、送信が許可されると、データリンク層処理部４２で、データリンク層に関わる送信処理が行われ、物理層処理部４１で、物理層に関わる送信処理が行われた後、ネットワーク２００に送信される。
【００４９】
図７Ａは第１実施形態の送信用ディスクリプタリングについて説明するための図である。図７Ｂは第１実施形態の受信用ディスクリプタリングについて説明するための図である。
【００５０】
図７Ａは、物理通信制御部３０のフレーム情報記憶部３０５に記憶される送信用ディスクリプタリングの構成の例を示す。図７Ｂは、物理通信制御部３０のフレーム情報記憶部３０５に記憶される受信用ディスクリプタリングの構成の例を示す。ディスクリプタリングは、リングバッファで構成されており、１つのエントリをディスクリプタ（ｄｅｓｃｒｉｐｔｏｒ、記述子）と呼ぶ。
【００５１】
ディスクリプタリングは、ホストプロセッサ２と接続されたメモリ１上に記憶される。ディスクリプタリングは、ネットワークインタフェースコントローラ４からはＤＭＡ（Ｄｉｒｅｃｔ  Ｍｅｍｏｒｙ  Ａｃｃｅｓｓ）によりアクセスされる。
【００５２】
ディスクリプタリングは、ＨｅａｄとＴａｉｌという２つの変数により管理される。図７Ａ及びＢに示すように、ＨｅａｄからＴａｉｌ−１のディスクリプタは、ＨＷ（ハードウェア）、すなわちネットワークインタフェースコントローラ４が所有しているディスクリプタを示す。また、ＴａｉｌからＨｅａｄ−１のディスクリプタは、ＳＷ（ソフトウェア）、すなわちホストプロセッサ２上で動作するソフトウェア（物理通信制御部３０）が所有しているディスクリプタを示す。
【００５３】
転送処理が送信処理である場合と、転送処理が受信処理である場合とでは、ディスクリプタに含まれる情報が異なる。
【００５４】
送信用ディスクリプタは、転送元アドレス、長さ及びステータスを含むフレーム情報を記憶する。転送元アドレスは、送信対象のフレームが記憶されている記憶領域の先頭位置を示すフレーム記憶部２６ａの先頭アドレスを示す。長さは、送信対象のフレームの長さを示す。ステータスは、送信処理の状態を示す情報が格納される。
【００５５】
受信用ディスクリプタは、転送先アドレス、長さ及びステータスを含むフレーム情報を記憶する。転送先アドレスは、受信対象のフレームを記憶する記憶領域の先頭位置を示すフレーム記憶部２６ａの先頭アドレスを示す。長さは、受信対象のフレームの長さを示す。ステータスは、受信処理の状態を示す情報が格納される。
【００５６】
上述のステータスには、例えばエラービット及びＤＯＮＥビット（完了ビット）等が含まれる。エラービットは、転送エラーの有無を示す。ＤＯＮＥビットは、ネットワークインタフェースコントローラ４で処理が終わったことを示す。送信用ディスクリプタのＤＯＮＥビットが１の場合、送信処理が終わったことを示し、受信用ディスクリプタのＤＯＮＥビットが１の場合、受信処理が終わったことを示す。送信または受信の処理（例えばフレームのデータ転送）が終わる（完了する）と、ネットワークインタフェースコントローラ４が、各ビット（エラービット及びＤＯＮＥビット）に１を書き込む。そして、ホストプロセッサ２が、各ビットを確認した後に、各ビットに０を書き込むことにより、各ビットをクリアする。
【００５７】
図８は第１実施形態の内部通信制御部２７の間でやり取りを行う内部通信用ディスクリプタリングについて説明するための図である。内部通信制御部２７間のやり取りはハイパバイザ２１を介して行われる。ディスクリプタリングはリングバッファで構成される。それぞれのディスクリプタには、フレーム情報が記憶される。図８のフレーム情報は、フレームの先頭アドレス、フレームの長さ、及び、フレームの参照権限情報を含む。フレームの参照権限情報は、他の仮想マシン２２のメモリに記憶されているフレームを参照するために用いられる情報である。
【００５８】
内部通信用ディスクリプタリングは４つのポインタで管理される。まず、処理要求を行う仮想マシン２２の処理部（Ｒｅｑｕｅｓｔ  Ｐｒｏｄｕｃｅｒ）は、ディスクリプタに処理要求を書き込み、ハイパバイザ２１に処理を依頼する。ハイパバイザ２１の処理部（Ｒｅｑｕｅｓｔ  Ｃｏｎｓｕｍｅｒ）は、処理要求を受け付けると、応答処理を行う仮想マシン２２の処理部（Ｒｅｓｐｏｎｓｅ  Ｃｏｎｓｕｍｅｒ）に処理を依頼する。応答処理を行う仮想マシン２２の処理部は、ハイパバイザ２１の処理部から依頼を受けると、処理を行う。
【００５９】
Ｒｅｑ＿ｐｒｏｄからＲｅｑ＿ｃｏｎｓ−１までが処理要求の貯まる領域である。Ｒｅｑ＿ｃｏｎｓからＲｓｐ＿ｐｒｏｄ−１までがハイパバイザ２１の処理待ちの領域である。Ｒｓｐ＿ｐｒｏｄからＲｓｐ＿ｃｏｎｓ−１までが処理応答の貯まる領域である。Ｒｓｐ＿ｃｏｎｓからＲｅｑ＿ｐｒｏｄ−１までが未使用の領域である。
【００６０】
Ｒｅｑ＿ｐｒｏｄは、処理要求を行う仮想マシン２２の処理部によって更新される。Ｒｅｑ＿ｃｏｎｓ及びＲｓｐ＿ｐｒｏｄは、ハイパバイザ２１の処理部により更新される。Ｒｓｐ＿ｃｏｎｓは応答処理を行う仮想マシン２２の処理部によって更新される。各処理部は、内部通信処理要求通知部３２からの通知を受けて、これらのポインタ情報を参照することで、処理すべきデータがあるか否かを判定することができる。
【００６１】
次に、第１実施形態の通信制御の例について説明する。
【００６２】
図９Ａは第１実施形態の第１仮想マシン２２ａの通信制御の例を説明するための図である。図９Ｂは第１実施形態の第２仮想マシン２２ｂの通信制御の例を説明するための図である。図９Ｃは第１実施形態の第３仮想マシン２２ｃの通信制御の例を説明するための図である。
【００６３】
第１実施形態の仮想マシン２２間のフレーム転送は、フレームの優先度を考慮し、ＩＥＥＥ  ８０２．１  ＴＳＮで規定される転送を行うことが可能である。ＴＳＮ規格は様々ある。ここでは、ネットワークインタフェースコントローラ４の場合と同様に、ゲート制御送信及びフレームプリエンプションをサポートしている場合について説明する。
【００６４】
図９Ａ乃至Ｃに示すように、内部通信制御部２７は、第１仮想マシン２２ａと第２仮想マシン２２ｂで機能が異なる。ここでは、説明のため、第２仮想マシン２２ｂの内部通信制御部２７ｂ、及び、第３仮想マシン２２ｃの内部通信制御部２２ｃをフロントエンド内部通信制御部と呼び、第１仮想マシン２２ａの内部通信制御部２７ａ−１及び２７ａ−２を、バックエンド内部通信制御部と呼ぶ。
【００６５】
フロントエンド内部通信制御部は、送信フレーム振り分け部２７１、フレーム送信完了通知部２７２、フレーム受信完了通知部２７３、受信フレーム記憶領域確保部２７４、送信フレーム記憶領域解放部２７５、フレーム情報記憶部２７６、内部通信処理要求部２７７、内部通信処理部２７８及び受信フレーム選択部２７９を備える。
【００６６】
送信フレーム振り分け部２７１は、送信対象のフレームのフレーム情報を、フレーム情報記憶部２７６に記憶された送信方向のディスクリプタリングに振り分ける。
【００６７】
フレーム送信完了通知部２７２は、フレーム送受信インタフェース部２５にフレームの送信完了を通知する。
【００６８】
フレーム受信完了通知部２７３は、フレーム送受信インタフェース部２５にフレームの受信完了を通知する。
【００６９】
受信フレーム記憶領域確保部２７４は、受信フレームを記憶するための領域をフレーム記憶部２６に確保する。また、受信フレーム記憶領域確保部２７４は、フレーム参照権限情報を生成し、当該フレーム参照権限情報をバックエンド側に伝達する。フレーム参照権限情報は、対向の内部通信制御部２７が動作する仮想マシン２２からフレームを参照するため権限を示す情報である。
【００７０】
送信フレーム記憶領域解放部２７５は、バックエンド側で送信されたフレームの処理が終わった時に、当該フレームが記憶されていたフレーム記憶部２６の記憶領域を解放する。
【００７１】
フレーム情報記憶部２７６は、内部通信用ディスクリプタリング（図８参照）を用いてフレーム情報を記憶する。
【００７２】
内部通信処理要求部２７７は、内部通信処理要求通知部３２を介して、対向のバックエンド内部通信制御部に処理要求を通知する。例えば、内部通信処理要求通知部３２はハイパバイザ２１の機能によって実現される。
【００７３】
内部通信処理部２７８は、内部通信処理要求通知部３２から通知を受け付けると、内部通信のための処理を行う。
【００７４】
受信フレーム選択部２７９は、フレーム情報記憶部２７６に記憶された受信方向のディスクリプタリングから、受信対象フレームのフレーム情報を記憶するディスクリプタリングを選択する。
【００７５】
バックエンド内部通信制御部は、フレーム送信完了通知部２７２、フレーム受信完了通知部２７３、内部通信処理要求部２７７、内部通信処理部２７８、送信フレームマップ部２８０及び受信フレーム複製部２８１を備える。
【００７６】
フレーム送信完了通知部２７２は、フレーム転送部２９にフレームの送信完了を通知する。
【００７７】
フレーム受信完了通知部２７３は、フレーム転送部２９にフレームの受信完了を通知する。
【００７８】
内部通信処理要求部２７７は、内部通信処理要求通知部３２を介して対向のフロントエンド内部通信制御部に処理要求を通知する。
【００７９】
内部通信処理部２７８は、内部通信処理要求通知部３２から通知を受け付けると、内部通信のための処理を行う。
【００８０】
送信フレームマップ部２８０は、フロントエンド側から送信されたフレームを参照できるようにするため、当該フレームの記憶領域を第１仮想マシン２２ａのメモリ領域にマップする。
【００８１】
受信フレーム複製部２８１は、受信したフレームをフロントエンド側へ伝達する場合に、フロントエンド側で確保された記憶領域に当該フレームのデータをコピーし、第１仮想マシン２２ａ側で確保された当該フレームの記憶領域を解放する。
【００８２】
また、第１仮想マシン２２ａの物理通信制御部３０は、フレーム受信完了通知部３０１、フレーム送信完了通知部３０２、受信フレーム記憶領域確保部３０３、送信フレーム記憶領域解放部３０４、フレーム情報記憶部３０５、物理通信処理要求部３０６及び物理通信処理部３０７を備える。
【００８３】
フレーム受信完了通知部３０１は、フレーム転送部２９にフレームの受信完了を通知する。
【００８４】
フレーム送信完了通知部３０２は、フレーム転送部２９にフレームの送信完了を通知する。
【００８５】
受信フレーム記憶領域確保部３０３は、受信されたフレームを記憶するためのフレーム記憶部２６ａの記憶領域を確保する。
【００８６】
送信フレーム記憶領域解放部３０４は、送信されたフレームが記憶されていたフレーム記憶部２６ａの記憶領域を解放する。
【００８７】
フレーム情報記憶部３０５、送信用ディスクリプタリング（図７Ａ参照）、及び、受信用ディスクリプタリング（図７Ｂ参照）を用いてフレーム情報を記憶する。
【００８８】
物理通信処理要求部３０６は、物理通信インタフェース部４４に処理要求を通知する。
【００８９】
物理通信処理部３０７は、物理通信インタフェース部４４から通知を受けると、物理通信処理を実行する。
【００９０】
上述の物理通信制御部３０は、フレーム転送部２９と接続される。
【００９１】
フレーム転送部２９は、受信フレーム選択部２９１、転送情報書き込み部２９２及び送信フレーム振り分け部２９３を備える。
【００９２】
受信フレーム選択部２９１は、受信対象フレームのフレーム情報を記憶するディスクリプタリングを選択する。
【００９３】
転送情報書き込み部２９２は、転送情報記憶部２８ａに転送情報を書き込む。転送情報の詳細は、図１０を参照して後述する。
【００９４】
送信フレーム振り分け部２９３は、送信対象フレームのフレーム情報を記憶するディスクリプタリングを選択する。
【００９５】
上述のフロントエンド内部通信制御部、及び、上述のバックエンド内部通信制御部は、フロントエンド内部通信制御部のフレーム情報記憶部２７６を用いてフレーム情報をやり取りする。
【００９６】
例えば、第２仮想マシン２２ｂでは、図９Ｂに示すように、送信方向及び受信方向それぞれに、トラヒッククラス毎に異なるディスクリプタリングを備える。また、送信方向のディスクリプタリングは２種類用意されている。１つは、同一のホストプロセッサ２で動作する第２仮想マシン２２ｂ用の内部宛のディスクリプタリングであり、もう１つは、それ以外の外部宛のディスクリプタリングである。
【００９７】
また、フレーム情報記憶部２７６ｂに記憶された各ディスクリプタリング（記憶領域）は、上述の４つのポインタの値で管理される（図８参照）。フレーム情報記憶部２７６ｂは、第２仮想マシン２２ｂで確保された共有メモリである。この共有メモリの記憶領域は、バックエンド内部通信制御部（すなわち第１仮想マシン２２ａ）に対して、読み出し及び書き込みの許可が与えられている。第１仮想マシン２２ａで動作するバックエンド内部通信制御部は、ハイパバイザ２１を介して、この共有メモリの記憶領域に対して読み出し及び書き込みを行うことができる。
【００９８】
次に、受信方向のディスクリプタについて説明する。受信フレーム記憶領域確保部２７４が、フロントエンド側のＭＴＵ（Ｍａｘｉｍｕｍ  Ｔｒａｎｓｍｉｓｓｉｏｎ  Ｕｎｉｔ）のサイズで、フレーム記憶部２６の記憶領域を確保する。次に、受信フレーム記憶領域確保部２７４は、バックエンド側の第１仮想マシン２２ａからフレームを参照できるように、フレーム参照権限情報を生成して、ハイパバイザ２１に通知する。次に、受信フレーム記憶領域確保部２７４が、受信方向のディスクリプタにフレーム参照権限情報を記憶する。次に、内部通信処理要求部２７７が、ハイパバイザ２１の内部通信処理要求通知部３２を介して、バックエンド側に通知する。
【００９９】
通知を受けたバックエンド側では、内部通信処理部２７８ａが、フレーム情報記憶部２７６の受信方向のディスクリプタに記憶されたフレーム情報を取得する。次に、バックエンド側からフレームをフロントエンド側に送る要求があった場合、受信フレーム複製部２８１ａが、送信対象のフレームをフロントエンド側から伝えられた確保済みのフレーム記憶部２６の記憶領域に書き込む（コピーする）。次に、受信フレーム複製部２８１ａが、コピーされたフレームの先頭アドレス、長さ及び参照権限情報を含むフレーム情報を、受信方向のディスクリプタに書き込む。次に、内部通信処理要求部２７７が、内部通信処理要求通知部３２を介してフロントエンド側に通知する。
【０１００】
次に、送信方向のディスクリプタについて説明する。フロントエンド側からバックエンド側へのフレーム送信要求があった場合、送信フレーム振り分け部２７１が、送信方向のディスクリプタにフレーム情報を書き込む。次に、内部通信処理要求部２７７が、ハイパバイザ２１の内部通信処理要求通知部３２を介して、バックエンド側の内部通信処理部２７８に通知する。
【０１０１】
バックエンド側では、送信フレームマップ部２８０が、送信方向のディスクリプタに書き込まれたフレーム情報に含まれるフレーム参照権限情報を用いて、第１仮想マシン２２ａの仮想メモリに、フレーム情報から特定されるフレームをマップして参照できるようにする。次に、送信フレームマップ部２８０は、マップして参照できるようにしたフレームの使用が終わったら、当該フレームの参照に使用されていた第１仮想マシン２２ａのアドレス空間をアンマップする。次に、送信フレームマップ部２８０は、バックエンド側からフロントエンド側に伝達されるフレーム情報をフレーム情報記憶部２７６に書き込む。次に、バックエンド側の内部通信処理要求部２７７が、内部通信処理要求通知部３２を介して、フロントエンド側の内部通信処理部２７８に通知する。次に、送信フレーム記憶領域解放部２７５が、通知を受けたフレームが記憶されていたフレーム記憶部２６の記憶領域を解放する。
【０１０２】
図１０は第１実施形態の各仮想マシン２２の転送情報記憶部２８に記憶される転送情報の例を示す。なお、ここでは仮想マシン２２ａと仮想マシン２２ｂを例に説明するが、仮想マシン２２ａと仮想マシン２２ｃも、仮想マシン２２ａと仮想マシン２２ｂの場合と同様である。
【０１０３】
第１仮想マシン２２ａの転送情報記憶部２８ａは、転送先テーブル、第１仮想マシン２２ａの物理通信制御部（＃０）３０の優先制御情報、第１仮想マシン２２ａの各バックエンド内部通信制御部の優先制御情報、及び、第１仮想マシン２２ａの各バックエンド内部通信制御部の対向である各フロントエンド内部通信制御部の優先制御情報を記憶する。
【０１０４】
転送先テーブルの詳細については、図１１を参照して後述する。優先制御情報は、上述のトラヒッククラステーブル（図３参照）、上述のゲート制御リスト（図４参照）、及び、上述のプリエンプションテーブル（図５参照）を含む。優先制御情報は、例えばユーザの操作入力、及び、ＣＮＣ等により、予め与えられる。このようにポート毎（通信制御部毎、すなわち、ネットワークインタフェース毎）に優先制御情報が与えられる。
【０１０５】
第２仮想マシン２２ｂの転送情報記憶部２８ｂは、内部転送先アドレスリスト、第１仮想マシン２２ａの内部通信制御部（＃１）２７ａ−１の優先制御情報、及び、第２仮想マシン２２ｂの内部通信制御部２７ｂの優先制御情報を記憶する。内部転送先アドレスリストについては、図１２Ａを参照して後述する。
【０１０６】
転送情報記憶部２８は、共有メモリで構成される。転送情報記憶部２８の転送情報は、転送情報共有処理要求によって、図中の矢印の方向へ送信される。この転送情報共有処理要求によって、転送情報を同期させることができる。同期は、例えば、転送情報記憶部２８ａまたは転送情報記憶部２８ｂのいずれかの情報が変更された時に行われる。この際、差分のみを共有するようにしてもよい。
【０１０７】
図１１は第１実施形態の転送先テーブルの例を示す図である。転送先テーブル（転送先情報）の各エントリは、フレーム転送部２９の転送情報書き込み部２９２によって、作成、更新又は消去される。具体的には、転送情報書き込み部２９２は、フレームを受信した際に、当該フレームの送信元ＭＡＣアドレス（送信元アドレス情報）と、フレームの受信処理で使用されたネットワークインタフェース（通信制御部、ポート）とを関連付けて記録する。各エントリはタイマによって管理され、一定時間使用されないエントリは削除される。このため、図示しないが各エントリで残りタイマ値を記録し、転送情報書き込み部２９２でタイマを用いて減算して管理するようにしてもよい。また、図示しないが転送先テーブルは別途、ＩＥＥＥ８０２．１Ｑで定義されるＶＬＡＮに対応し、各出力先インタフェースが属するＶＬＡＮの識別子であるＶＬＡＮ  ＩＤ（図６中のＶＩＤ）を管理してもよい。各出力先インタフェース（ポート）が属するＶＬＡＮ  ＩＤは予めユーザなどから与えられ、これにより、ＶＬＡＮ  ＩＤによってネットワークの分離を実現することができる。
【０１０８】
図１２Ａは第１実施形態の内部転送先アドレスリストの例を示す図である。内部転送先アドレスリストは、転送先テーブルからホストの外への通信、すなわち物理通信制御部３０を介した通信を除外したＭＡＣアドレスのリストである。ソフトウェアスイッチの動作する第１仮想マシン２２ａの送信フレーム振り分け部２９３は、第１仮想マシン２２ａの各通信制御部の転送情報を用いて送信フレームを振り分ける。内部通信制御部２７ｂの送信フレーム振り分け部２７１ｂは、内部転送先アドレスリストと、当該内部通信制御部２７ｂの優先制御情報とを用いて、送信フレームを振り分ける。受信フレーム選択部２７９ｂは、各通信制御部のディスクリプタリングに記憶されたフレーム情報の有無と、各通信制御部のトラヒッククラステーブル、対向の内部通信制御部の優先制御情報とを用いて、フレーム情報を取得するディスクリプタリングを選択する。
【０１０９】
図１２Ｂは第１実施形態の外部転送先アドレスリストの例を示す図である。外部転送先アドレスリストは、転送先テーブルからホスト内への通信、すなわち内部通信制御部２７を介した通信を除外したＭＡＣアドレスのリストである。転送情報記憶部２８ｂは、内部転送先アドレスリストではなく、外部転送先アドレスリストを記憶してもよい。転送情報記憶部２８ｂが、外部転送先アドレスリストを記憶する場合の例は、図２３を用いて、実施形態の変形例として説明する。
【０１１０】
次に、図１３乃至図１７を参照して、第１実施形態の通信方法の例について説明する。第２仮想マシン２２ｂのアプリケーション２４ｂから、第１仮想マシン２２ａのフレーム転送部２９を通って、第３仮想マシン２２ｃのアプリケーション２４ｃに到達するまでの動作を例にして説明する。
【０１１１】
図１３は第１実施形態の第２仮想マシン２２ｂのフレーム送信要求処理の例を示すフローチャートである。
【０１１２】
はじめに、内部通信制御部２７ｂが、フレーム情報を生成する（ステップＳ１）。具体的には、第２仮想マシン２２ｂのアプリケーション２４ｂからフレームの送信が指示されると、フレーム送受信インタフェース部２５ｂの送信フレーム記憶領域確保部２５１ｂが、送信されるフレームが格納されるフレーム記憶部２６ｂの記憶領域を確保する。次に、送信フレーム記憶領域確保部２５１ｂが、フレームが記憶された記憶領域の先頭アドレスと、フレームの長さとを内部通信制御部２７ｂに伝える。次に、内部通信制御部２７ｂは、対向の内部通信制御部２７ａ−１が動作する第１仮想マシン２２ａからフレームにアクセスできるようにするため、フレーム参照権限情報を生成し、ハイパバイザ２１に通知する。そして、内部通信制御部２７ｂは、フレームが記憶された記憶領域の先頭アドレス、当該フレームの長さ、及び、フレーム参照権限情報を含むフレーム情報を生成する。
【０１１３】
次に、送信フレーム振り分け部２７１ｂが、転送情報記憶部２８ａに記憶された上述の内部転送先アドレスリスト（図１２Ａ参照）を使用して、フレームの宛先ＭＡＣアドレスが内部宛か否かを判定する（ステップＳ２）。具体的には、送信されるフレームの宛先ＭＡＣアドレスが、内部転送先アドレスリストに含まれていれば、当該フレームは内部宛と判定される。
【０１１４】
宛先ＭＡＣアドレスが内部宛の場合（ステップＳ２，Ｙｅｓ）、送信フレーム振り分け部２７１ｂは、内部宛のディスクリプタリングにフレーム情報を追加する（ステップＳ３）。具体的には、送信フレーム振り分け部２７１ｂは、内部宛の複数のディスクリプタリングのうち、トラヒッククラス（優先度）に応じて選択されたディスクリプタリングにフレーム情報を追加し、ポインタを更新する。
【０１１５】
ここで、トラヒッククラスは、例えばアプリケーション２４ｂから指定されてもよい。アプリケーション２４ｂにより指定される場合には、内部通信制御部２７ｂが、トラヒッククラスを更に含むフレーム情報を生成してもよい。また例えば、トラヒッククラスは、フレームに含まれるＰＣＰ値から、トラヒッククラステーブルを用いて変換することにより得られたトラヒッククラスの値でもよい。
【０１１６】
宛先ＭＡＣアドレスが内部宛でない場合（ステップＳ２，Ｎｏ）、送信フレーム振り分け部２７１ｂは、外部宛のディスクリプタリングにフレーム情報を追加する（ステップＳ４）。具体的には、送信フレーム振り分け部２７１ｂは、外部宛の複数のディスクリプタリングのうち、トラヒッククラス（優先度）に応じて選択されたディスクリプタリングにフレーム情報を追加し、ポインタを更新する。
【０１１７】
なお、ディスクリプタリングは、ＰＣＰ値に応じて用意されていてもよい。この場合、上述のステップＳ３及びステップＳ４の処理では、トラヒッククラスでなく、フレームに含まれるＰＣＰ値がそのまま利用される。
【０１１８】
また、トラヒッククラスの分だけディスクリプタリングが確保できない場合等では、送信フレーム振り分け部２７ｂが、フレームプリエンプションテーブル（図５参照）を参照し、ｅｘｐｒｅｓｓに設定されているトラヒッククラスと、ｐｒｅｅｍｐｔａｂｌｅに設定されているトラヒッククラスとを、それぞれ１つ又は複数にまとめてディスクリプタリングに割り当ててもよい。なお、本実施形態においてトラヒッククラスの数は８の場合を図示したが、トラヒッククラスの数はＩＥＥＥ  ８０２．１Ｑで定められる任意の数を用いてよい。
【０１１９】
次に、内部通信処理要求部２７７ｂが、内部通信処理要求通知部３２に通知要求を送信して、対向の第１仮想マシン２２ａの内部通信制御部２７ａ−１に通知する（ステップＳ５）。
【０１２０】
図１４は第１実施形態の第１仮想マシン２２ａのフレーム受信処理の例を示すフローチャートである。はじめに、内部通信処理部２７８ａ−１が、内部通信処理要求通知部３２から通知を受け付けると、フレーム情報を確認し、処理すべきディスクリプタリングを特定する（ステップＳ１１）。上述の図１３のフローチャートの送信要求処理により、送信方向のディスクリプタリングに処理すべきフレーム情報が入っている。
【０１２１】
次に、送信フレームマップ部２８０ａ−１が、ステップＳ１１の処理により特定されたディスクリプタリングに記憶されたフレーム情報に含まれるフレーム参照権限情報を用いて、フレームが格納されている第２仮想マシン２２ｂのメモリを、第１仮想マシン２２ａのアドレス空間にマップするように、ハイパバイザ２１に依頼する（ステップＳ１２）。
【０１２２】
次に、フレーム受信完了通知部２７３ａ−１が、フレームの受信を完了したことをフレーム転送部２９に通知する（ステップＳ１３）。
【０１２３】
図１５は第１実施形態の第１仮想マシン２２ａのフレーム転送処理の例を示すフローチャートである。
【０１２４】
はじめに、受信フレーム選択部２９１が、第１仮想マシン２２ａの内部通信制御部２７ａのフレーム受信完了通知部２７３ａ（または物理通信制御部３０のフレーム受信完了通知部３０１）からフレーム受信完了通知を受け付けると、対応する通信制御部のフレーム情報記憶部２７６（またはフレーム情報記憶部３０５）のディスクリプタリングの状態を確認する（ステップＳ２１）。具体的には、受信フレーム選択部２９１は、対応する通信制御部が物理通信制御部３０の場合、受信方向のトラヒッククラス毎に分けられたディスクリプタリングの状態を確認する。また、受信フレーム選択部２９１は、対応する通信制御部が内部通信制御部２７の場合、送信方向の内部宛及び外部宛の各トラヒッククラスのディスクリプタリングの状態を確認する。
【０１２５】
次に、受信フレーム選択部２９１は、優先度に従って、フレームの受信処理を行うディスクリプタリングを選択する（ステップＳ２２）。内部宛よりも外部宛のフレームのほうが転送に時間がかかる。そのため、受信フレーム選択部２９１は、例えば外部宛のフレームを優先して選択してもよい。この際、受信フレーム選択部２９１は、物理通信制御部３０の受信方向のディスクリプタは内部宛として扱うことができる。また例えば、受信フレーム選択部２９１は、外部宛のフレームと内部宛のフレームとで分けた後、それぞれにおいて、トラヒッククラスの値が大きいもの、すなわち優先度の高いものから受信するように選択してもよい。また例えば、受信フレーム選択部２９１は、フレームが外部宛であるか内部宛であるかに関わらず、トラヒッククラスの値が大きいものから選択するようにしてもよい。また例えば、受信フレーム選択部２９１は、転送情報記憶部２８ａに記憶された対向の内部通信制御部２７の優先制御情報のフレームプリエンプションテーブルを参照して、ｅｘｐｒｅｓｓに設定されているトラヒッククラスを優先して選択してもよい。また、場合によっては逆に外部宛よりも内部宛を優先するように選択してもよい。また、転送情報記憶部２８ａから第２仮想マシンの内部通信制御部の優先制御情報からゲート制御リストを参照し、ホストプロセッサ２で管理される現在時刻を用いて、出力可能（Ｏｐｅｎ）状態のトラヒッククラスからＳｔｒｉｃｔ  Ｐｒｉｏｒｉｔｙ方式で選択してもよい。
【０１２６】
次に、転送情報書き込み部２９２が、転送情報記憶部２８ａの転送先テーブルにエントリを書き込む（ステップＳ２３）。具体的には、まず、転送情報書き込み部２９２が転送情報記憶部２８ａの転送先テーブルに受信したフレームの宛先ＭＡＣアドレスに対応するエントリが既に作成されているかを確認する。既にある場合、そのエントリがタイマによって削除されないように、残りタイマ値を規定の値に更新する。まだない場合には、転送情報書き込み部２９２が、受信したフレームの送信元ＭＡＣアドレスを、宛先ＭＡＣアドレスとし、フレームを受信したネットワークインタフェースを、出力先ネットワークインタフェースとして含むエントリを、転送情報記憶部２８ａに記憶された転送先テーブルに作成する。
【０１２７】
次に、送信フレーム振り分け部２９３が、フレームの宛先アドレスから出力する通信制御部を決定し（ステップＳ２４）、当該通信制御部に対応する複数のディスクリプタリングから、当該フレームのフレーム情報を書き込むディスクリプタリングを選択する（ステップＳ２５）。具体的には、送信フレーム振り分け部２９３は、まず、転送先テーブルを参照して、送信対象のフレームの宛先ＭＡＣアドレスに一致するエントリがあるか否かを確認する。送信フレーム振り分け部２９３は、宛先ＭＡＣアドレスが一致するエントリがあれば、そのエントリの出力先ネットワークインタフェースに記載されている通信制御部からフレームを送信することを決定する。また、送信フレーム振り分け部２９３は、宛先ＭＡＣアドレスに一致するエントリがなければ、同じＶＬＡＮに属する全ての通信制御部からフレームを送信することを決定する（フラッディング）。次に、送信フレーム振り分け部２９３は、フレームを出力すると決定した通信制御部の複数のディスクリプタから、送信対象のフレームのトラヒッククラスに応じたディスクリプタリングを選択する。
【０１２８】
なお、ステップＳ２５の処理において、送信フレーム振り分け部２９３は、必要であれば、転送情報記憶部２８ａの各通信制御部のトラヒッククラステーブルを参照し、ＰＣＰの値をトラヒッククラスの値に書き換えてもよい。
【０１２９】
また、ディスクリプタリングは、ＰＣＰ値に応じて用意されていてもよい。この場合、ステップＳ２５の処理では、トラヒッククラスでなく、フレームに含まれるＰＣＰの値がそのまま利用される。
【０１３０】
また、トラヒッククラスの分だけディスクリプタリングが確保できない場合等では、送信フレーム振り分け部２９３が、フレームプリエンプションテーブル（図５参照）を参照し、ｅｘｐｒｅｓｓに設定されているトラヒッククラスと、ｐｒｅｅｍｐｔａｂｌｅに設定されているトラヒッククラスとを、それぞれ１つ又は複数にまとめてディスクリプタリングに割り当ててもよい。
【０１３１】
図１６は第１実施形態の第１仮想マシン２２ａのフレーム送信処理の例を示すフローチャートである。はじめに、受信フレーム複製部２８１ａ−２が、前述の送信フレーム振り分け部２９３により選択されたディスクリプタリングからフレーム記憶部２６ｃに確保済みの受信フレームの記憶領域を取得し、その受信フレームの記憶領域にフレームを複製する（ステップＳ３１）。
【０１３２】
次に、受信フレーム複製部２８１ａ−２が、ステップＳ３１の処理により複製されたフレームのフレーム情報を受信方向のディスクリプタリングに書き込む（ステップＳ３２）。具体的には、出力先が対向の内部通信制御部２７ｃの場合、受信フレーム複製部２８１ａ−２が、対向の内部通信制御部２７ｃのフレーム情報記憶部２７６ｃの受信方向のディスクリプタリングに書き込みを行い、ポインタを更新する。
【０１３３】
次に、内部通信処理要求部２７７ａ−２が、ステップＳ３２の処理により書き込まれたフレーム情報の処理を、内部通信処理要求通知部３２に要求する（ステップＳ３３）。
【０１３４】
次に、送信フレームマップ部２８０ａ−１が、書き込み元のフレームの参照を解除し、伝達されてきた送信方向のディスクリプタを使用して、フレーム情報を第２仮想マシン２２ｂに伝達する（ステップＳ３４）。第２仮想マシン２２ｂの送信フレーム記憶領域解放部２７５ｂは、フレームの記憶領域を解放する。
【０１３５】
なお、出力先が物理通信制御部３０の場合、ステップＳ３２の処理では、送信フレーム振り分け部２９３が、物理通信制御部３０のフレーム情報記憶部３０５の送信方向のディスクリプタに書き込みを行い、ポインタを更新する。ステップＳ３３の処理では、物理通信処理要求部３０６が、ステップＳ３２の処理により書き込まれたフレーム情報の処理を、物理通信インタフェース部４４に要求する。
【０１３６】
なお、本実施形態では、フレーム転送部２９がフレーム受信完了通知部２７３ａ−１やフレーム受信完了通知部３０１からフレーム受信完了通知を受けて動作する例を示したが、フレーム転送部２９がタイマなどにより動作するようにし、受信フレーム選択部がフレーム情報記憶部２７６ｂやフレーム情報記憶部３０５のディスクリプタリングをポーリングしてフレームの転送を行うようにしてもよい。また、フレーム転送部２９と内部通信制御部２７ａが一体となって動作するようにしてもよい。
【０１３７】
図１７は第１実施形態の第３仮想マシン２２ｃのフレーム受信処理の例を示すフローチャートである。はじめに、内部通信処理部２７８ｃが、内部通信処理要求通知部３２から通知を受け付けると、フレーム情報記憶部２７６ｃに処理すべきディスクリプタリングがあるか否かを判定する（ステップＳ４１）。
【０１３８】
上述の図１６のフローチャートのフレーム送信処理により、受信方向のディスクリプタリングに処理すべきフレーム管理情報が入っているため、処理はステップＳ４２に進む（ステップＳ４１，Ｙｅｓ）。なお、処理すべきディスクリプタリングがない場合（ステップＳ４１，Ｎｏ）、処理は終了する。
【０１３９】
次に、フレーム受信完了通知部２７３ｃが、受信処理完了をフレーム送受信インタフェース部２５ｃに通知する（ステップＳ４２）。
【０１４０】
次に、受信フレーム選択部２７９ｃが、フレーム送受信インタフェース部２５ｃから、フレーム受信の要求を受け付けると、優先度に基づき選択された受信方向のディスクリプタリングから、フレーム情報を取得する（ステップＳ４３）。
【０１４１】
なお、優先度は、例えばトラヒッククラスの値が大きいほど高い。また例えば、受信フレーム選択部２７９ｃは、転送情報記憶部２８ｃに記憶された対向の内部通信制御部２７ａ−２の優先制御情報のフレームプリエンプションテーブル（図５参照）を参照して、ｅｘｐｒｅｓｓに設定されているトラヒッククラスを優先して選択してもよい。また、転送情報記憶部２８ｃから第１仮想マシンの内部通信制御部（＃２）２７ａ−２の優先制御情報からゲート制御リストを参照し、ホストプロセッサ２で管理される現在時刻を用いて、出力可能（Ｏｐｅｎ）状態のトラヒッククラスからＳｔｒｉｃｔ  Ｐｒｉｏｒｉｔｙ方式で選択してもよい。
【０１４２】
次に、受信フレーム選択部２７９ｃは、ステップＳ４３の処理により取得されたフレーム情報を参照して、フレーム記憶部２６ｃからフレームを取得し、当該フレームを、フレーム送受信インタフェース部２５ｃを介して、アプリケーション２４ｃにより指定されたバッファ等にコピーする（ステップＳ４４）。
【０１４３】
次に、受信フレーム記憶領域解放部２５２ｃが、フレーム記憶部２６ｃに記憶されていたコピー元のフレームの記憶領域を解放する（ステップＳ４５）。
【０１４４】
次に、受信フレーム記憶領域確保部２５２ｃが、次のフレーム受信に備え、次のフレームが記憶されるフレーム記憶部２６ｃの記憶領域を確保する（ステップＳ４６）。
【０１４５】
次に、受信フレーム記憶領域確保部２５２ｃが、ステップＳ４６の処理により確保された記憶領域に記憶されるフレームのフレーム情報を、受信方向のディスクリプタリングを用いて、対向の内部通信制御部２７ａ−２に伝達する（ステップＳ４７）。また、受信フレーム記憶領域確保部２５２ｃは、ステップＳ４７の処理により伝達されるフレーム情報に含まれるフレーム参照権限情報をハイパバイザ２１に伝える。これにより、対向の内部通信制御部２７ａ−２が動作する第１仮想マシン２２ａが、次のフレームの記憶に使用されるフレーム記憶部２６ｃの記憶領域にアクセスできるようにする。
【０１４６】
以上説明したように、第１実施形態の通信装置１００では、送信フレーム振り分け部２７１ｂが、フレームの優先度に基づいて、当該フレームのフレーム情報を各通信制御部（内部通信制御部２７及び物理通信制御部３０）のフレーム情報記憶部２７６（３０５）の異なるディスクリプタリング（記憶領域）に振り分けて記憶させる。これにより第１実施形態の通信装置１００によれば、通信制御部で行われる通信の優先度制御を行うことができる。
【０１４７】
（第２実施形態）
次に第２実施形態について説明する。第２実施形態の説明では、第１実施形態と同様の説明については省略し、第１実施形態と異なる箇所について説明する。
【０１４８】
図１８は第２実施形態の通信装置１００の主要部の機能構成の例を示す図である。第２実施形態では、ネットワークインタフェースコントローラ４−２が、各仮想マシン２２に対して通信インタフェースを提供する。また、第２実施形態の通信装置１００は、ネットワークインタフェースコントローラ４−２で入出力の調停を行う仮想化技術であるＳｉｎｇｌｅ  Ｒｏｏｔ  Ｉ／Ｏ  Ｖｉｒｔｕａｌｉｚａｔｉｏｎ（ＳＲ−ＩＯＶ）に対応している。
【０１４９】
第２実施形態のホストプロセッサ２−２は、仮想通信制御部３３ｂ及び３３ｃを更に備える。また、第２実施形態のネットワークインタフェースコントローラ４−２は、仮想通信インタフェース部４６ｂ及び４６ｃを更に備える。
【０１５０】
第２実施形態の第２仮想マシン２２ｂ−２では、仮想通信制御部３３ｂが、仮想通信インタフェース部４６ｂと通信する。これにより、第２仮想マシン２２ｂ−２が、ネットワークインタフェースコントローラ４−２と直接、通信する。これはＰＣＩ  Ｐａｓｓｔｈｒｏｕｇｈなどによって実現される。
【０１５１】
同様に、第２実施形態の第３仮想マシン２２ｃ−２では、仮想通信制御部３３ｃが、仮想通信インタフェース部４６ｃと通信する。これにより、第３仮想マシン２２ｃ−２が、ネットワークインタフェースコントローラ４−２と直接、通信する。
【０１５２】
図１９は第２実施形態の振り分け処理の例を説明するための図である。第２実施形態の受信フレーム振り分け部４３−２は、フレームの送信先ＭＡＣアドレスを使用して、宛先の通信制御部（物理通信制御部３０、仮想通信制御部３３ｂ又は仮想通信制御部３３ｃ）を選択する。次に、受信フレーム振り分け部４３−２は、第１実施形態と同様にして、フレームのトラヒッククラスに応じて、当該フレームのフレーム情報をディスクリプタリングに振り分ける。
【０１５３】
次に、第２実施形態の通信制御の例について説明する。
【０１５４】
図２０Ａは第２実施形態の第１仮想マシンの通信制御の例を説明するための図である。図２０Ｂは第２実施形態の第２仮想マシンの通信制御の例を説明するための図である。図２０Ｃは第２実施形態の第３仮想マシンの通信制御の例を説明するための図である。
【０１５５】
図２０Ａの説明は、図９Ａの説明と同様であるので省略する。
【０１５６】
図２０Ｂについて説明する。第２実施形態の第２仮想マシン２２ｂ−２は、仮想通信制御部３３ｂを更に備える。また、第２実施形態の第２仮想マシン２２ｂ−２の内部通信制御部２７ｂのフレーム情報記憶部２７６ｂ−２は、送信方向が外部宛のフレームのフレーム情報を記憶するディスクリプタがない点が、第１実施形態のフレーム情報記憶部２７６ｂとは異なる。第２実施形態の送信フレーム振り分け部２７１ｂ−２は、送信方向が外部宛のフレームのフレーム情報を、仮想通信制御部３３ｂのフレーム情報記憶部３３５ｂの送信方向のディスクリプタに振り分ける。
【０１５７】
図２０Ｃの説明は、図２０Ｂの説明と同様であるので省略する。
【０１５８】
図２１は第２実施形態の第２仮想マシン２２ｂ−２のフレーム送信要求処理の例を示すフローチャートである。送信フレーム振り分け部２７１ｂ−２の動作が、上述の第１実施形態の説明（図１３参照）とは異なる。送信フレーム振り分け部２７１ｂ−２は、転送情報を参照し、送信対象のフレームの宛先ＭＡＣアドレスが外部宛の場合（ステップＳ２，Ｎｏ）、外部宛のディスクリプタとして、仮想通信制御部３３ｂのフレーム情報記憶部３３５ｂの送信方向のディスクリプタを選択し、当該フレームのフレーム情報を追加する（ステップＳ４）。次に、仮想通信処理要求部３３６ｂが、ステップＳ４の処理により追加されたフレーム情報から特定されるフレームの送信処理要求を仮想通信インタフェース部４６ｂに通知する（ステップＳ６）。
【０１５９】
図２２は第１実施形態の第３仮想マシン２２ｃ−２のフレーム受信処理の例を示すフローチャートである。ステップＳ４１−２及びステップＳ４３−２の動作が、上述の第１実施形態の説明（図１７参照）とは異なる。
【０１６０】
はじめに、内部通信処理部２７８ｃが、内部通信処理要求通知部３２から通知を受け付けると、フレーム情報記憶部２７６ｃ−２の受信方向のディスクリプタリング、又は、フレーム情報記憶部３３５ｃの受信方向のディスクリプタリングに処理すべきディスクリプタリングがあるか否かを判定する（ステップＳ４１−２）。
【０１６１】
処理すべきディスクリプタリングがない場合（ステップＳ４１−２，Ｎｏ）、処理は終了する。
【０１６２】
処理すべきディスクリプタリングがある場合（ステップＳ４１−２，Ｙｅｓ）、フレーム受信完了通知部２７３ｃ又は３３２ｃが、受信処理完了をフレーム送受信インタフェース部２５ｃに通知する（ステップＳ４２）。
【０１６３】
次に、受信フレーム選択部２７９ｃ−２が、フレーム送受信インタフェース部２５ｃから、フレーム受信の要求を受け付けると、優先度に基づき選択された受信方向のディスクリプタリングから、フレーム情報を取得する（ステップＳ４３−２）。
【０１６４】
ステップＳ４４〜ステップＳ４７の説明は、上述の図１７の説明と同様なので省略する。
【０１６５】
以上説明したように、第２実施形態の通信装置１００は、送信対象のフレームの宛先が外部宛の場合、仮想通信制御部３３を用い、送信対象のフレームの宛先が内部宛の場合、内部通信制御部２７を用いて通信を行う。これにより、第２実施形態の通信装置１００によれば、第１実施形態の通信装置１００と同様の効果を得ることができる。また、第２実施形態の通信装置１００によれば、ＣＰＵの処理負荷を下げ、より効率的な通信を行うことが可能となる。
【０１６６】
なお、上述の第１及び第２実施形態の通信装置１００は、例えば、汎用のコンピュータ装置を基本ハードウェアとして用いることでも実現することが可能である。すなわち、上述の第１及び第２実施形態の通信装置１００の機能構成のうち、プログラムにより実現させることができる機能を、コンピュータ装置に搭載されたプロセッサに当該プログラムを実行させることにより実現させることができる。このとき、通信装置１００は、例えばプログラムをコンピュータ装置にあらかじめインストールすることで実現されてもよい。また例えば、通信装置１００は、ＣＤ−ＲＯＭ等の記憶媒体に記憶されたプログラムをコンピュータ装置に適宜インストールすることで実現されてもよい。また例えば、通信装置１００は、ネットワークを介して配布されたプログラムをコンピュータ装置に適宜インストールすることで実現されてもよい。
【０１６７】
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
【０１６８】
例えば、上述の実施形態では、フレーム情報記憶部２７６、３０５及び３３５がリングバッファ（ディスクリプタリング）である場合について説明したが、フレーム情報記憶部２７６、３０５及び３３５はキュー（ＦＩＦＯ：Ｆｉｒｓｔ  Ｉｎ  Ｆｉｒｓｔ  Ｏｕｔ）によって実現されていてもよい。
【０１６９】
また例えば、上述の実施形態では、フレーム転送部２９を第１仮想マシン２２ａ内で動作させる場合について説明したが、フレーム転送部２９はハイパバイザ２１で動作させてもよい。
【０１７０】
また例えば、上述の実施形態では、第２仮想マシン２２ｂの転送情報記憶部２８ｂ、及び、第３仮想マシン２２ｃの転送情報記憶部２８ｃが、内部転送先アドレスリスト（図１２Ａ参照）を記憶する場合について説明した。しかしながら、第２仮想マシン２２ｂの転送情報記憶部２８ｂ、及び、第３仮想マシン２２ｃの転送情報記憶部２８ｃは、図２３に示すように、外部転送先アドレスリスト（図１２Ｂ参照）を記憶してもよい。この場合、送信フレーム振り分け部２７１ｂ及び２７１ｃは、フレームの送信先ＭＡＣアドレスが外部転送先アドレスリストに含まれていない場合、当該フレームのフレーム情報を内部宛のディスクリプタリングに振り分ける。
【０１７１】
また、上述の実施形態では、第２仮想マシン２２ｂ、及び、第３仮想マシン２２ｃにおいて、フレーム情報記憶部２７６の受信方向にトラヒッククラス毎のディスクリプタリング、および、受信フレーム選択部２７９、を備える場合について説明した。しかしながら、図２４Ａ乃至２４Ｃに示すように、第１仮想マシン２２ａにおいて、受信フレーム選択部２７９、及び、受信方向にトラヒッククラス毎のディスクリプタリングを含むフレーム情報記憶部２８２ａを内部通信制御部２７毎に備える場合には、第２仮想マシン２２ｂ、及び、第３仮想マシン２２ｃにおいて、フレーム情報記憶部２７６の受信方向に１つのディスクリプタリングを備えるようにしてもよい。なお、図では、受信フレーム選択部２７９とフレーム情報記憶部２８２ａは内部通信制御部２７内に備えるようにしたが、内部通信制御部２７外でもよい。また、この場合、受信フレーム選択部２７９は第１仮想マシン２２ａの転送情報記憶部２８ａに含まれる第１仮想マシン２２ａの内部通信制御部（＃１）２７ａ−１の優先制御情報を参照して受信フレームを選択する。これにより、第２仮想マシン２２ｂ、及び、第３仮想マシン２２ｃの受信フレーム選択部２７９において受信フレームを選択する必要がなくなるため、図２５に示すように、第２仮想マシン２２ｂの転送情報記憶部２８ｂ−３に第１仮想マシンの内部通信制御部（＃１）の優先制御情報を記憶する必要がなくなる。これにより、第１仮想マシン２２ａの内部通信制御部（＃１）２７ａ−１の優先制御情報に関する仮想マシン２２間での共有処理をする必要がなくなる。なお、図２４Ｂ、及び、図２４Ｃでは、フレーム情報記憶部２７６の受信方向に１つのディスクリプタリングを備える場合を示したが、図９Ｂ、及び、図９Ｃと同様に、フレーム情報記憶部２７６の受信方向に２つまたは、それ以上のディスクリプタリングを備えるようにし、受信フレーム選択部２７９を備えてもよい。この場合、例えば、フレームプリエンプションテーブルを参照して、ｅｘｐｒｅｓｓに設定されているトラヒッククラスと、それ以外というように分け、受信フレーム選択部２７６で受信するディスクリプタリングを選択してもよい。
【符号の説明】
【０１７２】
１  メモリ
２  ホストプロセッサ
３  ストレージ
４  ネットワークインタフェースコントローラ
２１  ハイパバイザ
２２  仮想マシン
２３  ＯＳ
２４  アプリケーション
２５  フレーム送受信インタフェース部
２６  フレーム記憶部
２７  内部通信制御部
２８  転送情報記憶部
２９  フレーム転送部
３０  物理通信制御部
３１  転送情報共有処理要求通知部
３２  内部通信処理要求通知部
３３  仮想通信制御部
４１  物理層処理部
４２  データリンク層処理部
４３  受信フレーム振り分け部
４４  物理通信インタフェース部
４５  送信制御部
４６  仮想通信インタフェース部
１００  通信装置
２００  ネットワーク
２５１  送信フレーム記憶領域確保部
２５２  受信フレーム記憶領域解放部
２７１  送信フレーム振り分け部
２７２  フレーム送信完了通知部
２７３  フレーム受信完了通知部
２７４  受信フレーム記憶領域確保部
２７５  送信フレーム記憶領域解放部
２７６  フレーム情報記憶部
２７７  内部通信処理要求部
２７８  内部通信処理部
２７９  受信フレーム選択部
２８０  送信フレームマップ部
２８１  受信フレーム複製部
２８２  フレーム情報記憶部
２９１  受信フレーム選択部
２９２  転送情報書き込み部
２９３  送信フレーム振り分け部
３０１  フレーム受信完了通知部
３０２  フレーム送信完了通知部
３０３  受信フレーム記憶領域確保部
３０４  送信フレーム記憶領域解放部
３０５  フレーム情報記憶部
３０６  物理通知処理要求部
３０７  物理通信処理部
３３１  フレーム送信完了通知部
３３２  フレーム受信完了通知部
３３３  受信フレーム記憶領域確保部
３３４  送信フレーム記憶領域解放部
３３５  フレーム情報記憶部
３３６  仮想通信処理要求部
３３７  仮想通信処理部
【図１】
2019057817.tif 000003
【図２】
2019057817.tif 000004
【図３】
2019057817.tif 000005
【図４】
2019057817.tif 000006
【図５】
2019057817.tif 000007
【図６】
2019057817.tif 000008
【図７Ａ】
2019057817.tif 000009
【図７Ｂ】
2019057817.tif 000010
【図８】
2019057817.tif 000011
【図９Ａ】
2019057817.tif 000012
【図９Ｂ】
2019057817.tif 000013
【図９Ｃ】
2019057817.tif 000014
【図１０】
2019057817.tif 000015
【図１１】
2019057817.tif 000016
【図１２Ａ】
2019057817.tif 000017
【図１２Ｂ】
2019057817.tif 000018
【図１３】
2019057817.tif 000019
【図１４】
2019057817.tif 000020
【図１５】
2019057817.tif 000021
【図１６】
2019057817.tif 000022
【図１７】
2019057817.tif 000023
【図１８】
2019057817.tif 000024
【図１９】
2019057817.tif 000025
【図２０Ａ】
2019057817.tif 000026
【図２０Ｂ】
2019057817.tif 000027
【図２０Ｃ】
2019057817.tif 000028
【図２１】
2019057817.tif 000029
【図２２】
2019057817.tif 000030
【図２３】
2019057817.tif 000031
【図２４Ａ】
2019057817.tif 000032
【図２４Ｂ】
2019057817.tif 000033
【図２４Ｃ】
2019057817.tif 000034
【図２５】
2019057817.tif 000035