(57)【特許請求の範囲】
【請求項１】
ループ状に接続された複数のノードを有し、該複数のノードがそれぞれ他ノードとの間の送受信データを格納する送信バッファおよび受信バッファを含むフロー制御装置において、
前記送信バッファは、隣接ノードへの送信データを格納する隣接ノード宛送信バッファおよび前記隣接ノード以外のノードへの送信データを格納する中継ノード宛送信バッファを備え、前記隣接ノード宛送信バッファおよび前記中継ノード宛送信バッファのトラフィック情報を他のノードへ送出して、前記他のノードでは自ノード宛受信バッファフルを受信した場合には隣接データ送信を停止し、隣接送信データフルを受信した場合には中継データ送信を停止し、中継データ送信フルを受信した場合には中継データ送信を停止するフロー制御回路を備えることを特徴とするフロー制御装置。
【請求項２】
前記受信バッファおよび送信バッファは複数段のバッファで構成され、前記各バッファの空き状態は残バッファカウンタにより残り段数をカウントして監視することを特徴とする請求項１に記載のフロー制御装置。
【請求項３】
ループ状に接続された複数のノードを有し、該複数のノードがそれぞれ他のノード間で送受信するデータのフローを制御するフロー制御装置において、
前記各ノードの受信ポートに接続されデータの宛先を制御する宛先制御回路と、該宛先制御回路に接続され、自ノード宛のデータを格納する自ノード宛受信バッファと、前記宛先制御回路に接続され、隣接ノード宛送信データを格納する隣接ノード宛送信バッファと、前記宛先制御回路に接続され、隣接ノード以外のノードへの送信データを格納する中継ノード宛送信バッファと、それぞれ前記受信バッファおよび送信バッファに接続され対応するバッファの空き情報を得る残バッファカウンタと、該残バッファカウンタに接続され、他ノードにトラフィック情報を送出して隣接データの送信および中継データの送信の停止を制御するフロー制御回路とを備えることを特徴とするフロー制御装置。
【請求項４】
それぞれ前記隣接ノード宛送信バッファおよび前記中継ノード宛送信バッファに接続され、他のノードからのトラフィック情報と共に送信ポートへ送信制御情報を送出する隣接ノード宛送信制御回路および中継ノード宛送信制御回路を含むことを特徴とする請求項３に記載のフロー制御装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明はフロー制御装置に関し、特にループトポロジでのフロー制御装置に関する。
【０００２】
【従来の技術】
ＬＡＮ（ローカルエリアネットワーク）等のデータ通信において、自ノードおよび他ノード間でデータ送受信する場合に、フロー制御が行われる。当業者には周知の如く、フロー制御は、データ送信装置および受信装置の間で安定したデータの授受が行われるようにデータの流れを制御することをいう。受信装置の受信バッファメモリに空きがなくなった状態で送信装置がデータの送信を続けると、受信異常が発生する。この受信異常を防ぐために、受信装置は、受信バッファメモリの空き状態を送信装置に知らせる。送信装置は、受信装置の状態を知って、適量のデータを送信する。フロー制御が適切に行われないと、データ転送性能が著しく低下することになる。効率的なデータ転送のために、受信バッファメモリの空き状態を動的に管理して送信装置に知らせるスライディング・ウィンドウ方式が広く使用されている。
【０００３】
斯かるフロー制御に関する又は関連する従来技術は、例えば特開２０００-２３２４７０号公報の「スイッチングハブ」、特開２０００-２４４５２１号公報の「通信方法及び通信装置」および特開平４-２９１８５１号公報の「ループ型ＬＡＮにおけるノード状態通知方法」等に開示されている。
【０００４】
図３は、典型的な従来のフロー制御装置の構成を示すブロック図である。ノードＡ〜Ｄで示す複数のノード１〜４が、双方向ケーブル５により順次接続されループを構成する。これらノード１〜４は、それぞれ受信バッファ１Ａ〜４Ａおよび送信バッファ１Ｂ〜４Ｂを有する。これら受信バッファ１Ａ〜４Ａは、それぞれ自ノードへ送信されるデータを格納する。一方、送信バッファ１Ｂ〜４Ｂは、それぞれ他ノードへ送信されるデータを格納する。双方向ケーブル５は、各ノード１〜４間でデータ送受信を行う。
【０００５】
【発明が解決しようとする課題】
上述の如きフロー制御装置では、各ノード１〜４は、自ノードへの受信バッファ１Ａ〜４Ａと他ノード宛の送信バッファ１Ｂ〜４Ｂのみの制御である。従って、自ノード、例えばノード１の受信バッファ１Ａにバッファフルが発生した場合には、隣接するノード２の送信停止要求セルを送信する。このフル期間が長いと、ノード２はデータの送信ができないので、その送信バッファ２Ｂもやがてフルになってしまい、ノード３に送信停止要求を通知し送信停止する。続いてノード４の送信バッファ４Ｂおよびノード１の送信バッファ１Ｂもフルになってしまう。この際に、送信バッファ１Ｂに格納されているデータが全て隣接ノード宛ではない場合には、バッファフルを起こした受信バッファ１Ａが処理され空きエントリができても、送信バッファ１Ｂは中継ノード宛データしかないため、何れのノードも送信を再開できず、デッドロック又はデータロストが発生する可能性がある。また、受信バッファ１Ａ〜４Ａがフルのときには、隣接ノード宛データしか送信しないように制御すれば、上述したトラブルが回避可能であるが、レイテンシ、スループット等の性能を落としてしまう。
【０００６】
【発明の目的】
本発明は、従来技術の上述した課題に鑑みみなされたものであり、上述の如きデッドロックの発生を回避可能にするフロー制御装置を提供することを目的とする。
【０００７】
【課題を解決するための手段】
前述の課題を解決するため、本発明によるフロー制御装置は次のような特徴的な構成を採用している。
【０００８】
（１）ループ状に接続された複数のノードを有し、該複数のノードがそれぞれ他ノードとの間の送受信データを格納する送信バッファおよび受信バッファを含むフロー制御装置において、
前記送信バッファは、隣接ノードへの送信データを格納する隣接ノード宛送信バッファおよび前記隣接ノード以外のノードへの送信データを格納する中継ノード宛送信バッファを備え、前記隣接ノード宛送信バッファおよび前記中継ノード宛送信バッファのトラフィック情報を他のノードへ送出して、前記他のノードでは自ノード宛受信バッファフルを受信した場合には隣接データ送信を停止し、隣接送信データフルを受信した場合には中継データ送信を停止し、中継データ送信フルを受信した場合には中継データ送信を停止するフロー制御回路を備えるフロー制御装置。
【０００９】
（２）前記受信バッファおよび送信バッファは複数段のバッファで構成され、前記各バッファの空き状態は残バッファカウンタにより残り段数をカウントして監視する上記（１）に記載のフロー制御装置。
【００１０】
（３）ループ状に接続された複数のノードを有し、該複数のノードがそれぞれ他のノード間で送受信するデータのフローを制御するフロー制御装置において、
前記各ノードの受信ポートに接続されデータの宛先を制御する宛先制御回路と、該宛先制御回路に接続され、自ノード宛のデータを格納する自ノード宛受信バッファと、前記宛先制御回路に接続され、隣接ノード宛送信データを格納する隣接ノード宛送信バッファと、前記宛先制御回路に接続され、隣接ノード以外のノードへの送信データを格納する中継ノード宛送信バッファと、それぞれ前記受信バッファおよび送信バッファに接続され対応するバッファの空き情報を得る残バッファカウンタと、該残バッファカウンタに接続され、他ノードにトラフィック情報を送出して隣接データの送信および中継データの送信の停止を制御するフロー制御回路とを備えるフロー制御装置。
【００１１】
（４）それぞれ前記隣接ノード宛送信バッファおよび前記中継ノード宛送信バッファに接続され、他のノードからのトラフィック情報と共に送信ポートへ送信制御情報を送出する隣接ノード宛送信制御回路および中継ノード宛送信制御回路を含む上記（３）に記載のフロー制御装置。
【００１５】
【発明の実施の形態】
以下、本発明によるフロー制御装置の好適実施形態の構成および動作を、添付図面を参照して詳細に説明する。
【００１６】
先ず、図１は、本発明によるフロー制御装置におけるループトポロジの接続状態を示すブロック図である。図１の特定例にあっては、ノードＡ〜Ｄの４個のノード１〜４が双方向ケーブル５により順次ループ状に接続されている。双方向ケーブル５は、これら各ノード１〜４間のデータの転送を行う。
【００１７】
次に、図２は、図１における各ノード１〜４のフロー制御装置のブロック図である。このフロー制御装置１０は、宛先制御回路１１、隣接ノード宛送信バッファ２１、中継ノード宛送信バッファ２３、自ノード宛受信バッファ２５、これら各バッファ２１、２３および２５にそれぞれ接続された残バッファカウンタ２２、２４および２６、これら残バッファカウンタ２２、２４および２６にそれぞれ接続されたフロー制御回路３１、３２および３３、隣接ノード宛送信制御回路４１および中継ノード宛送信制御回路４２により構成される。
【００１８】
図１の各ノード１〜４に設けられたフロー制御装置１０は、他ノードから受信した自ノード宛データのオーバーフローを防ぐため、複数段の自ノード宛受信バッファ２５を有しており、このバッファ２５の残り段数を残バッファカウンタ２６でカウントする。そして、この残バッファカウンタ２６でカウントした残バッファに応じて、フロー制御回路３３よりトラフィック情報セルを送出する。
【００１９】
上述の如く、本発明によるフロー制御装置１０では、自ノード宛受信バッファ２５に加えて、ポート毎に隣接ノード宛送信バッファ２１、中継ノード宛送信バッファ２３の３種類の送信バッファを有している。また、各送信バッファ２１、２３の残り段数をそれぞれ残バッファカウンタ２２、２４でカウントする。そして、残バッファカウント値により、それぞれトラフィック情報をフロー制御回路３１、３２で生成し、他ノードに通知することによりデータのオーバーフローを防止している。
【００２０】
この際に、送信側ノードでは、他ノードでの自ノード宛受信バッファフルを受信した場合には、隣接データ送信を停止する。隣接送信データフルを受信した場合には、中継データ送信を停止する。また、中継データ送信フルを受信した場合にも、中継データ送信を停止することを特徴とする。
【００２１】
次に、図１および図２を参照して本発明によるフロー制御装置１０の動作を詳細に説明する。自ノード宛受信バッファ２５は、他ノードからの受信データのオーバーフローを防止するため、複数段のバッファを有している。このバッファの残り段数を残バッファカウンタ２６でカウントし、残バッファ数に応じて、バックプレッシャ方式又はクレジット方式でトラフィック情報をフロー制御回路３３より送出するよう構成されている。それに加え、ポート毎に隣接ノード宛送信バッファ２１および中継ノード宛送信バッファ２３と、これらバッファ２１、２３の残バッファカウンタ２２、２４と、フロー制御回路３１、３２とを備えており、他ノードにトラフィック情報を送信する。また、他ノードより受信したトラフィック情報は、隣接ノード宛送信制御回路４１および中継ノード宛送信制御回路４２に送り、送信データの制御を行う。
【００２２】
図１は、本発明によるフロー制御装置１０が適用されるループトポロジの接続図であり、図２に示すフロー制御装置１０は、各ノード１〜４に設けられ、１つのノード、例えばノード１と隣接ノード２間でデータの送受信を双方向ケーブル５を介して行う。また、その他のノード（中継ノード）である例えばノード３とのデータを中継（又は転送）する。ここでは、片方のポートに着目し説明する。受信したデータは、自ノード宛データであるか、隣接ノード宛データであるか又は中継ノード宛データであるかの判別を宛先制御回路１１で行う。宛先が自ノード宛であった場合には、自ノード宛受信バッファ２５に格納される。
【００２３】
自ノード宛受信バッファ２５は、データのオーバーフローを防止するため、複数段のバッファを有しており、そのバッファの残り段数を残バッファカウンタ２６でカウントする。上位バスが混んでいて残バッファが少なくなると、フロー制御装置１０に通達し、受信バッファフルのトラフィック情報セルを該当送信ポートより他ノードに向けて送信する。これによりデータロストを防止する。
【００２４】
また、各ノード１〜４のポートにより受信したデータが他ノード宛で隣接するノードが受け取るような場合には、隣接ノード宛送信バッファ２１より送信を行う。隣接ノードが中継のみを行うようなデータを受信した場合には、中継ノード宛送信バッファ２３を介して送信を行う。この際に、隣接ノード宛送信バッファ２１が一杯になった場合には、隣接ノードデータフルのトラフィック情報を、そのデータを受けた受信ポートとペアとなる送信ポートから送信する。中継ノード宛送信バッファ２３が一杯になった場合には、中継ノード宛送信バッファフルのトラフィック情報を、そのデータを受けた受信ポートとペアとなる送信ポートから送信し、データのロストを防止する。
【００２５】
一方、他ノード側では、自ノード宛受信バッファフルを受け取った場合には、隣接データ送信を停止するため、隣接ノード宛送信制御回路４１に報告して送信データを、再開のトラフィック情報を受け取るまで一時停止する。また、隣接データ送信バッファフルの中継データを受け取った場合には、中継ノード宛送信制御回路４２に通達して中継ノード宛送信を、再開のトラフィック情報を受け取るまで一時停止する。また、中継ノード宛送信バッファフルを受け取った場合にも、中継ノード宛送信制御回路４２に通達して中継ノード宛送信を、再開のトラフィック情報を受け取るまで一時停止する。以上の制御によりデータロスト、デットロックの発生しないフロー制御を実現する。
【００２６】
尚、上述した本発明によるフロー制御装置の好適実施形態では、フロー制御をバックプレッシャ方式であったが、本発明はこれに限定されない。例えば、クレジット方式への適用も可能である。
【００２７】
以上、本発明によるフロー制御装置の好適実施形態の構成および動作を詳述した。しかし、斯かる実施形態は本発明の単なる例示に過ぎず、何ら本発明を限定するものではない。本発明の要旨を逸脱することなく、特定用途に応じて変形変更が可能であること、当業者には容易に理解できよう。
【００２８】
【効果の説明】
以上の説明から理解される如く、本発明のフロー制御装置によると、次の如き実用上の顕著な効果が得られる。即ち、本発明のフロー制御装置によると、自ノード宛の受信バッファフル検出に加えて、送信バッファフルを隣接ノード用および中継ノード用に分けていると共にトラフィック情報セルにどのバッファがフルであるかを通達するため、中継ノード同士の送信バッファフルによるデッドロック回避することが可能である。
【図面の簡単な説明】
【図１】本発明のフロー制御装置が適用可能なループトポロジの１例である。
【図２】本発明によるフロー制御装置の好適実施形態の構成を示すブロック図である。
【図３】一般的なフロー制御装置の構成図である。
【符号の説明】
１、２、３、４  ノード
５    双方向ケーブル
１０  フロー制御装置
１１  宛先制御回路
２１  隣接ノード宛送信バッファ
２３  中継ノード宛送信バッファ
２５  自ノード宛受信バッファ
２２、２４、２６  残バッファカウンタ
３１、３２、３３  フロー制御回路
４１  隣接ノード宛送信制御回路
４２  中継ノード宛送信制御回路
【図１】
0003846710.tif 000002
【図２】
0003846710.tif 000003
【図３】
0003846710.tif 000004