(57)【特許請求の範囲】
【請求項１】
複数の仮想計算機の各々に対応して設けられ対応する仮想計算機とネットワークとのインターフェースをなす仮想ネットワークインターフェースカード（ＶＮＩＣ）に共有され、前記ＶＮＩＣの各々から供給されて前記仮想計算機の各々の送信すべきパケット群の各送信パケットに関する情報群を処理し、この処理結果に従って各仮想計算機の送信パケットを前記ネットワークへ送信する物理ネットワークインターフェースカードを含む仮想計算機システムであって、
前記物理ネットワークインターフェースカードは、
前記ＶＮＩＣにそれぞれ対応して設けられ、対応するＶＮＩＣの送信パケット情報群に含まれる各優先度を基に、各送信パケットの送信順を定める優先度制御手段と、
前記ＶＮＩＣにそれぞれ対応して設けられ、対応するＶＮＩＣの前記送信パケット情報群に含まれる各データ量を基に、前記送信順に従って単位時間当りの送信最大量を制限する上限帯域制御手段と、
前記上限帯域制御手段の各々からの前記送信パケット情報群に含まれる各データ量を基に、前記ＶＮＩＣ毎に、前記送信順に従って単位時間当りの送信最低量を保証する下限帯域制御手段とを含み、
前記優先度制御手段、前記上限帯域制御手段、前記下限帯域制御手段は、この順に制御をなすよう設けられており、
前記優先度制御手段は、優先的に送信する高優先送信パケットの数を所定値に設定して、前記高優先送信パケットの数が前記所定値に達した時に、より低優先送信パケットを送出するようにしたことを特徴とするシステム。
【請求項２】
前記送信最大量は、前記ＶＮＩＣ毎に変更自在であることを特徴とする請求項１記載のシステム。
【請求項３】
前記送信最低量は、前記ＶＮＩＣ毎に変更自在であることを特徴とする請求項１または２記載のシステム。
【請求項４】
前記単位時間の経過後は、前記複数の仮想計算機のパケット送信をラウンドロビン方式で行うことを特徴とする請求項１〜３いずれか記載のシステム。
【請求項５】
前記上限帯域制御手段の各々は、前記送信パケットの存在の有無を示す情報を生成する手段と、送信すべき送信パケットのデータ量が前記送信最大量以上存在する場合に、他の上限帯域制御手段からの前記送信パケットの存在の有無を示す情報に応じて、自送信パケットの送信制御をなす手段とを有することを特徴とする請求項１〜４いずれか記載のシステム。
【請求項６】
前記送信制御をなす手段は、前記他の上限帯域制御手段からの前記送信パケットの存在の有無を示す情報が無を示すときに、自送信パケットの送信制御をなすことを特徴とする請求項５記載のシステム。
【請求項７】
前記送信制御をなす手段は、前記送信パケットの存在の有無を示す情報が無を示す上限帯域制御手段が存在する場合に、この無を示す上限帯域制御手段の現在の送信余力以内のデータ量に相当する自送信パケットの送信制御を行うことを特徴とする請求項５記載のシステム。
【請求項８】
前記送信制御をなす手段は、前記送信パケットの存在の有無を示す情報が無を示す上限帯域制御手段が複数存在する場合に、これら複数の上限帯域制御手段のうち現在の送信余力が最大の上限帯域制御手段を選択して、前記送信余力以内のデータ量に相当する自送信パケットの送信制御を行うことを特徴とする請求項７記載のシステム。
【請求項９】
前記送信制御をなす手段は、前記送信パケットの存在の有無を示す情報が無を示す上限帯域制御手段が複数存在する場合に、これら複数の上限帯域制御手段を予め指定された順番に選択しつつこの選択した上限帯域制御手段の現在の送信余力以内のデータ量に相当する自送信パケットの送信制御を行うことを特徴とする請求項７記載のシステム。
【請求項１０】
複数の仮想計算機の各々に対応して設けられ対応する仮想計算機とネットワークとのインターフェースをなす仮想ネットワークインターフェースカード（ＶＮＩＣ）に共有され、前記ＶＮＩＣの各々から供給されて前記仮想計算機の各々の送信すべきパケット群の各送信パケットに関する情報群を処理し、この処理結果に従って各仮想計算機の送信パケットを前記ネットワークへ送信する物理ネットワークインターフェースカードのパケット送信制御方法であって、
前記ＶＮＩＣ毎に、前記ＶＮＩＣの送信パケット情報群に含まれる各優先度を基に、各送信パケットの送信順を定める優先度制御ステップと、
前記ＶＮＩＣ毎に、前記ＶＮＩＣの前記送信パケット情報群に含まれる各データ量を基に、前記送信順に従って単位時間当りの送信最大量を制限する上限帯域制御ステップと、
前記ＶＮＩＣ毎に、前記上限帯域制御ステップからの前記送信パケット情報群に含まれる各データ量を基に、前記送信順に従って単位時間当りの送信最低量を保証する下限帯域制御ステップとを含み、
前記優先度制御ステップ、前記上限帯域制御ステップ、前記下限帯域制御ステップは、この順に制御をなすよう構成されており、
前記優先度制御ステップは、優先的に送信する高優先送信パケットの数を所定値に設定して、前記高優先送信パケットの数が前記所定値に達した時に、より低優先送信パケットを送出するようにしたことを特徴とする方法。
【請求項１１】
前記送信最大量は、前記ＶＮＩＣ毎に変更自在であることを特徴とする請求項１０記載の方法。
【請求項１２】
前記送信最低量は、前記ＶＮＩＣ毎に変更自在であることを特徴とする請求項１０または１１記載の方法。
【請求項１３】
前記単位時間の経過後は、前記複数の仮想計算機のパケット送信をラウンドロビン方式で行うステップを含むことを特徴とする請求項１０〜１２いずれか記載の方法。
【請求項１４】
前記ＶＮＩＣ毎の上限帯域制御ステップの各々は、前記送信パケットの存在の有無を示す情報を生成するステップと、送信すべき送信パケットのデータ量が前記送信最大量以上存在する場合に、他の上限帯域制御ステップからの前記送信パケットの存在の有無を示す情報に応じて、自送信パケットの送信制御をなすステップとを有することを特徴とする請求項１０〜１３いずれか記載の方法。
【請求項１５】
前記送信制御をなすステップは、前記他の上限帯域制御ステップからの前記送信パケットの存在の有無を示す情報が無を示すときに、自送信パケットの送信制御をなすことを特徴とする請求項１４記載の方法。
【請求項１６】
前記送信制御をなすステップは、前記送信パケットの存在の有無を示す情報が無を示す上限帯域制御のための手段が存在する場合に、この無を示す上限帯域制御のための手段の現在の送信余力以内のデータ量に相当する自送信パケットの送信制御を行うことを特徴とする請求項１４記載の方法。
【請求項１７】
前記送信制御をなすステップは、前記送信パケットの存在の有無を示す情報が無を示す上限帯域制御のための手段が複数存在する場合に、これら複数の上限帯域制御のための手段のうち現在の送信余力が最大の手段を選択して、前記送信余力以内のデータ量に相当する自送信パケットの送信制御を行うことを特徴とする請求項１６記載の方法。
【請求項１８】
前記送信制御をなすステップは、前記送信パケットの存在の有無を示す情報が無を示す上限帯域制御のための手段が複数存在する場合に、これら複数の上限帯域制御のための手段を予め指定された順番に選択しつつこの選択した手段の現在の送信余力以内のデータ量に相当する自送信パケットの送信制御を行うことを特徴とする請求項１７記載の方法。
【請求項１９】
複数の仮想計算機の各々に対応して設けられ対応する仮想計算機とネットワークとのインターフェースをなす仮想ネットワークインターフェースカード（ＶＮＩＣ）に共有され、前記ＶＮＩＣの各々から供給されて前記仮想計算機の各々の送信すべきパケット群の各送信パケットに関する情報群を処理し、この処理結果に従って各仮想計算機の送信パケットを前記ネットワークへ送信する物理ネットワークインターフェースカードであって、
前記ＶＮＩＣにそれぞれ対応して設けられ、対応するＶＮＩＣの送信パケット情報群に含まれる各優先度を基に、各送信パケットの送信順を定める優先度制御手段と、
前記ＶＮＩＣにそれぞれ対応して設けられ、対応するＶＮＩＣの前記送信パケット情報群に含まれる各データ量を基に、前記送信順に従って単位時間当りの送信最大量を制限する上限帯域制御手段と、
前記上限帯域制御手段の各々からの前記送信パケット情報群に含まれる各データ量を基に、前記ＶＮＩＣ毎に、前記送信順に従って単位時間当りの送信最低量を保証する下限帯域制御手段とを含み、
前記優先度制御手段、前記上限帯域制御手段、前記下限帯域制御手段は、この順に制御をなすよう設けられており、
前記優先度制御手段は、優先的に送信する高優先送信パケットの数を所定値に設定して、前記高優先送信パケットの数が前記所定値に達した時に、より低優先送信パケットを送出するようにしたことを特徴とするカード。
【請求項２０】
前記送信最大量は、前記ＶＮＩＣ毎に変更自在であることを特徴とする請求項１９記載のカード。
【請求項２１】
前記送信最低量は、前記ＶＮＩＣ毎に変更自在であることを特徴とする請求項１９または２０記載のカード。
【請求項２２】
前記単位時間の経過後は、前記複数の仮想計算機のパケット送信をラウンドロビン方式で行うことを特徴とする請求項１９〜２１いずれか記載のシステム。
【請求項２３】
前記上限帯域制御手段の各々は、前記送信パケットの存在の有無を示す情報を生成する手段と、送信すべき送信パケットのデータ量が前記送信最大量以上存在する場合に、他の上限帯域制御手段からの前記送信パケットの存在の有無を示す情報に応じて、自送信パケットの送信制御をなす手段とを有することを特徴とする請求項１９〜２２いずれか記載のカード。
【請求項２４】
前記送信制御をなす手段は、前記他の上限帯域制御手段からの前記送信パケットの存在の有無を示す情報が無を示すときに、自送信パケットの送信制御をなすことを特徴とする請求項２３記載のカード。
【請求項２５】
前記送信制御をなす手段は、前記送信パケットの存在の有無を示す情報が無を示す上限帯域制御手段が存在する場合に、この無を示す上限帯域制御手段の現在の送信余力以内のデータ量に相当する自送信パケットの送信制御を行うことを特徴とする請求項２３記載のカード。
【請求項２６】
前記送信制御をなす手段は、前記送信パケットの存在の有無を示す情報が無を示す上限帯域制御手段が複数存在する場合に、これら複数の上限帯域制御手段のうち現在の送信余力が最大の上限帯域制御手段を選択して、前記送信余力以内のデータ量に相当する自送信パケットの送信制御を行うことを特徴とする請求項２５記載のカード。
【請求項２７】
前記送信制御をなす手段は、前記送信パケットの存在の有無を示す情報が無を示す上限帯域制御手段が複数存在する場合に、これら複数の上限帯域制御手段を予め指定された順番に選択しつつこの選択した上限帯域制御手段の現在の送信余力以内のデータ量に相当する自送信パケットの送信制御を行うことを特徴とする請求項２５記載のカード。
【請求項２８】
複数の仮想計算機の各々に対応して設けられ対応する仮想計算機とネットワークとのインターフェースをなす仮想ネットワークインターフェースカード（ＶＮＩＣ）に共有され、前記ＶＮＩＣの各々から供給されて前記仮想計算機の各々の送信すべきパケット群の各送信パケットに関する情報群を処理し、この処理結果に従って各仮想計算機の送信パケットを前記ネットワークへ送信する物理ネットワークインターフェースカードのパケット送信制御方法をコンピュータに実行させるためのプログラムであって、
前記ＶＮＩＣ毎に、前記ＶＮＩＣの送信パケット情報群に含まれる各優先度を基に、各送信パケットの送信順を定める優先度制御処理と、
前記ＶＮＩＣ毎に、前記ＶＮＩＣの前記送信パケット情報群に含まれる各データ量を基に、前記送信順に従って単位時間当りの送信最大量を制限する上限帯域制御処理と、
前記ＶＮＩＣ毎に、前記上限帯域制御処理からの前記送信パケット情報群に含まれる各データ量を基に、前記送信順に従って単位時間当りの送信最低量を保証する下限帯域制御処理とを含み、
前記優先度制御処理、前記上限帯域制御処理、前記下限帯域制御処理は、この順に制御をなすよう構成されており、
前記優先度制御処理は、優先的に送信する高優先送信パケットの数を所定値に設定して、前記高優先送信パケットの数が前記所定値に達した時に、より低優先送信パケットを送出するようにしたことを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は仮想計算機システム及びパケット送信制御方法並びにそれに用いるネットワークインターフェースカードに関し、特に複数の仮想計算機の各々の送信すべきパケット群の各送信パケットに関する情報群を処理し、この処理結果に従って各仮想計算機の送信パケットをネットワークへ送信するネットワークインターフェースカードのパケット送信制御方式に関するものである。
【背景技術】
【０００２】
１つの計算機システムで利用可能なプロセッサ数は、マルチコアプロセッサが登場したことにより飛躍的に増加させることが可能となってきた。このようなプロセッサを多数搭載した計算機システムを単独ＯＳで利用すると、システムアイドル状態で多くのプロセッサ資源が無駄になってしまう。そこで、プロセッサ資源の利用効率を向上させる方法として、制御プログラムにより計算機システム上に複数の仮想計算機を同時に稼動させるという方法がある。
【０００３】
ここで、計算機システム上のＩ／Ｏデバイスの数はプロセッサ数に比べて増加の程度が緩やかなため、マルチコアプロセッサを搭載した計算機システムでは、プロセッサに対するＩ／Ｏデバイス数が減少するという状況が生じている。従って、計算機システム上で多くの仮想計算機を稼動させるためには、Ｉ／Ｏデバイスをいかに効率よく利用するかが課題となる。
【０００４】
そのための１つの解決策として、Ｉ／Ｏデバイスの１つであるネットワークインタ−フェースカード（Network Interface Card：ＮＩＣ）を制御プログラムにより仮想化し、この制御プログラムによって、計算機システム上に搭載している物理ＮＩＣを、複数のＶＮＩＣで共有するという方法がある（特許文献１参照）。この方法により、１つのＩ／Ｏデバイスを複数の仮想計算機で共有利用することが可能となる。
【０００５】
図２１に、このようなＶＮＩＣを用いた仮想計算機システムの一例を示している。図２１を参照すると、複数の仮想計算機１０ａ，１０ｂ，１０ｃ、主記憶３０及び物理ＮＩＣ２０は、ＰＣＩ（Peripheral Component Interconnect ）バス５０に共通接続されている。そして、物理ＮＩＣ２０はネットワーク４０に接続されている。
【０００６】
仮想計算機は１０ａは、アプリケーション１０１ａと、ＯＳ１０２ａと、ＶＮＩＣ（仮想ＮＩＣ）１０５ａとを備えており、ＯＳ１０２ａは、ＴＣＰ（Transmission Control Protocol ）／ＩＰ（Internet Protocol ）機能部１０３ａとドライバ１０４ａとを有している。他の仮想計算機１０ｂ，１０ｃも、仮想計算機１０ａと同一構成である。
【０００７】
物理ＮＩＣ２０は、ＰＣＩバスＩ／Ｆ（インターフェース）２００と、送信キュー２０１と、受信キュー２０２と、ＤＭＡ（Direct Memory Access）制御部２０６と、送信バッファ２０７と、受信バッファ２０８と、ネットワークＩ／Ｆ２０９とを備えている。
【０００８】
ここで、図２１に示したＶＮＩＣを使用した場合のパケット送信動作について説明する。ＶＮＩＣ１０５ａ，１０５ｂ，１０５ｃが同時にパケットを送信する場合、１つの物理ＮＩＣ２０に対して３つのＶＮＩＣが同時にアクセスしようとすることになるために、これらＶＮＩＣ間で排他制御を行う必要がある。
【０００９】
ここで、ＶＮＩＣ１０５ａが物理ＮＩＣ２０のロックを取得して物理ＮＩＣ２０へのアクセス権を取得したとすると、ＶＮＩＣ１０５ｂとＶＮＩＣ１０５ｃとは物理ＮＩＣ２０へのアクセス権を得られないので、ロック取得待ち状態となりパケット送信はできない。
【００１０】
一方、ロックを取得したＶＮＩＣ１０５ａは送信パケット情報を物理ＮＩＣ２０の送信キュー２０１に登録する。ＶＮＩＣ１０５ａが連続してパケットを送信する場合には、当該送信パケット情報は送信キュー２０１に連続登録されることになる。送信パケット情報の送信キューへの登録が完了した後、ＶＮＩＣ１０５ａのロックは開放となる。
【００１１】
ロックが解放されると、ロック取得待ち状態のＶＮＩＣ１０５ｂとＶＮＩＣ１０５ｃとに対してロック取得の機会が与えられる。ここで、ＶＮＩＣ１０５ｂがロックを取得したとすると、ＶＮＩＣ１０５ｃはロック取得待ち状態が継続することになる。
【００１２】
ロックを得したＶＮＩＣ１０５ｂは送信パケット情報を物理ＮＩＣ２０の送信キュー２０１に登録する。ＶＮＩＣ１０５ｂが連続してパケットを送信する場合は、当該送信パケット情報は送信キュー２０１に連続登録される。送信パケット情報の送信キューへの登録が完了した後、ＶＮＩＣ１０５ｂのロッは開放となる。
【００１３】
ロックが解放されると、ロック取得待ち状態のＶＮＩＣ１０５ｃがロックを取得する。ＶＮＩＣ１０５ｃは送信パケット情報を物理ＮＩＣ２０の送信キュー２０１に登録する。ＶＮＩＣ１０５ｃが連続してパケットを送信する場合には、当該送信パケット情報は送信キュー２０１に連続登録される。送信パケット情報の送信キューへの登録が完了すると、ＶＮＩＣ１０５ｃのロックは開放となる。
【００１４】
物理ＮＩＣ２０のＤＭＡ制御部２０６は、ＶＮＩＣ１０５ａ→ＶＮＩＣ１０５ｂ→ＶＮＩＣ１０５ｃの順に送信キューに登録された送信パケット情報に従って、送信キューに登録されている順番で、計算機主記憶３０に対してＤＭＡ制御を行う。すなわち、ＤＭＡ制御部２０６は、主記憶３０から、送信パケット情報に従って送信パケットデータをＰＣＩバス５０経由で取得し、送信バッファ２０７に格納する。送信バッファ２０７に格納されたパケットデータは、ネットワークＩ／Ｆ２０９を介してネットワーク４０に送信される。
【００１５】
なお、ネットワークＩ／Ｆ２０９は、ネットワーク４０からの自ＮＩＣ宛のパケットデータを受信して受信バッファ２０８に格納する。受信バッファ２０８はネットワーク４０からの受信パケットを格納し、格納した受信パケットを解析してＤＭＡ制御部２０６に対してＤＭＡ起動指示を与えるようになっている。
【特許文献１】特開２００７−１５８８７０号公報
【発明の開示】
【発明が解決しようとする課題】
【００１６】
図２１に示したシステムでは、１つの物理リソースを、複数のＶＮＩＣにより共有する構成のために、制御プログラムによる物理ＮＩＣの排他制御が必要になり、ロック取得待ちの処理時間が発生する。このためロック取得待ち時間分のパケット送信遅延が発生する。
【００１７】
また、特定のＶＮＩＣがデータ転送で物理ＮＩＣを占有することにより、他ＶＮＩＣのデータ転送ができなくなって、最低限のデータ転送帯域が確保できなくなる場合がある。更に、リアルタイム性が必要なパケット（例えば、Ｔｅｌｎｅｔ、ＦＴＰ（File Transfer Protocol）制御といったパケット）が、先行する他ＶＮＩＣのデータ転送パケットにより処理が遅延する場合がある。
【００１８】
本発明の目的は、特定のＶＮＩＣによる共有物理ＮＩＣのパケット送信のためのロック占有をなくして、ロック取得待ち時間に起因するパケット送信遅延を少なくするようにした仮想計算機システム及びパケット送信制御方法並びにそれに用いるネットワークインターフェースカード、プロクラムを提供することである。
【課題を解決するための手段】
【００１９】
本発明による仮想計算機システムは、
複数の仮想計算機の各々に対応して設けられ対応する仮想計算機とネットワークとのインターフェースをなす仮想ネットワークインターフェースカード（ＶＮＩＣ）に共有され、前記ＶＮＩＣの各々から供給されて前記仮想計算機の各々の送信すべきパケット群の各送信パケットに関する情報群を処理し、この処理結果に従って各仮想計算機の送信パケットを前記ネットワークへ送信する物理ネットワークインターフェースカードを含む仮想計算機システムであって、
前記物理ネットワークインターフェースカードは、
前記ＶＮＩＣにそれぞれ対応して設けられ、対応するＶＮＩＣの送信パケット情報群に含まれる各優先度を基に、各送信パケットの送信順を定める優先度制御手段と、
前記ＶＮＩＣにそれぞれ対応して設けられ、対応するＶＮＩＣの前記送信パケット情報群に含まれる各データ量を基に、前記送信順に従って単位時間当りの送信最大量を制限する上限帯域制御手段と、
前記上限帯域制御手段の各々からの前記送信パケット情報群に含まれる各データ量を基に、前記ＶＮＩＣ毎に、前記送信順に従って単位時間当りの送信最低量を保証する下限帯域制御手段とを含み、
前記優先度制御手段、前記上限帯域制御手段、前記下限帯域制御手段は、この順に制御をなすよう設けられており、
前記優先度制御手段は、優先的に送信する高優先送信パケットの数を所定値に設定して、前記高優先送信パケットの数が前記所定値に達した時に、より低優先送信パケットを送出するようにしたことを特徴とする。
【００２０】
本発明によるパケット送信制御方法は、
複数の仮想計算機の各々に対応して設けられ対応する仮想計算機とネットワークとのインターフェースをなす仮想ネットワークインターフェースカード（ＶＮＩＣ）に共有され、前記ＶＮＩＣの各々から供給されて前記仮想計算機の各々の送信すべきパケット群の各送信パケットに関する情報群を処理し、この処理結果に従って各仮想計算機の送信パケットを前記ネットワークへ送信する物理ネットワークインターフェースカードのパケット送信制御方法であって、
前記ＶＮＩＣ毎に、前記ＶＮＩＣの送信パケット情報群に含まれる各優先度を基に、各送信パケットの送信順を定める優先度制御ステップと、
前記ＶＮＩＣ毎に、前記ＶＮＩＣの前記送信パケット情報群に含まれる各データ量を基に、前記送信順に従って単位時間当りの送信最大量を制限する上限帯域制御ステップと、
前記ＶＮＩＣ毎に、前記上限帯域制御ステップからの前記送信パケット情報群に含まれる各データ量を基に、前記送信順に従って単位時間当りの送信最低量を保証する下限帯域制御ステップとを含み、
前記優先度制御ステップ、前記上限帯域制御ステップ、前記下限帯域制御ステップは、この順に制御をなすよう構成されており、
前記優先度制御ステップは、優先的に送信する高優先送信パケットの数を所定値に設定して、前記高優先送信パケットの数が前記所定値に達した時に、より低優先送信パケットを送出するようにしたことを特徴とする。
【００２１】
本発明によるネットワークインターフェースカードは、
複数の仮想計算機の各々に対応して設けられ対応する仮想計算機とネットワークとのインターフェースをなす仮想ネットワークインターフェースカード（ＶＮＩＣ）に共有され、前記ＶＮＩＣの各々から供給されて前記仮想計算機の各々の送信すべきパケット群の各送信パケットに関する情報群を処理し、この処理結果に従って各仮想計算機の送信パケットを前記ネットワークへ送信する物理ネットワークインターフェースカードであって、
前記ＶＮＩＣにそれぞれ対応して設けられ、対応するＶＮＩＣの送信パケット情報群に含まれる各優先度を基に、各送信パケットの送信順を定める優先度制御手段と、
前記ＶＮＩＣにそれぞれ対応して設けられ、対応するＶＮＩＣの前記送信パケット情報群に含まれる各データ量を基に、前記送信順に従って単位時間当りの送信最大量を制限する上限帯域制御手段と、
前記上限帯域制御手段の各々からの前記送信パケット情報群に含まれる各データ量を基に、前記ＶＮＩＣ毎に、前記送信順に従って単位時間当りの送信最低量を保証する下限帯域制御手段とを含み、
前記優先度制御手段、前記上限帯域制御手段、前記下限帯域制御手段は、この順に制御をなすよう設けられており、
前記優先度制御手段は、優先的に送信する高優先送信パケットの数を所定値に設定して、前記高優先送信パケットの数が前記所定値に達した時に、より低優先送信パケットを送出するようにしたことを特徴とする。
【００２２】
本発明によるプログラムは、
複数の仮想計算機の各々に対応して設けられ対応する仮想計算機とネットワークとのインターフェースをなす仮想ネットワークインターフェースカード（ＶＮＩＣ）に共有され、前記ＶＮＩＣの各々から供給されて前記仮想計算機の各々の送信すべきパケット群の各送信パケットに関する情報群を処理し、この処理結果に従って各仮想計算機の送信パケットを前記ネットワークへ送信する物理ネットワークインターフェースカードのパケット送信制御方法をコンピュータに実行させるためのプログラムであって、
前記ＶＮＩＣ毎に、前記ＶＮＩＣの送信パケット情報群に含まれる各優先度を基に、各送信パケットの送信順を定める優先度制御処理と、
前記ＶＮＩＣ毎に、前記ＶＮＩＣの前記送信パケット情報群に含まれる各データ量を基に、前記送信順に従って単位時間当りの送信最大量を制限する上限帯域制御処理と、
前記ＶＮＩＣ毎に、前記上限帯域制御処理からの前記送信パケット情報群に含まれる各データ量を基に、前記送信順に従って単位時間当りの送信最低量を保証する下限帯域制御処理とを含み、
前記優先度制御処理、前記上限帯域制御処理、前記下限帯域制御処理は、この順に制御をなすよう構成されており、
前記優先度制御処理は、優先的に送信する高優先送信パケットの数を所定値に設定して、前記高優先送信パケットの数が前記所定値に達した時に、より低優先送信パケットを送出するようにしたことを特徴とする。                      
【発明の効果】
【００２３】
本発明によれば、以下の効果が得られる。複数のＶＮＩＣの各々に対して、送信パケットの優先度制御、また単位時間当りの最大送信量の制限をなす上限帯域制御機能、更には、単位時間当りの最低送信量の保証する下限帯域制御機能を設けることにより、複数のＶＮＩＣにより物理ＮＩＣが共有利用されても、各ＶＮＩＣのデータ転送帯域を保証することができ、パケット送信遅延をなくすことが可能となる。
【発明を実施するための最良の形態】
【００２４】
以下に、本発明の実施の形態について説明するが、それに先立ち、本発明のより良い理解のために、図１及び図２を参照して本発明の原理を説明する。
【００２５】
図１は本発明の原理を説明すたるめ概略機能ブロック図である。複数の仮想計算機１，２，３と物理ＮＩＣ５とは共通バス４により相互接続されている。これら仮想計算機の各々は仮想ネットワークインターフェースカード（ＶＮＩＣ）１１，２１，３１を有している。物理ネットワークインターフェースカード（物理ＮＩＣ）５は、共通バス４に接続されてＶＮＩＣ１１，２１，３１により共有（共用）されている。
【００２６】
この物理ＮＩＣ５は、仮想計算機１，２，３の各々の送信すべきパケット群（グループ）の各送信パケットに関する情報群を処理して、処理結果に従って、各仮想計算機の送信パケットをネットワークへ送信するものである。なお、この送信パケットに関する情報（送信パケット情報と称す）とは、送信パケットの番号、送信の優先度、データサイズ（データ量）、ＤＭＡ制御のための主記憶（図２１の３０参照）のアドレスなどを含むものとする。
【００２７】
物理ＮＩＣ５は、優先度制御部５１と、上限帯域制御部５２と、下限帯域制御部５３とを備えている。優先度制御部５１は、仮想計算機１〜３の各々のＶＮＩＣ１１，２１，３１からの送信パケット情報の各優先度を基に、ＶＮＩＣ１１，２１，３１毎に、各送信パケットの優先度をそれぞれ判定して、その優先度に応じて送信パケットの送信順を定めるものである。
【００２８】
上限帯域制御部５２は、ＶＮＩＣ１１，２１，３１毎に、送信パケット情報のデータ量を基に、送信順に従って送信パケットデータ量を監視して単位時間当りの送信最大量を、制限するものである。下限帯域制御部５３は、送信パケット情報を基に、ＶＮＩＣ毎に、送信順に従って送信パケットのデータ量を監視して単位時間当りの送信最低量を保証するものである。
【００２９】
図２を参照すると、図１に示した物理ＮＩＣ５の動作の概略を示すフローである。先ず、物理ＮＩＣ５の優先度制御部５１において、ＶＮＩＣ１１，２１，３１からの各送信パケット情報群のそれぞれの優先度が判定され、優先度に応じて送信パケットの送信順が、ＶＮＩＣ毎に決定される（ステップＳ１）。
【００３０】
次に、上限帯域制御部５２において、ＶＮＩＣ１１，２１，３１からの各送信パケット情報群のそれぞれのデータ量を、送信順に従って監視して、ＶＮＩＣ毎に単位時間当りの送信最大量を制限する、上限帯域制御がなされる（ステップＳ２）。
【００３１】
最後に、下限帯域制御部５３において、ＶＮＩＣ１１，２１，３１からの各送信パケット情報群のそれぞれのデータ量を、送信順に従って監視して、仮想計算機毎に単位時間当りの送信最低量を制限する、下限帯域制御がなされる（ステップＳ３）。
【００３２】
この様に、優先度制御と、上限帯域制御と、下限帯域制御とを、仮想計算機すなわちＶＮＩＣ毎に、物理ＮＩＣにおいて実行することにより、各ＶＮＩＣのデータ転送帯域を保証することができ、パケット送信遅延をなくすことが可能となる。
【００３３】
次に、本発明の実施の形態について図面を参照して詳細に説明する。図３は本発明の一実施の形態による物理ＮＩＣ２０の機能を示すブロック図である。物理ＮＩＣ２０は、ＰＣＩバスＩ／Ｆ２００と、送信キュー２０１ａ〜２０１ｃと、受信キュー２０２ａ〜２０２ｃと、優先度制御機構２０３ａ〜２０３ｃと、上限帯域制御機構２０４ａ〜２０４ｃと、下限帯域制御機構２０５と、ＤＭＡ制御部２０６と、送信バッファ２０７と、受信バッファ２０８と、ネットワークＩ／Ｆ２０９とを備えている。
【００３４】
ＰＣＩバスＩ／Ｆ２００は、図１に示したＰＣＩバス４とのインターフェースである。送信キュー２０１ａ〜２０１ｃは、図１に示した各ＶＮＩＣ１１〜３３に対応する送信パケット情報を格納するキューである。受信キュー２０２ａ〜２０２ｃは、図１に示した各ＶＮＩＣ１１〜３３に対応する受信パケット情報を格納するキューである。
【００３５】
優先度制御機構２０３ａ〜２０３ｃは、送信キュー２０１ａ〜２０１ｃに対応するものであって、対応する送信キューにそれぞれ登録された送信パケット情報を基に、送信キューに登録された順番を優先度の高いパケットを先に送信するように並べ替える機能を有している。
【００３６】
ここで、図４を参照すると、当該優先度制御機構２０３（２０３ａ〜２０３ｃ）の構成を示している。優先度制御機構２０３において、データレジスタ２０３１は、対応する送信キュー２０１より送られてくる送信パケット情報を一時的に保持するものである。また、優先判定論理部２０３２は、このデータレジスタ２０３に保持されている送信パケット情報のパケットフラグを参照して、次に登録する送信キューを選択する機能を有する。
【００３７】
また、高優先送信キュー２０３３は、高優先の送信パケット情報を登録するものであり、低優先送信キュー２０３４は、その他低優先の送信パケット情報を登録ものである。更に、選択判定論理部２０３５は、高優先送信キュー２０３３への送信パケット登録状態を監視して次に送る送信パケット情報を選択する機能を有している。すなわち、優先的に送出する高優先送信パケット情報の数を予め所定値としておき、高優先送信パケット情報の数がこの所定値に達すると、低優先送信パケット情報の送信沈み込みを回避すべく、低優先送信パケット情報を送出するような論理制御をなす機能を、選択判定論理部は有している。この所定値を、選択判定基準と称するものとする。
【００３８】
図３に戻ると、上限帯域制御機構２０４ａ〜２０４ｃは、送信キュー２０１ａ〜２０１ｃに対応するものであって、対応する送信キューに登録された各送信パケット情報のパケット長を監視し、予め設定しておいた上限帯域（最大送信量）以上のパケット送信を抑止する機能を有する。
【００３９】
ここで、図５を参照すると、当該上限帯域制御機構２０４（２０４ａ〜２０４ｃ）の構成を示している。上限帯域制御機構２０４において、データレジスタ２０４１は、対応する優先度制御機構２０３２から送られてくる送信パケット情報を一時的に保持するものである。また、カウンタ２０４２は、このデータレジスタ２０４１に保持された各送信パケット情報のデータサイズを加算して一定期間保持するものである。
【００４０】
更に、上限値レジスタ２０４３は、上限帯域値を設定しておくものであり、比較論理部２０４４は、カウンタ２０４２と上限値レジスタ２０４３との値を比較して、カウンタ２０４２の値が上限値よりも小さい場合に、データレジスタ２０４１に保持された送信パケット情報を送出する機能を有する。
【００４１】
再度図３に戻ると、下限帯域保証機構２０５は、各上限帯域制御機構２０４ａ〜２０４ｃから送られてくる送信パケット情報から実際の送信パケットサイズを監視して、予め設定しておいた最低（下限）送信量の保証をなす機能を有する。
【００４２】
ここで、図６を参照すると、当該下限帯域保証機構２０５の構成を示している。下限帯域保証機構２０５において、データレジスタ２０５１ａ〜２０５１ｃは、対応する上限帯域制御機構２０４ａ〜２０４ｃからそれぞれ送られてくる送信パケット情報を一時的に保持するものである。また、カウンタ２０５２ａ〜２０５２ｃは、各データレジスタ２０５１ａ〜２０５１ｃに保持された送信パケット情報のデータサイズを加算して一定期間保持するものである。
【００４３】
更に、下限値レジスタ２０５３は、下限帯域値を設定しておくものである。送信パケット選択論理部２０５４は、各カウンタ２０５２ａ〜２０５２ｃと下限値レジスタ２０５３との値をそれぞれ比較した結果に基づき、実際にネットワークへ送信するパケット情報を選択して、ＤＭＡ制御部に対してＤＭＡ起動指示を与えるものである。
【００４４】
再び図３に戻ると、ＤＭＡ制御部２０６は、下限帯域保証機構２０５の指示に応じて、計算機システムの主記憶（図２１の３０に相当）から送信パケットデータをＰＣＩバス経由で取得し、送信バッファ２０７に格納する機能と、受信バッファ２０８の指示に応じて、受信バッファ２０８に格納されている受信パケットデータをＰＣＩバス経由で主記憶に格納する機能を有する。
【００４５】
送信バッファ２０７は、送信パケットデータを格納する機能を有する。受信バッファ２０８は、ネットワークから受信した受信パケットを格納し、格納した受信パケットを解析し、受信対象となるＶＮＩＣに対応する受信キュー２０２ａ〜２０２ｃを選択し、ＤＭＡ制御部２０５に対してＤＭＡ起動指示を与える機能を有する。
【００４６】
ネットワークＩ／Ｆ２０９は、送信バッファに格納された送信パケットデータをネットワークに出力する機能と、ネットワークから自ＮＩＣ２０宛てのパケットデータを受信し、受信バッファに格納する機能を有する。
【００４７】
以下に、本発明の実施の形態の動作を、図７及び図８並びに図９を参照しつつ説明する。図７及び図８は物理ＮＩＣ２０の送信パケット制御態様の一例を示し、図９は物理ＮＩＣ２０の受信パケット制御態様の一例を示している。先ず、図７及び図８を参照して物理ＮＩＣ２０のパケット送信動作について詳細に説明する。
【００４８】
図７及び図８では、送信キュー２０１ａ〜２０１ｃにそれぞれ対応した送信パケット情報グループＡ〜Ｃについて示しており、先ず、送信パケット情報グループＡについて説明する。
【００４９】
優先度制御機構２０３ａは、送信キュー２０１ａに登録された送信パケット情報１ａ〜８ａの送信パケットフラグ情報を参照して、高優先送信パケット１ａ，２ａ，５ａと低優先送信パケット３ａ，４ａ，６ａ，７ａ，８ａとに分け、高優先送信パケット情報から順番（１ａ→２ａ→５ａ→３ａ→４ａ→６ａ→７ａ→８ａ）に上限帯域制御機構２０４ａへ送る。
【００５０】
上限帯域制御機構２０４ａは、優先度制御機構２０３ａから送られてくる送信パケット情報の送信パケットデータサイズを順次加算（積算）して、この加算値が上限値レジスタ値（本例では、１０００としている）未満の場合に、下限帯域制御機構２０５に送信パケット情報を送る。ここでは、送信パケット情報１ａ，２ａ，５ａ，３ａ，４ａ，６ａ，７ａ，８ａの送信パケットデータサイズの合計が９３０（＝１０＋１０＋１０＋１００＋３００＋２００＋２００＋１００）となるため、上限値レジスタ値１０００未満であることから、送信パケット情報１ａ〜８ａの全てが下限帯域制御機構２０５に送られる。
【００５１】
次に、送信パケット情報グループＢについて説明する。優先度制御機構２０３ｂは、送信キュー２０１ｂに登録された送信パケット情報１ｂ〜８ｂの送信パケットフラグ情報を参照して、高優先送信パケット５ｂと低優先送信パケット１ｂ，２ｂ，３ｂ，４ｂ，６ｂ，７ｂ，８ｂとに分け、高優先送信パケット情報から順番（５ｂ→１ｂ→２ｂ→３ｂ→４ｂ→６ｂ→７ｂ→８ｂ）に上限帯域制御機構２０４ｂへ送る。
【００５２】
上限帯域制御機構２０４ｂは、優先度判定機構２０３ｂから送られてくる送信パケット情報の送信パケットデータサイズを順次加算（積算）して、この加算値が上限値レジスタ値未満の場合に、下限帯域制御機構２０５に送信パケット情報を送る。ここでは、送信パケット情報の５ｂ，１ｂ，２ｂ，３ｂの送信パケットデータサイズを加算した時点で、送信パケットデータサイズの合計が９１０（＝１０＋３００＋５００＋１００）となる。
【００５３】
そして、次の送信パケット情報４ｂの送信パケットデータサイズを加算すると、送信パケットデータサイズの合計が１２１０（＝９１０＋３００）となり、上限値レジスタ値以上になるために、送信パケット情報４ｂ，６ｂ，７ｂ，８ｂは下限帯域制御機構２０５に送られず、送信パケット情報５ｂ，１ｂ，２ｂ，３ｂが下限帯域制御機構２０５に送られる。
【００５４】
次に、送信パケット情報グループＣについて説明する。優先度制御機構２０３ｃは、送信キュー２０１ｃに登録された送信パケット情報１ｃ〜８ｃの送信パケットフラグ情報を参照して、高優先送信パケット２ｃ，４ｃ，５ｃ，６ｃ，７ｃ，８ｃと低優先送信パケット１ｃ，３ｃとに分ける。
【００５５】
ここでは、高優先送信パケット情報数が選択判定基準（本例では、選択判定基準の値は５とする）を超過することになる。この高優先送信パケット情報数の超過による低優先送信パケット情報の送信沈み込みを回避するために、高優先送信パケット情報の２ｃ→４ｃ→５ｃ→６ｃ→７ｃを送った後に、低優先送信パケット情報の１ｃを送り、再度高優先送信パケット情報の８ｃを送る制御を行う。この結果、送信パケット情報２ｃ→４ｃ→５ｃ→６ｃ→７ｃ→１ｃ→８ｃ→３ｃの順番で、上限帯域制御機構２０４ｃに送られることになる。
【００５６】
上限帯域制御機構２０４ｃは、優先度制御機構２０３ｃから送られてくる送信パケット情報の送信パケットデータサイズを順次加算（積算）して、この加算値が上限値レジスタ値未満の場合に、下限帯域制御機構２０５に送信パケット情報を送る。ここでは、送信パケット情報２ｃ，４ｃ，５ｃ，６ｃ，７ｃ，１ｃ，８ｃ，３ｃの送信パケットデータサイズの合計が６６０（＝１０＋１０＋１０＋１０＋１０＋５００＋１０＋１００）となるため、上限値レジスタ値１０００未満となるので送信パケット情報１ｃ〜８ｃが下限帯域制御機構２０５に送られる。
【００５７】
この送信キュー２０１ａ〜２０１ｃから上限帯域制御機構２０４ａ〜２０４ｃまでの処理は、物理ＮＩＣ２０上で同時に動作可能である。また、各上限帯域制御機構２０４ａ〜２０４ｃ内のカウンタ２０４２は一定の時間間隔でリセットされ、リセット後は、後続の送信パケット情報に対して、上記した送信パケット制御が行われることになる。
【００５８】
このような送信パケット制御を繰返すことにより、各送信パケット情報グループにそれぞれ対応する送信パケットデータグループに対して上限帯域を保証することが可能になる。下限帯域制御機構２０５に送られなかった送信パケット情報グループＢの送信パケット情報４ｂ，６ｂ，７ｂ，８ｂは、カウンタがリセットされた後で処理される。
【００５９】
次に、下限帯域制御機構２０５は、上限帯域制御機構２０４ａ〜２０４ｃから送られてくる送信パケット情報を用いて、ＤＭＡ制御部２０６に対してＤＭＡ起動指示を行う。先ず、下限帯域制御機構２０５は通信パケット情報グループＡの処理を行う。すなわち、下限帯域制御機構２０５は、上限帯域制御機構２０４ａから送られてくる送信パケット情報１ａ〜８ａの送信パケットデータサイズを、カウンタ２０５２ａにより加算して、下限値レジスタ値以上になるまでの送信パケット情報にてＤＭＡ制御部２０６に対してＤＭＡ起動指示を行う。
【００６０】
ここでは、１ａ→２ａ→５ａ→３ａのパケットデータを取得した時点で、送信パケットデータサイズの合計が１３０（＝１０＋１０＋１０＋１００）となり、下限値レジスタ値（例えば、下限値レジスタ値を１００とする）以上となるので、下限帯域制御機構２０５は、ＤＭＡ制御部２０６に対して、次の通信パケット情報グループの送信パケットデータの取得に移るよう指示する。すなわち、送信パケット情報グループＡの処理に続いて通信パケット情報グループＢの処理を行うことになる。
【００６１】
下限帯域制御機構２０５は、上限帯域制御機構２０４ｂから送られてくる送信パケット情報５ｂ，１ｂ，２ｂ，３ｂの送信パケットデータサイズを、カウンタ２０５２ｂにより加算して、下限値レジスタ値以上になるまでの送信パケット情報にてＤＭＡ制御部２０６に対してＤＭＡ起動指示を行う。
【００６２】
ここでは、５ｂ→１ｂのパケットデータを取得した時点で、送信パケットデータサイズの合計が３１０（＝１０＋３００）となり、下限値レジスタ値の１００以上となるので、下限帯域制御機構２０５は、ＤＭＡ制御部２０６に対して、次の通信パケット情報グループの送信パケットデータの取得に移るよう指示する。すなわち、送信パケット情報グループＢの処理に続いて通信パケット情報グループＣの処理を行うことになる。
【００６３】
下限帯域制御機構２０５は、上限帯域制御機構２０４ｃから送られてくる送信パケット情報１ｃ〜８ｃの送信パケットデータサイズを、カウンタ２０５２ｃにより加算して、下限値レジスタ値以上になるまでの送信パケット情報にてＤＭＡ制御部２０６に対してＤＭＡ起動指示を行う。
【００６４】
ここでは、２ｃ→４ｃ→５ｃ→６ｃ→７ｃ→１ｃのパケットデータを取得した時点で、送信パケットデータサイズの合計が５５０（＝１０＋１０＋１０＋１０＋１０＋５００）となり、下限値レジスタ値の１００以上となるので、下限帯域制御機構２０５は、ＤＭＡ制御部２０６に対して、次の通信パケット情報グループの送信パケットデータの取得に移るように指示する。
【００６５】
このようにして、送信パケット情報を１ａ→２ａ→５ａ→３ａ→５ｂ→１ｂ→２ｃ→４ｃ→５ｃ→６ｃ→７ｃ→１ｃの順番で処理することにより、該当する送信パケットデータを主記憶３０から取得し送信バッファ２０７に格納する。
【００６６】
かかる送信パケットデータの処理により、送信パケット情報グループＡ〜Ｃに対して既に下限帯域を保証したので、残りの送信パケット情報に対する処理はラウンドロビン制御により送信パケット情報グループＡ→Ｂ→Ｃの順番で行う。
【００６７】
ここでは、残りの送信パケット情報を、４ａ→２ｂ→８ｃ→６ａ→３ｂ→３ｃ→７ａ→８ａの順番で処理することにより、該当する送信パケットデータを主記憶３０から取得し送信バッファ２０７に格納する。また、下限帯域制御機構２０５内のカウンタ２０５２ａ〜２０５２ｃは一定の時間間隔でリセットされる。リセット後は、ラウンドロビン制御で行っていた送信パケット制御を、下限値レジスタ値と送信パケットデータサイズの加算結果とを比較する送信パケット制御に戻る。
【００６８】
このような送信パケット制御を繰り返すことにより、各送信パケット情報グループにそれぞれ対応する送信パケットデータグループに対して下限帯域を保証することができる。なお、上述した処理により、送信バッファ２０７に格納された送信パケットデータは、ネットワークＩ／Ｆ２０９にてネットワーク４０に送信される。
【００６９】
次に、物理ＮＩＣ２０のパケット受信動作について、図９を参照して詳細に説明する。物理ＮＩＣ２０は、ネットワーク４０から受信したパケットについて受信した順番で処理を行う。ネットワーク４０からネットワークＩ／Ｆ２０９が、受信パケット番号１（以下単に番号１と称す）の受信パケットデータを受信すると、受信バッファ２０８にこの受信パケットデータを格納する。
【００７０】
受信バッファ２０８は、格納された番号１の受信パケットデータから受信対象のＩＰアドレスデータを抜き出し、この受信パケットのＩＰアドレスに対応する受信キューを選択する。ここでは、番号１の受信パケットデータの受信パケットのＩＰアドレスは、“ａ．ａ．ａ．ａ”なので、“ａ．ａ．ａ．ａ”のＩＰアドレスに対応する受信キュー２０２ａが選択される。ＤＭＡ制御部２０６は、選択された受信キュー２０２ａに対応する主記憶３０のアドレスに、番号１の受信パケットデータ１をＤＭＡ転送し、受信キュー２０２ａに受信バッファ情報を登録する。
【００７１】
次に、ネットワークＩ／Ｆ２０９は、番号２の受信パケットデータを受信すると、受信バッファ２０８に受信パケットデータ２を格納する。受信バッファ２０８は、格納された番号２の受信パケットデータから受信対象のＩＰアドレスデータを抜き出し、この受信パケットのＩＰアドレスに対応する受信キューを選択する。ここでは、番号２の受信パケットデータの受信パケットのＩＰアドレスは“ｂ．ｂ．ｂ．ｂ”なので、“ｂ．ｂ．ｂ．ｂ”のＩＰアドレスに対応する受信キュー２０２ｂが選択される。ＤＭＡ制御部２０６は、選択された受信キュー２０２ｂに対応する主記憶３０のアドレスに、受信パケットデータ２をＤＭＡ転送し、受信キュー２０２ｂに受信バッファ情報を登録する。
【００７２】
次に、ネットワークＩ／Ｆ２０９は、番号３の受信パケットデータを受信すると、受信バッファ２０８にこの受信パケットデータを格納する。受信バッファ２０８は、格納された番号３の受信パケットデータ３から受信対象のＩＰアドレスデータを抜き出し、受信パケットのＩＰアドレスに対応する受信キューを選択する。ここでは、受信パケットデータ３の受信パケットのＩＰアドレスは“ｃ．ｃ．ｃ．ｃ”なので、“ｃ．ｃ．ｃ．ｃ”のＩＰアドレスに対応する受信キュー２０２ｃが選択される。ＤＭＡ制御部２０６は、選択された受信キュー２０２ｃの対応する主記憶３０のアドレスに、受信パケットデータ２をＤＭＡ転送し、受信キュー２０２ｃに受信バッファ情報を登録する。
【００７３】
以下、番号４〜８の各受信パケットについても同様に、受信したパケットデータに応じて、各受信キュー２０２ａ〜２０２ｃに受信パケットデータが登録されるのである。こうして、各受信キューに受信パケット情報が登録されると、各受信キューに対応しているＶＮＩＣ１０５，１１５，２５が、それぞれ受信パケットデータの取り込みを行う。
【００７４】
このように、複数の送信キューと、優先度制御機構と、上限帯域制御機構と、下限帯域制御機構とを設けることにより、複数のＶＮＩＣに共有されるＮＩＣは、各ＶＮＩＣのデータ転送帯域を保証することが可能となり、各仮想計算システムに対して安定したネットワークサービスを提供することが可能となる。また、各ＶＮＩＣが対応する受信キューを搭載することにより、受信データの振り分け処理の負荷が軽減可能である。
【００７５】
次に、本発明の他の実施の形態について、図１０を参照して説明する。図１０において、図３と同等部分には同一符号を付して示している。本実施の形態では、先の実施の形態における下限値レジスタ２０５３及び上限値レジスタ２０４３として、ＮＩＣの制御ソフトウエアにより個別に設定値を変更可能とする。更に、これら上限値レジスタ及び下限値レジスタを個々の送信キュー２０１ａ，２０１ｂ，２０１ｃにそれぞれ対応して実装することにより、ＶＮＩＣ毎のデータ転送性能に差をつけるようにしたものである。
【００７６】
図１０を参照すると、上限値レジスタ２１０ａ〜２１０ｃ、下限値レジスタ２１１ａ〜２１１ｃを、個々の送信キュー２０１ａ，２０１ｂ，２０１ｃ対応に実装した物理ＮＩＣ２０の構成を示している。これら上限値レジスタ２１０ａ〜２１０ｃ及び下限値レジスタ２１１ａ〜２１１ｃは、ＮＩＣの制御ソフトウエアにより個別に値を設定可能なレジスタにより構成される。
【００７７】
ここで、一例として、送信パケット情報グループＡの上限値レジスタ２１０ａを１０００、下限値レジスタ２１１ａを１００に、それぞれ設定するものとする。また、送信パケット情報グループＢの上限値レジスタ２１０ｂを２０００、下限値レジスタ２１１ｂを５００に、それぞれ設定するものとする。送信パケット情報グループＣの上限値レジスタ２１０ｃを６００、下限値レジスタ２１１ｃを５０に、それぞれ設定するものとする。
【００７８】
図７及び図１１は本実施の形態の動作を説明するための図であり、図７に示したように、各グループＡ〜Ｃの送信パケット情報は、先の実施の形態と同一とし、また優先度制御機構２０３ａ〜２０３ｃにおける動作も先の実施の形態と同一とする。それより後段の上限帯域制御機構２０４ａ〜２０４ｃ及び下限帯域制御機構２０５、更にはＤＭＡ制御部２０６の動作が異なるので、以下に、図１１を参照して説明する。
【００７９】
上限帯域制御機構２０４ａは、優先度制御機構２０３ａから送られてくる送信パケット情報の送信パケットデータサイズを加算して、上限値レジスタ２１０ａに設定された値未満（１０００未満）の場合に、下限帯域制御機構２０５に送信パケット情報を送る。ここでは、送信パケット情報１ａ，２ａ，５ａ，３ａ，４ａ，６ａ，７ａ，８ａの送信パケットデータサイズの合計が９３０（＝１０＋１０＋１０＋１００＋３００＋２００＋２００＋１００）となるため、全ての送信パケット情報１ａ〜８ａが、下限帯域制御機構２０５に送られる。
【００８０】
上限帯域制御機構２０４ｂは、優先度制御機構２０３ｂから送られてくる送信パケット情報の送信パケットデータサイズを加算して、上限値レジスタ２１０ｂに設定された値未満（２０００未満）の場合に、下限帯域制御機構２０５に送信パケット情報を送る。ここでは、送信パケット情報５ｂ，１ｂ，２ｂ，３ｂ，４ｂ，６ｂ，７ｂ，８ｂの送信パケットデータサイズの合計が１７１０（＝１０＋３００＋５００＋１００＋３００＋２００＋２００＋１００）となるため、全ての送信パケット情報１ｂ〜８ｂが下限帯域制御機構２０５に送られる。
【００８１】
上限帯域制御機構２０４ｃは、優先度制御機構２０３ｃから送られてくる送信パケット情報の送信パケットデータサイズを加算して、上限値レジスタ２１０ｃに設定された値未満（６００未満）の場合に、下限帯域制御機構２０５に送信パケット情報を送る。ここでは、送信パケット情報２ｃ，４ｃ，５ｃ，６ｃ，７ｃ，１ｃ，８ｃの送信パケットデータサイズを加算した時点で、送信パケットデータサイズの合計が５６０（＝１０＋１０＋１０＋１０＋１０＋５００＋１０）となる。
【００８２】
そして、次の送信パケット情報３ｃの送信パケットデータサイズを加算すると、送信パケットデータサイズの合計が６６０（＝５６０＋１００）となり、上限値レジスタ値を越えることになる。よって、送信パケット情報３ｃは下限帯域制御機構２０５に送られず、送信パケット情報２ｃ，４ｃ，５ｃ，６ｃ，７ｃ，１ｃ，８ｃが下限帯域制御機構２０５に送られるのである。
【００８３】
下限帯域制御機構２０５は、上限帯域制御機構２０４ａ〜２０４ｃから送られてくる送信パケット情報を用いて、ＤＭＡ制御部２０６に対してＤＭＡ起動指示を行う。先ず、送信パケット情報グループＡの処理を行う。下限帯域制御機構２０５は、上限帯域制御機構２０４ａから送られてくる送信パケット情報１ａ〜８ａに対して、送信パケットデータサイズを加算して、下限値レジスタ２１１ａに設定された値以上になるまでの送信パケット情報に基づいて、ＤＭＡ制御部２０６に対してＤＭＡ起動指示を行う。
【００８４】
ここでは、１ａ→２ａ→５ａ→３ａのパケットデータを取得した時点で、送信パケットデータサイズの合計が１３０（＝１０＋１０＋１０＋１００）となり、下限値レジスタ２１１ａに設定した１００以上となるので、次の送信パケット情報グループの送信パケットデータの取得に移る。
【００８５】
送信パケット情報グループＡの処理に続いて、送信パケット情報グループＢの処理を行う。下限帯域制御機構２０５は、上限帯域制御機構２０４ｂから送られてくる送信パケット情報１ｂ〜８ｂに対して送信パケットデータサイズを加算して、下限値レジスタ２１１ｂに設定された値以上になるまでの送信パケット情報に基づいて、ＤＭＡ制御部２０６に対してＤＭＡ起動指示を行う。
【００８６】
ここでは、５ｂ→１ｂ→２ｂのパケットデータを取得した時点で、送信パケットデータサイズの合計が８１０（＝１０＋３００＋５００）となり、下限値レジスタ２１１ｂに設定した５００以上となるので、次の送信パケット情報グループの送信パケットデータの取得に移る。
【００８７】
送信パケット情報グループＢの処理に続いて、送信パケット情報グループＣの処理を行う。下限帯域制御機構２０５は、上限帯域制御機構２０４ｃから送られてくる送信パケット情報２ｃ，４ｃ，５ｃ，６ｃ，７ｃ，１ｃ，８ｃに対して送信パケットデータサイズを加算して、下限値レジスタ２１１ｃに設定された値以上になるまでの送信パケット情報に基づき、ＤＭＡ制御部２０６に対してＤＭＡ起動指示を行う。
【００８８】
ここでは、２ｃ→４ｃ→５ｃ→６ｃ→７ｃのパケットデータを取得した時点で、送信パケットデータサイズの合計が５０（＝１０＋１０＋１０＋１０＋１０）となり、下限値レジスタ２１１ｃに設定した５０以上となるので、次の送信パケット情報グループの送信パケットデータの取得に移る。
【００８９】
上述した上記の送信パケットデータの処理をなすことにより、送信パケット情報グループＡ〜Ｃに対して下限帯域の保証が可能となったので、残りの送信パケット情報に対する処理は、ラウンドロビン制御により、送信パケット情報グループＡ→Ｂ→Ｃの順番で行うことになる。
【００９０】
以上の処理に基づいて、各グループにおける総送信データサイズを考えると、単位時間で比較した場合、グループＡの総送信データサイズは９３０となり、グループＢの総送信データサイズは１７１０となり、グループＣの送信データサイズは５６０となって、結果として、ＶＮＩＣ毎のデータ転送性能に差をつけることできる。これにより、ＶＮＩＣ毎のネットワーク性能を制御することが可能となり、性能に応じた価格帯の設定等が可能となる。
【００９１】
次に、本発明の更に他の実施の形態について説明する。先の実施の形態においては、上限値レジスタを設けているので、あるグループにおいて、他グループの送信パケットがなくても、自グループ送信パケットデータサイズが上限値に達してしまった場合には、一時的にパケットの送信ができなくなってしまうという問題がある。この問題を解決するために、本実施の形態では、上限帯域制御機構２０４を改良したものである。
【００９２】
図１２は、全ての上限帯域制御機構が、他の上限帯域制御機構が保持するパケット情報の有無を参照するようにした構成となっている。図１３は、本実施の形態において、ある上限帯域制御機構が、他上限限帯域制御機構が保持するパケット情報を参照する場合の、送信パケット情報を送る動作手順を示している。
【００９３】
図１２を用いて、本実施の形態が上記実施の形態と異なる部分に関してのみ説明する。他の上限帯域制御機構に対して、自上限帯域制御機構が保持する送信パケット情報の有無を出力する機能（データレジスタ２０４１からの出力）と、他の上限帯域制御機構が保持する送信パケット情報の有無を、比較論理部２０４４にて参照する機能とを、上記の実施の形態に対して追加している。
【００９４】
図１３を参照して、比較論理部２０４４の制御フローについて説明する。先ず、自上限帯域制御機構のカウンタ値（２０４２の値）と上限値レジスタの値（２０４３の値）とを比較する。ここで、カウンタ値が上限値に達していない場合には、送信パケット情報を下限帯域制御機構へ送る。上限値に達している場合には、他の上限帯域制御機構が送信パケット情報を保持しているかを確認する。ここで、他の上限帯域制御機構が送信パケットを保持していない場合には、送信パケット情報を下限帯域制御機構へ送る。
【００９５】
次に、本実施の形態における送信パケット制御の一例を、図１４を用いて説明する。図１４において、優先度制御機構２０３ａ〜２０３ｃの各選択判定基準は先の実施の形態の場合と同様に５とする。また、上限帯域制御機構２０４ａ〜２０４ｃの各上限値レジスタ値は１０００とする。
【００９６】
上限帯域制御機構２０４ａは、優先度制御機構２０３ａから送られてくる送信パケット情報の送信パケットデータサイズを加算して、上限値レジスタ２１０ａに設定された値未満（１０００未満）の場合に、下限帯域制御機構２０５に送信パケット情報を送る。ここでは、送信パケット情報１ａ，２ａ，３ａの送信パケットデータサイズの合計が１２０（＝１０＋１０＋１００）となるため、送信パケット情報１ａ〜３ａが下限帯域制御機構２０５に送られる。
【００９７】
上限帯域制御機構２０４ｂは、優先度制御機構２０３ｂから送られてくる送信パケット情報の送信パケットデータサイズを加算して、上限値レジスタ２１０ｂに設定された値未満（１０００未満）の場合に、下限帯域制御機構２０５に送信パケット情報を送る。ここでは、送信パケット情報５ｂ，１ｂ，２ｂ，３ｂの送信パケットデータサイズの合計が９１０（＝１０＋３００＋５００＋１００）となるため、送信パケット情報５ｂ，１ｂ，２ｂ，３ｂが下限帯域制御機構２０５に送られる。
【００９８】
上限帯域制御機構２０４ｃは、優先度制御機構２０３ｃから送られてくる送信パケット情報の送信パケットデータサイズを加算して、上限値レジスタ２１０ｃに設定された値未満（１０００未満）の場合に、下限帯域制御機構２０５に送信パケット情報を送る。ここでは、送信パケット情報２ｃ，１ｃの送信パケットデータサイズを加算した時点で、送信パケットデータサイズの合計が５１０（＝１０＋５００）となるため、送信パケット情報２ｃ，１ｃが下限帯域制御機構２０５に送られる。
【００９９】
この時点で、送信パケットグループＢの送信パケット情報４ｂ，６ｂ，７ｂ，８ｂが下限帯域制御機構２０５に送られずに残っている。ここで、上限帯域制御機構２０３ｂは、上限待機制御機構２０３ａおよび２０３ｃに送信パケット情報がないことを確認すると、自上限帯域制御機構のカウンタ２０４２が上限値レジスタ２１０ｂに設定されている値（１０００）に達していても、送信パケット情報４ｂ，６ｂ，７ｂ，８ｂを下限帯域制御機構２０５に送る。
【０１００】
この結果、他グループの送信パケットがなく、自グループの送信パケットを保持している場合でも、パケット送信処理を停止することがなくなるので、更にＮＩＣを効率よく利用することが可能となる。
【０１０１】
本発明の別の実施の形態について、図１５及び図１６を用いて説明する。図１５は、本発明の別の実施の形態による上限帯域制御機構２０４ａの構成を示す図であり、図１６はその動作を示すフローである。なお、図１５においては、上限帯域制御機構２０４ａの構成のみを示しているが、他の上限帯域制御機構２０４ｂや２０４ｃも同一の構成である。そして、図１５において、図１２と同等部分は、同一符号により示されている。
【０１０２】
先ず、図１５においては、図１２の構成に対して、自上限帯域制御機構の送信パケットの有無の他に、カウンタ２０４２のカウンタ値、送信パケット長及び上限値レジスタ２０４３の値を、他の上限帯域制御機構に対して出力する機能が追加されている。また、図１５においては、図１２の構成に対して、他の上限帯域制御機構からの送信パケットの有無、カウンタ値、送信パケット長及び上限値レジスタの値を参照して、状態テーブル２０４４１として作成保持する機能が追加されている。
【０１０３】
次に、図１６を参照すると、ある上限帯域制御機構が、他上限帯域制御機構からの上記情報を参照して、自送信パケット情報を送信する場合の動作について説明する。先ず、自上限帯域制御機構のカウンタ値（２０４２の値）と上限値レジスタ値（２０４３の値）とを比較する。ここで、カウンタ値が上限値に達していない場合は（ステップ２０４４−１でＮｏ）、送信パケット情報を下限帯域制御機構へ送る（ステップ２０４４−３）。
【０１０４】
カウンタ値が上限値に達している場合は（ステップ２０４４−１でＹｅｓ）、他上限帯域制御機構が送信パケット情報を保持しているかを、状態テーブル２０４４１を参照し確認する（ステップ２０４４−４）。ここで、送信パケットを保持していない他上限帯域制御機構が複数ある場合には（ステップ２０４４−５）、そのなかから送信パケット余力がある上限帯域制御機構を選択する（ステップ２０４４−６）。このときの選択のアルゴリズムとしては、例えば、次の３つの方法が考えられる。
【０１０５】
（１）該当する上限帯域制御機構のなかから送信可能残カウント（送信余力）が最大の上限待機制御機構を選択する。（２）該当する上限帯域制御機構のなかからラウンドロビンで上限帯域制御機構を選択する。（３）該当する上限帯域制御機構のなかからランダムに上限帯域制御機構を選択する。
【０１０６】
こうして選択された上限待機機構のパケット送信カウンタを更新し（ステップ２０４４−７）、自送信パケット情報を次段の下限帯域制御機構に送信する（ステップ２０４４−３）。
【０１０７】
次に、上記（１）の方法、すなわち該当する上限帯域制御機構のなかから、送信余力である送信可能残カウントが最大の上限待機制御機構を選択する場合について、図１７の状態テーブル２０４４１の詳細（状態変化）を参照して、詳細に説明する。
【０１０８】
図１７は、図１４に示した送信パケット制御において、上限帯域制御機構２０４ｂが送信上限値に達した状態における各上限帯域制御機構２０４ａ〜２０４ｃの状態テーブル２０４４１のそれぞれの内容を示している。上限帯域制御機構２０４ａ〜２０４ｃの各状態テーブルは、全ての上限帯域制御機構について、「送信パケットの有無」、「送信可能残カウント」、「カウンタ値」及び「上限のレジスタ値」を有している。
【０１０９】
上限帯域制御機構２０４ｂが送信上限値に達した状態では、上限帯域制御機構２０４ｂは、図１４に示した送信パケット番号４ｂのカウンタ値３００の送信パケットを保持していることになる。この状態で、上限帯域制御機構２０４ｂは、送信上限値に達しているために、パケットの送信はできない状態となっている。この場合、上限帯域制御機構２０４ｂは、他の上限待機制御機構の送信余力を確認し自送信パケット情報の送信を試みることになる。
【０１１０】
先ず、上限帯域制御機構２０４ｂは、上限帯域制御機構２０４ａの送信可能残カウンタ値８８０と上限帯域制御機構２０４ｃの送信可能残カウンタ値４９０とを比較し、残カウントが大きい上限帯域制御機構２０４ａを選択することになる。上限待機制御機構２０４ｂは、自送信パケット情報のカウンタ値３００を上限待機制御機構２０４ａに送信し（ステップｄ）、上限帯域制御機構２０４ａのカウンタを更新する（１２０＋３００＝４２０）（ステップｅ）。これに同期して、上限帯域制御機構２０４ａの送信可能残カウンタも更新される（１０００−４２０＝５８０）（ステップｆ）。
【０１１１】
更に、上限待機機構２０４ｂ及び２０４ｃの状態テーブル内の上限待機制御機構２０４ａのカウンタ値、送信可能残カウント情報も同期してそれぞれ更新される（ステップｈ，ｉ）。その後、上限帯域制御機構２０４ｂは、自送信パケット情報を下限帯域制御機構に送るのである。
【０１１２】
次に、上限帯域制御機構２０４ｂは、後続の送信パケット番号６ｂのカウント値２００の送信パケットを送信しようとする。この状態における上限帯域制御機構２０４ａ〜２０４ｃの各状態テーブルの内容の変化を、図１８に示している。図１７で説明したと同様の論理に従って、上限帯域制御機構２０４ｂは、上限帯域制御機構２０４ａのカウンタを更新して自送信パケット情報を次段の下限帯域制御機構に送る。
【０１１３】
そして、上限帯域制御機構２０４ｂは、後続の送信パケット番号７ｂのカウント２００値の送信パケットを送信しようとする。この状態における上限帯域制御機構２０４ａ〜２０４ｃの各状態テーブルの内容の変化を、図１９に示している。上記と同様の論理に従って、上限帯域制御機構２０４ｂは、上限帯域制御機構２０４ｃのカウンタを更新して自送信パケット情報を次段の下限帯域制御機構に送る。
【０１１４】
最後に、上限帯域制御機構２０４ｂは後続の送信パケット番号８ｂのカウント値１００の送信パケットを送信しようとする。この状態における上限帯域制御機構２０４ａ〜２０４ｃの各状態テーブルの内容の変化を、図２０に示している。上記と同様の論理に従って、上限帯域制御機構２０４ｂは、上限帯域制御機構２０４ａのカウンタを更新して自送信パケット情報を次段の下限帯域制御機構に送る。
【０１１５】
こうすることにより、他上限帯域制御機構にパケット送信余力がある場合には、この余力の範囲内で、かつ自上限帯域制御機構の上限値レジスタ値を超える送信パケットが送信可能となり、全仮想ＮＩＣの合計上限帯域を超えるパケット送信を抑止しつつ、かつ効率の良いパケット送信が実現可能となる。
【０１１６】
なお、図１６におけるステップ２０４４−６の（２）の方法、すなわち、「該当する上限帯域機構をラウンドロビンで選択する」方法では、単に該当する上限帯域機構を順次予め定めた順序に基づいて選択するものである。また、ステップ２０４４−６の（３）の方法、すなわち、「該当する上限帯域機構をランダムに選択する」方法は、文字通り、アトランダムに選択するものである。
【０１１７】
上述したように、本発明においては、送信パケット情報キューを複数の仮想計算機に対応して設け、送信パケットキュー情報から送信パケット種類を解析し、送信パケットの優先度に応じて送信順番を並び替える優先度制御機能を設けている。更に、送信パケットキュー情報から実際の送信パケットサイズを監視し、単位時間当りのパケット送信の最大送信量を制限する上限帯域制御機能と、送信パケットキュー情報から実際の送信パケットサイズを監視し、単位時間当りのパケット送信の最低送信量を保証する下限帯域制御機能とを設けている。
【０１１８】
かかる構成により、複数のＶＮＩＣ間での送信／受信時のキューロック制御によるロック取得待ち時間がなくなる。そして、送信パケットの実データ長（パケット長）に基づいて送信すべきパケットの帯域制御を行うことができるので、ＶＮＩＣ毎のパケット送信帯域の保証が可能となる。また、送信パケットの優先度に応じて送信パケットの順序制御を行うので、リアルタイム性が必要なパケットを優先的に送信可能となる。
【０１１９】
そして、複数のＶＮＩＣが１つの物理ＮＩＣを共有して利用する場合でも、ロック取得待ちによるパケット送信遅延を回避し、ＶＮＩＣ毎のデータ転送帯域を確保し、遅延の最小化が必要なパケットを優先的に送信することが可能となるものである。
【０１２０】
なお、上記の各実施の形態における仮想計算機の数や各レジスタの値は、単に具体例を示すにすぎず、これら数値に限定されることはなく、種々の変形が可能であることは明らかである。
【０１２１】
上記の各実施の形態における制御動作は、予めその制御動作手順をプログラムとして記録媒体に格納しておき、これをコンピュータにより読取らせて実行させるように構成できることは明白である。
【図面の簡単な説明】
【０１２２】
【図１】本発明の原理を説明するための概略ブロック図である。
【図２】本発明の原理を説明するための概略動作フローである。
【図３】本発明の一実施の形態による物理ＮＩＣの機能ブロック図である。
【図４】図３の優先度制御機構２０３（２０３ａ〜２０３ｃ）の具体例を示す図である。
【図５】図３の上限帯域制御機構２０４（２０４ａ〜２０４ｃ）の具体例を示す図である。
【図６】図３の下限帯域制御機構２０５の具体例を示す図である。
【図７】本発明の一実施の形態の送信パケット制御動作を説明するための図の一部である。
【図８】本発明の一実施の形態の送信パケット制御動作を説明するための図の一部である。
【図９】本発明の一実施の形態の受信パケット制御動作を説明するための図である。
【図１０】本発明の他の実施の形態による物理ＮＩＣの機能ブロック図である。
【図１１】本発明の他の実施の形態の送信パケット制御動作を説明するための図の一部である。
【図１２】本発明の更に他の実施の形態による上限帯域制御機構２０４の具体例を示す図である。
【図１３】図１２の上限帯域制御機構２０４の動作を示すフローである。
【図１４】本発明の更に他の実施の形態の送信パケット制御動作を説明するための図である。
【図１５】本発明の別の実施の形態による上限帯域制御機構２０４の具体例を示す図である。
【図１６】図１５の上限帯域制御機構２０４の動作を示すフローである。
【図１７】図１５のステップ２０４４−６において、上限帯域制御機構の選択方法（１）の場合の、状態テーブルの状態変化の一例を示す図である。
【図１８】図１５のステップ２０４４−６において、上限帯域制御機構の選択方法（１）の場合の、状態テーブルの状態変化の他の例を示す図である。
【図１９】図１５のステップ２０４４−６において、上限帯域制御機構の選択方法（１）の場合の、状態テーブルの状態変化の更に他の例を示す図である。
【図２０】図１５のステップ２０４４−６において、上限帯域制御機構の選択方法（１）の場合の、状態テーブルの状態変化の別の例を示す図である。
【図２１】本発明に関連する仮想計算機システムの一例の構成を示すシステム図である。
【符号の説明】
【０１２３】
１〜３  仮想計算機
４  バス
５，２０  物理ＮＩＣ
１１，２１，３１，１０５，１１５，１２５  ＶＮＩＣ
４０  ネットワーク
５１  優先度制御部
５２  上限帯域制御部
５３  下限帯域制御部
２００  ＰＣＩバスＩ／Ｆ
２０１ａ〜２０１ｃ  送信キュー
２０２ａ〜２０２ｃ  受信キュー
２０３，２０３ａ〜２０３ｃ  優先度制御機構
２０４，２０４ａ〜２０４ｃ  上限帯域制御機構
２０５  下限帯域制御機構
２０６  ＤＭＡ制御部
２０７  送信バッファ
２０８  受信バッファ
２０９  ネットワークＩ／Ｆ
２１０ａ〜２１０ｃ，２０４３  上限値レジスタ
２１１ａ〜２１１ｃ，２０５３  下限値レジスタ
２０３１，２０４１，２０５１ａ〜２０５１ｃ  データレジスタ
２０３２  優先判定部
２０３３  高優先送信キュー
２０３４  低優先送信キュー
２０３５  選択判定部
２０４２，２０５２ａ〜２０５２ｃ  カウンタ
２０４４  比較部
２０５４  送信パケット選択部
【図１】
0005109748.tif 000002
【図２】
0005109748.tif 000003
【図３】
0005109748.tif 000004
【図４】
0005109748.tif 000005
【図５】
0005109748.tif 000006
【図６】
0005109748.tif 000007
【図７】
0005109748.tif 000008
【図８】
0005109748.tif 000009
【図９】
0005109748.tif 000010
【図１０】
0005109748.tif 000011
【図１１】
0005109748.tif 000012
【図１２】
0005109748.tif 000013
【図１３】
0005109748.tif 000014
【図１４】
0005109748.tif 000015
【図１５】
0005109748.tif 000016
【図１６】
0005109748.tif 000017
【図１７】
0005109748.tif 000018
【図１８】
0005109748.tif 000019
【図１９】
0005109748.tif 000020
【図２０】
0005109748.tif 000021
【図２１】
0005109748.tif 000022