(57)【特許請求の範囲】
【請求項１】
受信側装置が送信側装置から受信したフレームを一時的に格納するためのフレーム格納用データバッファを複数エントリ具備して、送信側装置と受信側装置間でフレーム単位にデータ転送動作を多重に実行するデータ転送方法において、
送信側装置が受信側装置に送信するフレーム内に、当該フレームを受信側装置が具備するフレーム格納用データバッファのどのエントリに格納すべきかを指定するバッファ識別子を持たせ、
受信側装置が送信側装置にフレーム格納用データバッファの開放を通知する情報に、開放したエントリのバッファ識別子を持たせて、
送信側装置において、受信側装置が具備するフレーム格納用データバッファが現在使用中であるか否かをエントリ毎に管理できるようにしたことを特徴とするデータ転送方法。
【請求項２】
請求項１記載のデータ転送方法において、
送信側装置は、受信側装置を介して複数の相手先データ転送装置にフレームをそれぞれ送信するために、受信側装置が具備するフレーム格納用データバッファのエントリ毎に、相手先データ転送装置のバッフア割当て、使用状態を管理するデータバッファ割当て管理テーブルを持ち、
送信側装置は、フレーム送信時、前記データバッファ割当てテーブルにより、受信側装置のフレーム格納用データバッファのエントリを選択して、前記データバッファ割当てテーブル内の当該エントリを使用中とし、受信側装置に送信するフレーム内に当該エントリのバッファ識別子を含め、受信側装置からフレーム格納用データバッファの開放通知情報を受信すると、該情報に含まれるバッファ識別子により前記データバッファ割当てテーブル内の当該エントリを未使用とすることを特徴とするデータ転送方法。
【請求項３】
請求項２記載のデータ転送方法において、相手先データ転送装置のデータ転送速度、転送プロトコル、重要度のいずれか又は全部をもとに、一つないし複数の装置グループを形成し、このグループ毎に送信側装置が受信側装置のフレーム格納用データバッファのエントリを割当てることを特徴とするデータ転送方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、コンピュータシステムをはじめネットワーク上において、二つあるいはそれ以上の装置間でデータ転送を行う方法に係り、特に単一の物理伝送路を使用して複数の装置間や複数の論理プロトコルを同時動作させ、フレーム単位で多重にデータ転送動作を実行するのに好適なデータ転送方法に関する。
【０００２】
【従来の技術】
昨今の光伝送技術の進歩により、コンピュータシステム間のデータ転送能力（ビットレート）は数メガビット／秒〜数ギガビット／秒と高速化の傾向にある。ビットレートが高くなれば、実際の転送速度（スループット）もビットレートの上昇分増大すると考えがちであるが、実際には、単に伝送路のビットレートを高くしただけでは、データ転送前後のコマンド指示や終了報告に代表される処理時間が存在するため、ビットレートの高速化に見合う改善効果は得られない。
【０００３】
従来、伝送路の高ビットレートを効率良く使用する手段としては、例えば、特開平６−１８７２７７号公報に記載されているような同一伝送路上で並列に同時動作可能な装置の場合にフレーム多重でリンクをシェアするものや、米国規格協会（ＡＮＳＩ）のＦＣ−ＰＨ ＲＥＶ４.３（Ｘ３.２３０−１９９ｘ ＦＩＢＲＥＣＨＡＮＮＥＬ Ｐhysical and Ｓignaling ＲＥＶ４.３）で知られているファイバチャネルのようにネットワーク上で複数のノード間で転送されるフレームを多重化するものなどがよく知られている。
【０００４】
これら技術は、複数の装置間や複数のプロトコルを同時動作させ、今まで複数の中低速伝送路を使用して実現していたデータ転送処理を、一つの高速なビットレートを持つ伝送路を使用して実現しようというものである。複数のプロトコルを同時動作させる技術としては、例えば、ＡＮＳＩファイバチャネル媒体を使用して上位レイヤプロトコルでＳＣＳＩ（Ｓmall Ｃomputer Ｓystem Ｉnter-face）やＨＩＰＰＩ（Ｈigh-Performance Ｐarallel Ｉnterface）、ＳＢＣＣＳ（Ｓingle Ｂyte Ｃommand Ｃode Ｓets）等を同時動作させるものがある。
【０００５】
一方、伝送距離については無中継でも数キロメートル〜数十キロメートル、中継装置を介すると数百キロメートルと長距離化の傾向にある。データ転送装置間では、データ転送に先立ち、送信側が受信側へ送信要求を発し、これに対して受信側が送信側へ応答を返すことが行われるが、インタフェースの長距離化に伴なって伝送遅延による応答待ち合わせ時間が増大するため、長距離接続でも高転送速度を維持しようというデータ転送装置においては、大容量のデータバッファを搭載する傾向にある。
【０００６】
【発明が解決しようとする課題】
上述した、複数の装置間や複数のプロトコルを同時動作させ、今まで複数の中低速伝送路を使用して実現していた複数のデータ転送処理を、一つの高速なビットレートを持つ伝送路を使用して実現しようという技術は、高速伝送路のビットレートを効率良く使用する手段としては、とても有効である。しかし、一つの伝送路を共用しているが故に次に示すような問題点がある。
【０００７】
まず、第一の問題点は、あるデータ転送装置が複数の装置間や複数のプロトコルを一つの高速なビットレートを持つ伝送路を使用して同時に多重動作させた場合、さまざまな転送速度のプロトコル又は相手装置を同一伝送路にのせることになるため、多重動作している装置間の転送動作が、別の装置との転送動作に影響を与えてしまう可能性が大きいということである。これは専用伝送路であった場合には問題とならなかったものである。
【０００８】
もちろん多重動作している装置における最大転送速度の合計が伝送路のビットレートを上回った性能を出すことはできないが、最大転送速度の合計が伝送路のビットレートを下回っている範囲内では、多重動作している全ての装置に対して最大データ転送性能を保証する事が望ましい。しかし、互いに無関係に動作している装置単位にそれぞれの異なる最大転送速度を常に管理し、適切な性能配分を施すためには、複雑な処理が必要である。仮にこの多重動作装置毎の適切な性能配分を怠ると、高速なビットレートを持つ伝送路を使用しているが故に特定の装置に対しては不必要なデータ転送速度でデータ転送されてしまい、必要な装置には十分なデータ転送速度をもたらすことができなくなる可能性がある。
【０００９】
例えば、ポート毎にフレーム格納用データバッファを備え、あるポートに接続された装置（ソース側）からのデータを一時バッファリングして、他のポートに接続された装置（ディスティネーション側）へ転送する動作を、フレーム単位で多重に実行するダイナミックスイッチが装置ある（ＡＮＳＩのＦＣ−ＰＨでいうファブリック）。このようなダイナミックスイッチ装置が介在して複数の装置間で同時にデータ転送するような場合、ひとつの低速な装置のデータ転送にダイナミックスイッチ装置のデータバッファが長時間占有されてしまう。長時間バッファが占有されるということは多重できるフレームの数が減っていくということを意味するため、この低速な装置へのデータをどんどん送信してしまうと、他の中高速な装置との転送に用いるデータバッファがなかなかディスパッチできなくなり、結果的に、最大転送速度の合計が伝送路のビットレートを下回っている範囲内にもかかわらず、多重動作している全ての装置に対して最大データ転送性能を保証する事ができなくなるという事象が発生してしまう。このため、互いに無関係に動作している装置単位にそれぞれの異なる最大転送速度を常に管理し、適切な性能配分を施す処理を行わないと、システム性能が著しく低下する可能性がある。しかし、複雑であるが故に、オーバーヘッドも大きくなり、期待したほど効果が出ないことが多い。
【００１０】
第二の問題点は、多重動作する装置はシステムにとって全て同一の格付けでは無いにも関わらず、同一伝送路上で同時動作していると、優先度小の装置との転送が優先度大の装置との転送に影響を与えてしまうことがあるというものである。これも同一伝送路上でさまざまな装置が同時にデータ転送するために発生する問題である。
【００１１】
例えば１００メガバイト／秒のビットレートをもつ伝送路上において、最大４０メガバイト／秒の装置が１台しか動作していない場合は、最大性能の４０メガバイト／秒で動作しているであろう。しかし、最大４０メガバイト／秒の装置が１０台同時動作している場合、１０台全ての装置が最大性能の４０メガバイト／秒で動作することはもちろん不可能である。ではいったい何メガバイト／秒で動作しているかというと、データ転送装置のインプリメントに依存するが、ほとんどのデータ転送装置では、全体の性能（１００メガバイト／秒）を同時動作装置台数（１０台）で平均した１０メガバイト／秒となるであろう。しかし現実的なシステムでは重要な装置とそうでない装置が混在するはずで、重要な装置の２台を４０メガバイト／秒で動作させ、残りの８台を２．５メガバイト／秒で動作させた方が、システム性能が上がる場合が多い。こういった重要装置には、伝送路を共用させず、専用伝送路を用意する回避策が一般的にはとられるが、それでは、今後ますます発展するビットレートを効率よく使用することができなくなってしまう。
【００１２】
本発明の第一の目的は、上記第一の問題点であげた多重動作における複雑である適切な性能配分処理を、単純な制御で実現し、それぞれのデータ転送装置に対するデータ転送速度を保証あるいは制限する手段を提供することにある。
本発明の第二の目的は、上記第二の問題点であげた多重動作で損なわれていた重要なデータ転送装置に対するデータ転送帯域を、多重動作を行っても性能確保する手段を提供することにある。
【００１３】
【課題を解決するための手段】
本発明では、長距離接続でも最大性能を維持するために、データ転送装置あるいはダイナミックスイッチ装置に搭載している大容量のフレーム格納用データバッファを、フレーム送信側が接続先ポートフレーム受信側について、複数エントリあるデータバッファの割当てや使用状況を管理する。複数エントリあるデータバッファは、例えば、相手先データ転送装置の最大データ転送速度あるいは相手先データ転送装置の転送論理プロトコルあるいは相手先データ転送装置のシステム内の重要度から、ひとつないし複数の装置グループを作成し、それぞれのグループ毎に、フレーム送信側装置が接続先ポートの受信側について割当てる。
【００１４】
送信側装置がフレーム受信側装置のフレーム格納用データバッファ使用状況を管理するため、送信側装置が送信するフレームを接続先ポート受信側装置のフレーム格納用データバッファのどのエントリに格納するかを指定したバッファ識別子をフレーム内に持たせ、また、接続先ポートフレーム受信側装置が、自装置のフレーム格納用データバッファがフレーム処理をした事により使用可能になったときにフレーム送信側装置に通知するバッファ開放を意味する情報（ＲＤＹ）には開放データバッファ識別子を持たせる。
【００１５】
そして、フレーム送信側装置には、データ転送する可能性のある全ての相手装置のポートアドレス、転送プロトコル、および最大データ転送速度と、接続先ポート受信側装置であるデータ転送装置あるいはダイナミックスイッチ装置に搭載しているデータバッファとの対応およびそれらデータバッファの現在の使用状況フラグを記憶したデータバッファ割当て管理テーブルを設ける。このデータバッファ割当て管理テーブルを参照することにより、フレーム送信側装置が接続先ポート受信側装置のデータバッファの選択を簡単な制御により行うことができる。また、このデータバッファ割当て管理テーブルの内容は、ソフトウエアやオペレータから変更する事が出来るようにする。これは例えばシステム管理者が接続するデータ転送装置のデータ転送速度や優先度から木目細かいバッファ割当てをシステム内で調整することを可能にし、結果的に有効な設備投資やシステム運用を行うことが可能となる。
【００１６】
本発明によると、高速伝送路のビットレートを効率良く使用する手段である同一伝送路上で複数の装置を同時動作させるときに発生する先の二つの問題が解決され、物理的には専用ケーブル線ではない高速のビットレートをもつ伝送路を、機能的だけでなく性能的にも論理専用ケーブルとみなすことができる。一本の複数分の専用ケーブルということは、従来の専用ケーブルと比較すると、物理ケーブルが複数本から一本になるためケーブルコストが減少できる。更に一本のケーブルで機能的にも性能的にも専用ケーブルということは、各種サービス提供者にとっても今までの複数本の専用ケーブル線に相当する課金対象をそのまま維持できたうえに、管理するケーブル数は減るためトータルな投資効果も大きくなる。
【００１７】
【発明の実施の形態】
以下に、本発明によるデータ転送方法の実施例を図面により詳細に説明する。
図１は本発明のデータ転送方法を適用した一実施例のシステム構成を示す図である。図１において、１０と３０〜５０はデータ転送装置、２０はダイナミックスイッチ装置（ＡＮＳＩのＦＣ−ＰＨでいうファブリックなど）、６０〜９０は情報伝達のための伝送路、Ａ〜Ｄはダイナミックスイッチ装置２０の各ポートに割当てられているアドレスである。図１では、ダイナミックスイッチ装置２０のポート数を４としているが、もちろんこれに限られるものではない。従って、データ転送装置も４台である必要はない。また、ダイナミックスイッチ装置２０がそれ自体一つのデータ転送装置であってもよい。
【００１８】
データ転送装置１０は、送信フレーム格納用バッファ１１、受信フレーム格納用バッファ１２及びデータバッファ割当て管理テーブル１３を具備する。送信フレーム格納用バッファ１１はダイナミックスイッチ装置２０を介してデータ転送装置３０、４０、５０へ送信するフレームを格納する。受信フレーム格納用バッファ１２はデータ転送装置３０、４０、５０からダイナミックスイッチ装置２０を介して受信するフレームを格納する。データバッファ割当て管理テーブル１３は、後述するダイナミックスイッチ装置２０内の当該データ転送装置１０の接続先ポートＡに対応するデータバッファ２１のデータ転送装置３０、４０、５０への割当てや使用状況を管理する。具体的には、データ転送装置１０がデータ転送する可能性のある全ての相手装置３０、４０、５０のポートアドレス、転送プロトコル、最大データ転送速度、割当てバッファ番号、使用状況等を管理する。データ転送装置３０、４０、５０内の構成もデータ転送装置１０と同様である。
【００１９】
ダイナミックスイッチ装置２０は、ポート毎に、データバッファとバッファカウンタを具備する。説明の便宜上、図１では、ポートＡに対応するデータバッファ２１、及び、ポートＢに対応するバッファカウンタ２２のみを示す。データバッファ２１は、当該ポートＡの接続先のデータ転送装置１０から送られてくるフレームを格納する、一種の受信フレーム格納用バッファであり、本実施例では８エントリ（＃０〜＃７）が存在する。他のポートＢ〜Ｄに対応するデータバッファについても同様である。バッファカウンタ２２は、当該ポートＢの接続先のデータ転送装置３０内の受信フレーム格納用バッファの使用状況を管理するためのものである。バッファカウンタ２２は、初期値は０であり、ポートＢの接続先のデータ転送装置３０に対してフレームを送信すると＋１され、データ転送装置３０から受信フレーム格納用バッファ解放通知のリンクコントロールワード（後述のＲＤＹ）があると−１される。他のポートＡ、Ｃ、Ｄに対応するバッファカウンタについても同様である。
【００２０】
図２はダイナミックスイッチ装置２０を経由してデータ転送装置１０、３０、４０、５０の間でやり取りされるフレームの形式を示し、ディスティネーションポートアドレスフィールド、ソースポートアドレスフィールド、フレーム識別フィールド、バッファＩＤフィールド、データフィールドなどで構成される。なお、図２では、データフィールドの最大は２キロバイトとしたが、これはデータ転送装置やダイナミックスイッチ装置に内蔵されるデータバッファ（受信フレーム格納用バッファ）の１エントリにおけるバッファ容量に制限されるもので、２キロバイトは一例として挙げた数値であり、本発明を制限するものではない。図３は、ダイナミックスイッチ装置２０あるいはデータ転送装置１０、３０、４０、５０でバッファ（ダイナミックスイッチ装置ではデータバッファ、データ転送装置では受信フレーム格納用バッファ）が開放された事を相手装置に通知するバッファ解放通知のリンクコントロールワード（ＲＤＹ）を示し、リンクコントロールワード識別フィールド、バッファＩＤフィールドで構成される。
【００２１】
図４及び図５は、データ転送装置１０内のデータバッファ割当て管理テーブル１３の構成例を示す。該データバッファ割当て管理テーブル１３は、システム立上げ時、システム構成情報をもとに作成される。他のデータ転送装置３０、４０、５０内に存在するデータバッファ割当て管理テーブルについても同様である。
【００２２】
図４は、ダイナミックスイッチ装置２０内のデータバッファ２１のエントリ数は８エントリ（＃０〜＃７）、データ転送する可能性のある全ての相手データ転送装置３０〜５０が同一優先度、データ転送装置３０、４０はプロトコルがＳＢＣＣＳで、最大データ転送性能は４０メガバイト／秒、データ転送装置、５０はプロトコルがＳＣＳＩで、最大データ転送性能は１０メガバイト／秒ということから、データバッファ２１のエントリ数の割当てを、データ転送装置３０用に３エントリ（データバッファ２１の＃０、＃１、＃２）、データ転送装置４０用にも３エントリ（データバッファ２１の＃３、＃４、＃５）、データ転送装置５０用に１エントリ（データバッファ２１の＃６）、多目的用に１エントリ（データバッファ２１の＃７）とした例である。多目的用のバッファは、障害検出後の報告やリカバリ等に使用するためのものである。使用中フラグは、当該エントリが空の場合に「０」、使用中の場合に「１」を示す。
【００２３】
図５は、データ転送装置３０が最優先度で、残りのデータ転送装置４０、５０は同一優先度、データ転送装置３０はプロトコルがＨＩＰＰＩで、最大データ転送性能は７５メガバイト／秒、データ転送装置４０、５０は、ともにプロトコルがＳＢＣＣＳで、最大データ転送性能は４０メガバイト／秒、ということから、ダイナミックスイッチ装置２０のデータバッファ２１のエントリ数の割当てを、データ転送装置３０用に６エントリ（データバッファ２１の＃０、＃１、＃２、＃３、＃４、＃５）、データ転送装置４０とデータ転送装置５０用に同一グループの２エントリ（データバッファ２１の＃６、＃７）とし、多目的エントリは割当てないことにした例である。
【００２４】
本実施例の第一の特徴は、図２及び図３に示すように、フレーム内に接続先ポートの格納データバッファ情報（バッファＩＤ）を、データバッファ開放を意味するリンクコントロールワード（ＲＤＹ）に開放データバッファ情報（バッファＩＤ）をそれぞれ持ったことである。これにより、フレーム送信側が、接続先ポート内にあるデータバッファの特定のエントリが現在使用中であるか否かを管理することが可能となる。
【００２５】
本実施例の第二の特徴は、図４及び図５に示すように、フレーム送信側に接続先ポートのデータバッファの割当てを管理するテーブル（データバッファ割当て管理テーブル）を持ったことである。このデータバッファ割当て管理テーブルには、データ転送する可能性のある全ての相手装置のポートアドレス、転送プロトコル、および最大データ転送速度と、接続先ポート受信側装置であるデータ転送装置あるいはダイナミックスイッチ装置に搭載しているデータバッファとの対応およびそれらデータバッファの現在の使用状況フラグを保持する。フレーム送信側装置は、このデータバッファ割当て管理テーブルを参照して接続先ポート受信側装置のデータバッファの選択を行うことにより、適切な性能配分処理が単純な制御で実現できるようになる。
【００２６】
本実施例の第三の特徴は、接続先ポートのデータバッファを最終データ転送先毎に割当てたことである。転送動作を実行しうる相手先データ転送装置の最大データ転送速度あるいは相手先データ転送装置の転送論理プロトコルあるいは相手先データ転送装置のシステム内の重要度から、一つないし複数の装置グループ毎にフレーム送信側装置が接続先ポートのデータバッファを最終データ転送先毎に割当て、さらに第二の特徴のデータバッファ割当て管理テーブルを参照することにより、特定の重要装置に対するデータ転送帯域を確保した上に適切な性能配分処理を単純な制御で実現できる。
【００２７】
本実施例の第四の特徴は、第二の特徴のデータバッファ割当て管理テーブルをソフトウエアやオペレータから変更できるようにしたことである。これは、例えばシステム管理者が接続するデータ転送装置のデータ転送速度や優先度から木目細かいバッファ割当てをシステム内で調整することを可能にし、結果的に有効な設備投資やシステム運用を行うことが可能となる。
【００２８】
まず、図１乃至図４に基づいて、ごく単純にデータ転送装置１０からダイナミックスイッチ装置２０を経由してデータ転送装置３０ヘフレーム送信（データの送信）をする場合を例に、本実施例のデータ転送の動作概要を説明する。もちろん、実際にはデータ転送装置１０と複数のデータ転送装置３０〜５０間でダイナミックスイッチ装置２０を介して、フレーム単位にデータ転送動作が多重に行われることは云うまでもない。
【００２９】
図６は、データ転送装置１０がフレーム送信側として動作する場合のフローチャートである。また、図７は、ダイナミックスイッチ装置２０において、ポートが接続先のデータ転送装置からフレームを受信する場合のフローチャート、図８は、ポートが接続先のデータ転送装置３０へフレームを送信する場合のフローチャートである。
【００３０】
図６において、データ転送装置１０は、送信フレーム格納用バッファ１１に、相手のデータ転送装置３０、４０、５０へ送信するフレームが存在するか否か、また、ダイナミックスイッチ装置２０から以前に送信したフレームに対するデータバッファ開放通知（ＲＤＹ）が受信されるか否かを監視している（ステップ６０１〜６０６）。
【００３１】
いま、データ転送装置３０に対する送信フレームありが判定されると（ステップ６０１）、データ転送装置１０は、データバッファ割当て管理テーブル１３を参照して（ステップ６０７）、ダイナミックスイッチ装置２０のデータバッファ２１中のデータ転送装置３０に対して割り当てられているバッファ（図４では＃０、＃１、＃２）に使用可能バッファがあるか否か判定する（ステップ６０８）。ここで、使用可能バッファがなければ、該データ転送装置３０に対するフレームの送信は保留される。
【００３２】
一方、使用可能バッファがあれば、データ転送装置１０は、当該バッファ（例えば、＃０）を選択し（ステップ６０９）、データバッファ割当て管理テーブル１３内の該当する使用中フラグを「１」にセットする（ステップ６１０）。なお、使用可能バッファが複数存在する場合には、例えば、番号の若い方を選択する。次に、データ転送装置１０は、データ転送装置３０に対する送信フレームを図２で示した形式で組み立て、伝送路６０を介してダイナミックスイッチ装置２０へ送信する（ステップ６１１）。即ち、図２において、フレーム内のディスティネーションポートアドレスフィールドにはデータ転送装置３０（フレームの最終受取り装置）が接続されているダイナミックスイッチ装置２０のポートアドレスＢを、ソースポートアドレスフィールドにはデータ転送装置１０（フレーム発信装置）が接続されているダイナミックスイッチ装置２０のポートアドレスＡを、フレーム識別フィールドには当該フレームの識別情報を、バッファＩＤフィールドにはステップ６０９で選択されたバッファ番号（例えば図４のテーブル内で現在使用可能なバッファ番号を０とすると＃０）を、データフィールドには本例では最大２キロバイトの転送データを入れる。データ転送装置１０は、ダイナミックスイッチ装置２０へフレームを送信すると、分岐成立直後のステップへ戻り（ステップ６１２）、次の処理を実行する。
【００３３】
ダイナミックスイッチ装置２０では、図７や図８の処理を各ポートにて並行に実行している。
いま、ポートＡは、接続中のデータ転送装置１０からフレームを受信すると（ステップ７０１）、当該ポートＡに対応したデータバッテァ２１の中の、受信フレーム内のバッファＩＤフィールドが示すエントリ（例えば＃０）に、該データ転送装置１０からの受信フレームを一旦格納し（ステップ７０２）、受信フレーム内のディスティネーションアドレスフィールドが示すポート（本例ではポートＢ）に対してフレーム送信要求を出す（ステップ７０３）。その後、ポートＢ側から送信許可があると（ステップ７０４）、データバッファ２１の中のエントリ＃０に格納されているフレームをポートＢに送信する（ステップ７０５）。そして、該データバッファ２１のエントリ＃０を開放し（ステップ７０６）、当該ポートＡの接続先であるデータ転送装置１０に対して、バッファＩＤフィールドに該エントリ（バッファ）＃０を入れた図３に示す形式のバッファ開放通知（ＲＤＹ）を送信する（ステップ７０７）。
【００３４】
一方、ポートＢ側は、フレーム送信要求があると（ステップ８０１）、バッファカウンタ２２により、接続先のデータ転送装置３０内の受信フレーム格納用バッファに使用可能バッファ（空きエントリ）があるかチエックする（ステップ８０２）。ここで、使用可能バッファがなければ、使用可能バッファが生じるまで、当該フレーム送信要求は保留となる。相手データ転送装置３０内の受信フレーム格納用バッファに使用可能バッファがあれば、フレーム送信要求のソースポート側（本例ではポートＡ）へ送信許可を出し（ステップ８０３）、該ソースポート側から受け取ったフレームをデータ転送装置３０へ送信し（ステップ８０４）、バッファカウンタ２２を＋１する（ステップ８０５）。該ポートＢ側では、データ転送装置３０からバッファ開放通知（ＲＤＹ）を受け取ると、バッファカウンタ２２を−１する（ステップ８０６、８０７）。
【００３５】
図６のデータ転送装置１０の動作に戻り、データ転送装置１０では、ステップ６０２、６０４、６０６のいずれかにおいて、ダイナミックスイッチ装置２０からバッファ開放通知（ＲＤＹ）を受信すると、該ＲＤＹのバッファＩＤフィールドのバッファＩＤにより、データバッファ割当て管理テーブル１３内の該当バッファ（本例ではバッファ＃０）に対応する使用中フラグをリセットする（ステップ６１３）。
【００３６】
以上のようにして、データ転送装置１０では、データバッファ割当て管理テーブル１３内の選択したバッファに対応する使用中フラグがリセットされると、これ以降再び当該バッファ、即ち、ダイナミックスイッチ装置２０のデータバッファ２１の当該エントリを使用してフレームを送信する事が可能となる。
【００３７】
ここで、データ転送装置１０がデータ転送装置３０へデータを連続して送信する場合について、ダイナミックスイッチ装置２０のデータバッファ２１のエントリ数とデータ転送速度との関係について述べる。前提条件として、伝送路６０および伝送路７０のビットレートを１０６２．５メガビット／秒（約１００メガバイト／秒）、伝送路６０のケーブル長を１０キロメートル、伝送路６０の伝播遅延時間が５マイクロ秒／キロメートル、送信フレームのデータバイト数が２キロバイトとする。この場合、データ転送装置１０が送信フレームの先頭バイトを伝送路６０に出してからダイナミックスイッチ装置２０に到達するまで、５マイクロ秒／キロメートル×１０キロメートル＝５０マイクロ秒、ダイナミックスイッチ装置２０において、フレームの先頭バイトを受け取ってからフレームの最終バイトを受け取るまで、１÷１００メガバイト／秒×２キロバイト＝２０マイクロ秒、ダイナミックスイッチ装置２０がフレームの最終バイトを受け取ってからディスティネーションポートアドレスＢにフレームの先頭バイトを転送するとして、フレームの最終バイトを受け取ってからディスティネーションポートアドレスＢにフレームの最終バイトを転送するまで、１÷１００メガバイト／秒×２キロバイト＝２０マイクロ秒、ディスティネーションポートアドレスＢにフレームを転送し終えて、当該データバッファ開放を通知するＲＤＹをダイナミックスイッチ装置２０が送信してからデータ転送装置１０に到達するまで、５マイクロ秒／キロメートル×１０キロメートル＝５０マイクロ秒要する。よって、データバッファ割当て管理テーブル１３内の選択されたバッファ（バッファ＃０とする）に対応する使用中フラグがセットされている時間は、５０マイクロ秒＋２０マイクロ秒＋２０マイクロ秒＋５０マイクロ秒＝１４０マイクロ秒という事になる。この１４０マイクロ秒の間は、該バッファ＃０は使用できない事から、送信フレームを連続送信したい場合は別のバッファを選択してフレーム送信する必要がある。これは、データ転送装置１０とダイナミックスイッチ装置２０間の伝送路６０で最大データ転送速度の１００メガバイト／秒を達成するためには、１４０マイクロ秒間フレーム送信し続けられるためのデータバッファが最低１４０マイクロ秒÷２０マイクロ秒＝７エントリ、フレーム受信側であるダイナミックスイッチ装置２０のデータバッファ２１として必要である事を示している。言いかえると、７エントリの２キロバイトデータバッファがあれば、データ転送速度は１００メガバイト／秒が達成できるが、６エントリだと、６エントリ×２キロバイト÷１４０マイクロ秒＝８５．７メガバイト／秒、５エントリだと、５エントリ×２キロバイト÷１４０マイクロ秒＝７１．４メガバイト／秒と、１エントリ減るたびに１４．３メガバイト／秒ずつデータ転送速度が減少していく。
【００３８】
本発明は、このデータバッファエントリ数が増減することでデータ転送速度が増減するという特性を利用して、多重動作における複雑である適切な性能配分処理を、単純な制御で実現し、それぞれの装置に対するデータ転送速度を保証あるいは制限する手段を提供することと、多重動作で損なわれていた重要装置に対するデータ転送帯域を、多重動作を行っても性能確保する手段を提供することにある。
【００３９】
次に、データ転送装置１０が複数のデータ転送装置３０、４０、５０と多重に同時データ転送する動作例を説明する。動作例１では、多重動作する装置（データ転送装置３０、４０、５０）における最大転送速度の合計が伝送路のビットレートを下回っている場合、それぞれの装置に対して最大データ転送性能を保証できる事を説明する。動作例２では、多重動作する装置（データ転送装置３０、４０、５０）における最大転送速度の合計が伝送路のビットレートを上回って場合、最優先装置（本例ではデータ転送装置３０）に対して最大データ転送性能を保証できる事を説明する。
【００４０】
［動作例１］
多重動作する装置（データ転送装置３０、４０、５０）における最大転送速度の合計が伝送路のビットレートを下回っている場合、それぞれの装置に対して最大データ転送性能を保証できる事を説明する。本動作例で使用するデータバッファ割当て管理テーブル１３の内容は図４の通りとする。
【００４１】
ここでは、全ての伝送路６０〜９０のビットレートは１０６２．５メガビット／秒、ダイナミックスイッチ装置２０のデータバッファ２１のエントリ数は８エントリ、１フレームの最大データバイト数は２キロバイト、データ転送装置３０の最大データ転送性能は４０メガバイト／秒、データ転送装置４０の最大データ転送性能も４０メガバイト／秒、データ転送装置５０の最大データ転送性能は１０メガバイト／秒とし、データ転送装置１０が、ダイナミックスイッチ装置２０を介して、これらデータ転送装置３０、４０、５０と同時データ転送動作するものとする。
【００４２】
データ転送装置１０は、ダイナミックスイッチ装置２０のデータバッファ２１のエントリ数が８エントリ、全てのデータ転送装置が同一の優先度、データ転送装置３０、４０、５０の最大データ転送速度、データバッファ１エントリの占有時間（ビジー時間）が約１４０マイクロ秒ということから、データバッファ２１のエントリ数の割当てを、データ転送装置３０用に３エントリ（＃０、＃１、＃２）、データ転送装置４０用に３エントリ（＃３、＃４、＃５）、データ転送装置５０用に１エントリ（＃６）、多目的用に１エントリ（＃７）とし、図４で示すデータバッファ割当て管理テーブル１３の内容をシステム立ち上げ時に作成する。多目的用のバッファ（＃７）は、障害検出後の報告やリカバリ等に使用するために専用に用意したが、特に本発明との関連はない。
【００４３】
まず、データ転送装置１０とデータ転送装置３０の間でデータ転送が開始されたとする。データ転送装置１０は図４のデータバッファ割当て管理テーブル１３の内容から、データ転送装置３０に対して使用可能バッファは、＃０から＃２ということが判断できるので、先頭のフレームはバッファ＃０を使用したとする。バッファ＃０に対応した使用中フラグをデータバッファ割当て管理テーブル１３にセットした後、バッファ＃０を入れたフレームを送信する。その後、２番目のフレームを送信するため、再度、データバッファ割当て管理テーブル１３の内容を読む。今度はバッファ＃０が使用中なのでバッファ＃１を選択し、該バッファ＃１に対応した使用中フラグをデータバッファ割当て管理テーブル１３にセットした後、バッファ＃１を入れたフレームを送信する。さらにその後、３番目のフレームを送信するため、再度、データバッファ割当て管理テーブル１３の内容を読む。今度はバッファ＃０とバッファ＃１が使用中なのでバッファ＃２を選択し、該バッファ＃２に対応した使用中フラグをデータバッファ割当て管理テーブル１３にセットした後、バッファ＃２を入れたフレームを送信する。
【００４４】
この後、４番目のフレームを送信するため、再度、データバッファ割当て管理テーブル１３の内容を読む。今度はバッファ＃０〜＃２が使用中で、割当てられている全てのバッファが使用中であるため、バッファを選択する事ができない。この場合は、接続先ポートからのデータバッファ開放を通知するリンクコントロールワード（ＲＤＹ）を受け取るまでフレーム送信を抑止する。障害等が発生しなければ、先頭のフレームを送信後、約１４０マイクロ秒経過するとバッファ＃０のＲＤＹが返送される。このＲＤＹ受信によるデータバッファ割当て管理テーブル１３の使用中フラグのリセット動作後、４番目のフレームを送信するためバッファ＃０を選択し、バッファ＃０に対応した使用中フラグをデータバッファ割当て管理テーブル１３にセットした後、バッファ＃０を入れたフレームを送信する。
【００４５】
さらにこの後、５番目のフレームを送信するため、再度、データバッファ割当て管理テーブル１３の内容を読む。再びバッファ＃０〜＃２が使用中で、割当てられている全てのバッファが使用中であるため、バッファ＃を選択する事ができない。よって、上記と同様に、接続先ポートからのデータバッファ開放を通知するリンクコントロールワード（ＲＤＹ）を受け取るまでフレーム送信を抑止する。これも同様に２番目のフレームを送信後、約１４０マイクロ秒経過すると、バッファ＃１のＲＤＹが返送される。このＲＤＹ受信によるデータバッファ割当て管理テーブル１３の使用中フラグのリセット動作後、５番目のフレームを送信するためバッファ＃１を選択し、バッファ＃１に対応した使用中フラグをデータバッファ割当て管理テーブル１３にセットした後、バッファ＃１を入れたフレームを送信する。
【００４６】
以上のような動作を最終フレーム送信まで、バッファ＃０〜＃２で繰り返す。この時のデータ転送装置１０とダイナミックスイッチ装置２０の間のデータ転送速度は１４０マイクロ秒間に３フレーム（６キロバイト分）を送信しているため、６キロバイト÷１４０マイクロ秒＝４２．８メガバイト／秒となり、データ転送装置３０の最大転送速度である４０メガバイト／秒を上回っている。
【００４７】
次に、データ転送装置１０とデータ転送装置３０の間のデータ転送と、データ転送装置１０とデータ転送装置４０の間のデータ転送が同時に開始されたとする。まず、データ転送装置１０は、データ転送装置３０に対する先頭のフレームを送信するためデータバッファ割当て管理テーブル１３の内容を読む。はじめはデータ転送装置３０に対応するバッファ＃０〜＃２全てが使用可能なのでバッファ＃０を選択し、該バッファ＃０に対応した使用中フラグをデータバッファ割当て管理テーブル１３にセットした後、バッファ＃０を入れたフレームを送信する。データ転送装置３０のサービスが終了したので、今度はデータ転送装置４０のサービスを実施する。そこで、データ転送装置１０は、データ転送装置４０に対する先頭のフレームを送信するためにデータバッファ割当て管理テーブル１３の内容を読む。はじめはデータ転送装置４０に対応するバッファ＃３〜＃５全てが使用可能なのでバッファ＃３を選択し、該バッファ＃３に対応した使用中フラグをデータバッファ割当て管理テーブル１３にセットした後、バッファ＃３を入れたフレームを送信する。データ転送装置４０のサービスが終了すると、再びデータ転送装置３０のサービスに戻る。
【００４８】
データ転送装置１０は、データ転送装置３０に対する２番目のフレームを送信するためデータバッファ割当て管理テーブル１３の内容を読む。バッファ＃０が使用中なのでバッファ＃１を選択し、該バッファ＃１に対応した使用中フラグをデータバッファ割当て管理テーブル１３にセットした後、バッファ＃１を入れたフレームを送信する。データ転送装置３０のサービスが終了したので、今度は再びデータ転送装置４０のサービスに戻る。そこで、データ転送装置１０は、データ転送装置４０に対する２番目のフレームを送信するためにデータバッファ割当て管理テーブル１３の内容を読む。バッファ＃３が使用中なのでバッファ＃４を選択し、バッファ＃４に対応した使用中フラグをデータバッファ割当て管理テーブル１３にセットした後、バッファ＃４を入れたフレームを送信する。データ転送装置４０のサービスが終了したので、データ転送装置３０のサービスに戻る。
【００４９】
データ転送装置１０は、データ転送装置３０に対する３番目のフレームを送信するためデータバッファ割当て管理テーブル１３の内容を読む。バッファ＃０〜＃１が使用中なのでバッファ＃２を選択し、該バッファ＃２に対応した使用中フラグをデータバッファ割当て管理テーブル１３にセットした後、バッファ＃２を入れたフレームを送信する。データ転送装置３０のサービスが終了したので、データ転送装置４０のサービスに戻る。データ転送装置１０は、データ転送装置４０に対する３番目のフレームを送信するためにデータバッファ割当て管理テーブル１３の内容を読む。バッファ＃３〜＃４が使用中なのでバッファ＃５を選択し、該バッファ＃５に対応した使用中フラグをデータバッファ割当て管理テーブル１３にセットした後、バッファ＃５を入れたフレームを送信する。データ転送装置４０のサービスが終了したので、データ転送装置３０のサービスに戻る。
【００５０】
データ転送装置１０は、データ転送装置３０に対する４番目のフレームを送信するためデータバッファ割当て管理テーブル１３の内容を読む。今度はバッファ＃０〜＃２が使用中で、データ転送装置３０へ割当てられている全てのバッファが使用中で、バッファを選択する事ができない。そこで、データ転送装置１０は、当該バッファ＃０〜＃２のどれかにＲＤＹが返送されてくるのを待つ事で、データ転送装置３０のサービスを終了する。データ転送装置３０のサービスが終了したので、データ転送装置４０のサービスに戻る。データ転送装置４０に対する４番目のフレームを送信するためデータバッファ割当て管理テーブル１３の内容を読む。しかし、これもバッファ＃３〜＃５が使用中で、データ転送装置４０へ割当てられている全てのバッファが使用中であるため、バッファ＃を選択する事ができないので、データ転送装置１０は、バッファ＃３〜＃５のどれかにＲＤＹが返送されてくるのを待つ事で、データ転送装置４０のサービスを終了する。
【００５１】
その後、データ転送装置１０では、ＲＤＹが返送され、該当するバッファのデータバッファ割当て管理テーブル１３の使用中フラグをリセットすると、対応するバッファを使用する目的で待っているフレームを送信する動作を、データ転送装置３０に対するフレームはバッファ＃０〜＃２において繰り返され、データ転送装置４０に対するフレームはバッファ＃３〜＃５において繰り返されることになる。
【００５２】
この時のデータ転送装置１０とダイナミックスイッチ２０の間のデータ転送速度は、１４０マイクロ秒間に６フレーム（１２キロバイト分）を送信しているため、１２キロバイト÷１４０マイクロ秒＝８５．７メガバイト／秒となる。また、データ転送装置３０とデータ転送装置４０への配分は、それぞれ３フレームずつであるため、両装置とも４２．８メガバイト／秒となり、データ転送装置３０およびデータ転送装置４０の最大転送速度である４０メガバイト／秒を上回っている。さらに、データ転送装置３０が単独で動作していた時と比較しても最大転送速度に変化はなく、同時動作による影響は全く受けておらず、性能配分も理想的である。
【００５３】
次に、データ転送装置１０とデータ転送装置３０、４０、５０間のデータ転送が同時に開始されたとする。まず、データ転送装置１０は、データ転送装置３０に対する先頭のフレームを送信するためデータバッファ割当て管理テーブル１３の内容を読む。データ転送装置３０に対応するバッファ＃０〜＃２全てが使用可能なのでバッファ＃０を選択し、バッファ＃０に対応した使用中フラグをデータバッファ割当て管理テーブル１３にセットした後、バッファ＃０を入れたフレームを送信する。データ転送装置３０のサービスが終了したので、今度はデータ転送装置４０のサービスを実施する。データ転送装置１０は、データ転送装置３１に対する先頭のフレームを送信するためにデータバッファ割当て管理テーブル１３の内容を読む。データ転送装置３１に対応するバッファ＃３〜＃５全てが使用可能なのでバッファ＃３を選択し、バッファ＃３に対応した使用中フラグをデータバッファ割当て管理テーブル１３にセットした後、バッファ＃３を入れたフレームを送信する。データ転送装置４０のサービスが終了したので、今度はデータ転送装置５０のサービスを実施する。データ転送装置１０は、データ転送装置５０に対する先頭のフレームを送信するためにデータバッファ割当て管理テーブル１３の内容を読む。データ転送装置５０に対応するバッファ＃６を選択し、該バッファ＃６に対応した使用中フラグをデータバッファ割当て管理テーブル１３にセットした後、バッファ＃６を入れたフレームを送信する。データ転送装置５０のサービスが終了したので、再びデータ転送装置３０のサービスに戻る。
【００５４】
データ転送装置１０は、データ転送装置３０に対する２番目のフレームを送信するためデータバッファ割当て管理テーブル１３の内容を読む。バッファ＃０が使用中なのでバッファ＃１を選択し、該バッファ＃１に対応した使用中フラグをデータバッファ割当て管理テーブル１３にセットした後、バッファ＃１を入れたフレームを送信する。データ転送装置３０のサービスが終了したので、データ転送装置４０のサービスに移る。データ転送装置１０は、データ転送装置４０に対する２番目のフレームを送信するためにデータバッファ割当て管理テーブル１３の内容を読む。バッファ＃３が使用中なのでバッファ＃４を選択し、該バッファ＃４に対応した使用中フラグをデータバッファ割当て管理テーブル１３にセットした後、バッファ＃４を入れたフレームを送信する。データ転送装置４０のサービスが終了したのでデータ転送装置５０のサービスに移る。
【００５５】
データ転送装置１０は、データ転送装置５０に対する２番目のフレームを送信するためデータバッファ割当て管理テーブル１３の内容を読む。しかし、データ転送装置５０に対するバッファは＃６ひとつしかなく、バッファ＃６がすでに使用中であるため、バッファを選択する事ができない。そこで、データ転送装置１０は、当該バッファ＃６にＲＤＹが返送されてくるのを待つ事で、データ転送装置５０のサービスを終了する。データ転送装置５０のサービスが終了したのでデータ転送装置３０のサービスに戻る。
【００５６】
データ転送装置１０は、データ転送装置３０に対する３番目のフレームを送信するためデータバッファ割当て管理テーブル１３の内容を読む。バッファ＃０〜＃１が使用中なのでバッファ＃２を選択し、該バッファ＃２に対応した使用中フラグをデータバッファ割当て管理テーブル１３にセットした後、バッファ＃２を入れたフレームを送信する。データ転送装置３０のサービスが終了したので、データ転送装置４０のサービスに移る。データ転送装置１０は、データ転送装置４０に対する３番目のフレームを送信するためにデータバッファ割当て管理テーブル１３の内容を読む。バッファ＃３〜＃４が使用中なのでバッファ＃５を選択し、該バッファ＃５に対応した使用中フラグをデータバッファ割当て管理テーブル１３にセットした後、バッファ＃５を入れたフレームを送信する。データ転送装置４０のサービスが終了したのでデータ転送装置５０のサービスに移ろうとするが、データ転送装置５０のサービスは既に当該バッファ＃６のＲＤＹ返送待ちであるので、サービスはデータ転送装置３０へ戻る。
【００５７】
データ転送装置１０は、データ転送装置３０に対する４番目のフレームを送信するためデータバッファ割当て管理テーブル１３の内容を読む。今度はバッファ＃０〜＃２が使用中で、データ転送装置３０割当てられている全てのバッファが使用中であるため、バッファ＃を選択する事ができないので、当該バッファ＃０〜＃２にＲＤＹが返送されてくるのを待つ事でデータ転送装置３０のサービスを終了する。データ転送装置３０のサービスが終了したので、データ転送装置４０のサービスに移る。データ転送装置１０は、データ転送装置４０に対する４番目のフレームを送信するためデータバッファ割当て管理テーブル１３の内容を読む。しかし、これもバッファ＃３〜＃５が使用中で、データ転送装置４０に割当てられている全てのバッファが使用中であるため、バッファを選択する事ができないので、当該バッファ＃３〜＃５にＲＤＹが返送されてくるのを待つ事でデータ転送装置４０のサービスを終了する。
【００５８】
その後、データ転送装置１０では、ＲＤＹが返送され、該当するバッファのデータバッファ割当て管理テーブル１３の使用中フラグをリセットすると、対応するバッファを使用する目的で待っているフレームを送信する動作を、データ転送装置３０に対するフレームはバッファ＃０〜＃２において繰り返され、データ転送装置４０に対するフレームはバッファ＃３〜＃５において繰り返され、データ転送装置５０に対するフレームはバッファ＃６において繰り返されることになる。
【００５９】
この時のデータ転送装置１０とダイナミックスイッチ装置２０の間のデータ転送速度は１４０マイクロ秒間に７フレーム（１４キロバイト分）を送信しているため、１４キロバイト÷１４０マイクロ秒＝１００メガバイト／秒となる。また、データ転送装置３０〜５０への配分は、データ転送装置３０、４０はそれぞれ３フレームずつであるため、両装置とも４２．８メガバイト／秒であり、また、データ転送装置５０は１フレームであるため１４．３メガバイト／秒となり、データ転送装置３０およびデータ転送装置４０の最大転送速度である４０メガバイト／秒、データ転送装置５０の最大転送速度である１０メガバイト／秒を上回っている。さらに、データ転送装置３０が単独で動作していた時、あるいはデータ転送装置３０、４０が同時動作していた時と比較してもデータ転送装置３０、４０の最大転送速度に変化はなく、同時動作による影響は全く受けておらず、性能配分も理想的である。また、データ転送装置１０において、データバッファ割当て管理テーブル１３の初期設定以外、データ転送装置３０〜５０に関する最大性能を通常処理で一切考慮する必要が無く、ただ返送されたＲＤＹに対して、対応するバッファを使用する目的で待っているフレームを送信する事を繰り返すだけである。
【００６０】
以上説明したように、多重動作する装置における最大転送速度の合計が伝送路のビットレートを下回っている場合、フレーム送信側がフレーム受信側のデータバッファをデータ転送装置単位に初期設定にて割当て、データバッファ割当て管理テーブル１３を更新又は参照するというごく簡単な処理でデータバッファの選択を行うことのみで、適切な性能配分処理が実現できる。
【００６１】
［動作例２］
多重動作する装置（データ転送装置３０、４０、５０）における最大転送速度の合計が伝送路のビットレートを上回っている場合、最優先装置（本例ではデータ転送装置３０）のみに対しては最大データ転送性能を保証できる事を説明する。本動作例で使用するデータバッファ割当て管理テーブル１３の内容は図５の通りとする。
【００６２】
ここでは、全ての伝送路６０〜９０のビットレートは１０６２．５メガビット／秒、ダイナミックスイッチ装置２０のデータバッファ２１のエントリ数は８エントリ、１フレームの最大データバイト数は２キロバイト、データ転送装置３０の最大データ転送性能は７５メガバイト／秒（これが動作例１と異なる）、データ転送装置４０の最大データ転送性能は４０メガバイト／秒、データ転送装置５０の最大データ転送性能も４０メガバイト／秒とし、データ転送装置１０が、ダイナミックスイッチ装置２０を介して、これらデータ転送装置３０、４０、５０と同時データ転送動作することを想定する。
【００６３】
データ転送装置１０は、ダイナミックスイッチ装置２０のデータバッファ２１のエントリ数が８エントリ、データ転送装置３０最優先で残りのデータ転送装置４０、５０は同一優先で且つ同一グループと定義、データ転送装置３０、４０、５０の最大データ転送速度、データバッファ１エントリの占有時間（ビジー時間）が約１４０マイクロ秒ということから、データバッファ２１のエントリ数の割当てを、データ転送装置３０用に６エントリ（バッファ＃０、＃１、＃２、＃３、＃４、＃５）、データ転送装置４０とデータ転送装置５０用に共通に２エントリ（バッファ＃、＃６、＃７）を割り当てるとし、図５で示すデータバッファ割当て管理テーブル１３をシステム立ち上げ時に作成する。
【００６４】
データ転送装置１０とデータ転送装置３０、４０、５０間のデータ転送が同時に開始されたとする。まず、データ転送装置１０は、データ転送装置３０に対する先頭のフレームを送信するためデータバッファ割当て管理テーブル１３（図５）の内容を読む。はじめはデータ転送装置３０に対応するバッファ＃０〜＃５全てが使用可能なのでバッファ＃０を選択し、該バッファ＃０に対応した使用中フラグをデータバッファ割当て管理テーブル１３にセットした後、バッファ＃０を入れたフレームを送信する。データ転送装置３０のサービスが終了したので、今度はデータ転送装置４０のサービスを実施する。データ転送装置１０は、データ転送装置４０に対する先頭のフレームを送信するためにデータバッファ割当て管理テーブル１３の内容を読む。データ転送装置４０に対応するバッファ＃６、＃７全てが使用可能なので、バッファ＃６を選択し、該バッファ＃６に対応した使用中フラグをデータバッファ割当て管理テーブル１３にセットした後、バッファ＃６を入れたフレームを送信する。データ転送装置４０のサービスが終了したので、今度はデータ転送装置５０のサービスを実施する。データ転送装置１０は、データ転送装置５０に対する先頭のフレームを送信するためにデータバッファ割当て管理テーブル１３の内容を読む。本例では、データ転送装置４０と５０を同一グループとして、バッファ＃６、＃７を両装置４０、５０で共用しているが、既にバッファ＃６がデータ転送装置４０で使用され、該当使用中フラグがセットされている。そこで、データ転送装置１０はバッファ＃７を選択し、該バッファ＃７に対応した使用中フラグをデータバッファ割当て管理テーブル１３にセットした後、バッファ＃７を入れたフレームを送信する。データ転送装置５０のサービスが終了したので、再びデータ転送装置３０のサービスに戻る。
【００６５】
データ転送装置１０は、データ転送装置３０に対する２番目のフレームを送信するためデータバッファ割当て管理テーブル１３の内容を読む。バッファ＃０が使用中なのでバッファ＃１を選択し、バッファ＃１に対応した使用中フラグをデータバッファ割当て管理テーブル１３にセットした後、バッファ＃１を入れたフレームを送信する。データ転送装置３０のサービスが終了したので、データ転送装置４０のサービスに移る。データ転送装置１０は、データ転送装置４０に対する２番目のフレームを送信するためにデータバッファ割当て管理テーブル１３の内容を読む。データ転送装置４０に対するバッファ＃６、＃７が既に使用中であるため、バッファを選択する事ができず、当該バッファ＃６、＃７にＲＤＹが返送されてくるのを待つ事で、データ転送装置４０のサービスを終了する。データ転送装置４０のサービスが終了したので、データ転送装置５０のサービスに移る。データ転送装置１０は、データ転送装置５０に対する２番目のフレームを送信するためデータバッファ割当て管理テーブル１３の内容を読む。しかし、先程のデータ転送装置４０と同様に、データ転送装置５０に対するバッファ＃６、＃７が既に使用中であるため、バッファを選択する事ができず、当該バッファ＃６、＃７にＲＤＹが返送されてくるのを待つ事で、データ転送装置５０のサービスを終了する。データ転送装置５０のサービスが終了したので、データ転送装置３０のサービスに戻る。
【００６６】
データ転送装置１０は、データ転送装置３０に対する３番目のフレームを送信するためデータバッファ割当て管理テーブル１３の内容を読む。バッファ＃０、＃１が使用中なのでバッファ＃２を選択し、該バッファ＃２に対応した使用中フラグをデータバッファ割当て管理テーブル１３にセットした後、バッファ＃２を入れたフレームを送信する。データ転送装置３０のサービスが終了したのでデータ転送装置４０のサービス移ろうとするが、データ転送装置４０のサービスは既に当該バッファ＃６、＃７のＲＤＹ返送待ちであるので、データ転送装置４０のサービスはスキップされる。その次のデータ転送装置５０もデータ転送装置４０と同じ状態なので、サービスはスキップされ、再びサービスはデータ転送装置３０へ戻る。これ以降、データ転送装置３０に対する４〜６番目のフレームをバッファ＃３〜＃５が使用してフレーム送信することになる。
【００６７】
その後、データ転送装置１０では、ＲＤＹが返送され、該当するバッファ＃のデータバッファ割当て管理テーブル１３の使用中フラグをリセットすると、対応するバッファ＃を使用する目的で待っているフレームを送信する動作が、データ転送装置３０に対するフレームはバッファ＃０〜＃５において繰り返され、データ転送装置４０あるいはデータ転送装置５０に対するフレームはバッファ＃６〜＃７において繰り返されることになる。
【００６８】
この時のデータ転送装置１０とダイナミックスイッチ装置２０の間のデータ転送速度は１００メガバイト／秒に勿論なり、データ転送装置３０〜５０への配分は、データ転送装置３０のサービス確率は８分の６であるため、７５メガバイト／秒、データ転送装置４０、５０はそれぞれサービス確率が８分の１であるので、１２．５メガバイト／秒になるが、データ転送装置４０と５０のどちらか一方のみが動作している時には、サービス確率が８分の２となり、２５メガバイト／秒まで性能が回復する。このように、システムにとって重要な装置であるデータ転送装置３０は最大転送速度である７５メガバイト／秒を確保したまま、データ転送装置４０、５０と同時動作することができ、かつ、データ転送装置１０においては、データバッファ割当て管理テーブル１３の初期設定以外、データ転送装置３０〜５０に関する最大性能を通常処理で一切考慮する必要が無く、ただ返送されたＲＤＹに対して、対応するバッファ＃を使用する目的で待っているフレームを送信する事を繰り返すだけである。
【００６９】
以上説明したように、多重動作する装置における最大転送速度の合計が伝送路のビットレートを上回っている場合でも、フレーム送信側がフレーム受信側のデータバッファをデータ転送装置単位に初期設定にて割当てて、データバッファ割当て管理テーブルを更新又は参照するというごく簡単な処理でデータバッファの選択を行うことのみで、多重動作で損なわれていた重要装置に対するデータ転送帯域を、多重動作を行っても性能確保することができる。
【００７０】
データバッファ割当て管理テーブルのバッファ割当ては、上記動作例１および２では、システム初期設定時に、フレーム送信側装置が、データ転送する可能性のある全ての相手装置のポートアドレス、転送プロトコル、および最大データ転送速度を考慮して、接続先ポート受信側装置であるデータ転送装置あるいはダイナミックスイッチ装置に搭載しているデータバッファとの対応を決定しているが、このデータバッファ割当て管理テーブルをソフトウエアやオペレータから変更する事も可能である。これは、例えばシステム管理者が接続するデータ転送装置のデータ転送速度や優先度から木目細かいバッファ割当てをシステム内で調整することを可能にし、結果的に有効な設備投資やシステム運用を行うことが可能となる。
【００７１】
【発明の効果】
本発明では、フレーム単位でデータ転送動作を多重に実行でき、受信側装置にフレーム格納用のデータバッファを具備しているデータ転送装置あるいはダイナミックスイッチ装置を含むデータ転送システムにおいて、多重動作における複雑である適切な性能配分処理を、単純な制御で実現しそれぞれの装置に対するデータ転送速度を保証あるいは制限することが可能になり、また、多重動作で損なわれていた重要装置に対するデータ転送帯域を、多重動作を行っても性能確保することが容易に可能になる。
【図面の簡単な説明】
【図１】本発明の一実施例であるデータ転送システムの概略構成図である。
【図２】本実施例における転送フレームの形式を示す図である。
【図３】本実施例におけるバッファ解放通知（ＲＤＹ）の形式を示す図である。
【図４】本実施例におけるデータバッファ割当て管理テーブルの第１の構成例を示す図である。
【図５】本実施例におけるデータバッファ割当て管理テーブルの第２の構成例を示す図である。
【図６】本実施例におけるフレーム送信側装置の動作フローチャートの一例である。
【図７】本実施例におけるダイナミックスイッチ装置のフレーム受信ポートの動作フローチャートの一例である。
【図８】本実施例におけるダイナミックスイッチ装置のフレーム送信ポートの動作フローチャートの一例である。
【符号の説明】
１０  データ転送装置
１１  送信フレーム格納用バッファ
１２  受信フレーム格納用バッファ
１３  データバッファ割当て管理テーブル
２０  ダイナミックスイッチ装置
２１  データバッファ（受信フレーム格納用バッファ）
２２  バッファカウンタ
３０、４０、５０  データ転送装置
６０、７０、８０、９０  伝送路
Ａ、Ｂ、Ｃ、Ｄ  ポート
【図１】
0003693523.tif 000002
【図２】
0003693523.tif 000003
【図３】
0003693523.tif 000004
【図４】
0003693523.tif 000005
【図５】
0003693523.tif 000006
【図６】
0003693523.tif 000007
【図７】
0003693523.tif 000008
【図８】
0003693523.tif 000009