(57)【要約】 【課題】  フロー制御指示の無効化が発生した場合でもフロー制御を可能とし、また誤動作した場合も自律的に正常な動作に戻って通信を行う。【解決手段】  フロー制御指示送信部３０は、データ受信時、輻輳が発生または解除となった状態のイベントが生じた場合には、該当の輻輳状態のフロー制御を行うためのフロー制御指示を送信する通常送信、または周期毎に現在の複数の輻輳状態から１つの輻輳状態を選択して、選択した輻輳状態に対応するフロー制御指示を自律的に送信する自律送信の少なくとも一方の機能を有し、通常送信と自律送信とのタイミングが一致したときには、実際に輻輳が発生または解除となった通常送信側のフロー制御指示を優先的に送信する。フロー制御指示受信部２０は、フロー制御指示を受信して、データ送信停止及びデータ送信によるフロー制御を行う。【選択図】  図１
2005123765.tif 000002
【特許請求の範囲】
【請求項１】
フロー制御を行って信号の伝送を行う伝送システムにおいて、
データの受信制御を行うデータ受信部と、データ受信時、輻輳が発生または解除となった状態のイベントが生じた場合には、該当の輻輳状態のフロー制御を行うためのフロー制御指示を送信する通常送信、または周期毎に現在の複数の輻輳状態から１つの輻輳状態を選択して、選択した輻輳状態に対応するフロー制御指示を自律的に送信する自律送信の少なくとも一方の機能を有し、通常送信と自律送信とのタイミングが一致したときには、実際に輻輳が発生または解除となった通常送信側のフロー制御指示を優先的に送信するフロー制御指示送信部と、から構成されるフロー制御指示送信側伝送装置と、
データの送信制御を行うデータ送信部と、フロー制御指示を受信して、データ送信停止及びデータ送信によるフロー制御を行うフロー制御指示受信部と、から構成されるフロー制御指示受信側伝送装置と、
を有することを特徴とする伝送システム。
【請求項２】
前記フロー制御指示受信部は、フロー制御指示の内容がデータ送信停止を示す場合はタイマを起動し、一定時間経過してもデータ送信停止解除を示すフロー制御指示を受信しなければ、データ送信停止の自律解除を行うことを特徴とする請求項１記載の伝送システム。
【請求項３】
前記フロー制御指示受信部は、同一内容の輻輳状態のフロー制御指示を一定回数連続して受信した場合には、自律解除制御を停止することを特徴とする請求項２記載の伝送システム。
【請求項４】
前記フロー制御指示受信部は、前記フロー制御送信装置が二重化されている場合、系切り替え時には、自律解除制御を活性化することを特徴とする請求項２記載の伝送システム。
【請求項５】
前記フロー制御指示受信部は、自己が認識したフロー制御指示の内容を前記フロー制御指示送信部へ通知し、前記フロー制御指示送信部は、通知されたフロー制御指示の内容とは異なる輻輳状態に関するフロー制御指示の自律送信を行い、かつ通常送信と自律送信とのタイミングが一致したときには、通常送信側のフロー制御指示を優先的に送信することを特徴とする請求項１記載の伝送システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は伝送システムに関し、特にフロー制御を行って信号の伝送を行う伝送システムに関する。
【背景技術】
【０００２】
近年、情報通信ネットワークは、多種多様な形態が構築されており、伝送容量の増大に伴い、通信品質及びサービス性のさらなる向上が期待されている。このような状況の中で、ネットワーク内の負荷は急激に増加しており、データの流れ（フロー：flow）を調整するフロー制御の重要性はますます高まってきている。
【０００３】
フロー制御とは、相手の受信能力またはネットワークのトラフィック状態に合わせて情報データを送信する制御のことをいう。例えば、送信側の転送スピードが、受信側の処理より速い場合、データが受信側のバッファからあふれてデータ損失を起こすことがないように、フロー制御情報によって送受信間でデータ転送の状況を確認することで、確実なデータ転送を行うものである。
【０００４】
フロー制御の従来技術として、データ受信可（ＸＯＮ）またはデータ受信不可（ＸＯＦＦ）のフロー制御信号を送受信して、フロー制御を行う技術が提案されている（例えば、特許文献１）。
【０００５】
また、バッファが輻輳してセル廃棄が行われる前に、セルの流入規制を行って、セル廃棄及びセルの再送を防止する技術が提案されている（例えば、特許文献２）。
【特許文献１】特開平１０−１３４４１号公報（段落番号〔００１６〕〜〔００５９〕，第２図）
【特許文献２】特開平７−６６８２０号公報（段落番号〔００１２〕〜〔００５６〕，第１図）
【発明の開示】
【発明が解決しようとする課題】
【０００６】
従来のフロー制御では、フロー制御情報が付与されているデータが、伝送路上の障害等によりエラーとなると、送信側では、フロー制御情報の内容を判断できないため、フロー制御情報が無効となり、フロー制御を行うことができないといった問題があった。また、従来では、フロー制御情報の無効化が起因となってシステムの誤動作が発生してしまうと、自律的に復旧することができなかった。
【０００７】
ここで、フロー制御情報を付与する場合、ビットマップ（bitmap）形式とイベント（event）形式の２種類のフォーマットがある。bitmap形式は、システムが扱うすべての回線のフロー制御情報を設定でき、event形式は、１つの回線のフロー制御情報を設定するものである。
【０００８】
通常は、伝送路容量の低減化を図るために、event形式が使用されることが多いが、event形式でフロー制御情報を付与したデータの転送中、そのデータにエラーが発生してしまうと、送信側ではその回線の輻輳状態（輻輳が発生している状態か、または輻輳が発生していない解除状態か）を全く認識することができない。
【０００９】
なぜなら、event形式の通知では、ある１つの回線に対して、輻輳発生、または輻輳解除といった事象（event）が生じたときのみに、該当回線のフロー制御情報を設定してデータ送信側へ転送するといった仕組みなので、このときのフロー制御情報を送信側が正常に受信できなければ、それ以降、送信側がそのフロー制御情報を受信する機会がないからである。
【００１０】
したがって、伝送路の障害等における、データの伝送エラーによるフロー制御情報の無効化は、特にevent形式のフォーマットを採用した場合に影響が大きく、従来システムにおいては伝送品質及び信頼性の低下を招く原因となっていた。
【００１１】
一方、上述した従来技術（特開平１０−１３４４１号公報）は、イーサネット（登録商標）に特化したフロー制御であり、従来技術（特開平７−６６８２０号公報）は、リングトポロジを持つネットワークを生かしたフロー制御であるため、event形式のフロー制御として広い範囲において適用できる技術とはいえない。また、これら従来技術は、フロー制御情報を伝送している途中にエラーが発生した場合の効果的な対策については考慮されていない。
【００１２】
本発明はこのような点に鑑みてなされたものであり、伝送路上の障害等でフロー制御情報の無効化が発生した場合でもフロー制御を可能とし、また誤動作した場合も自律的に正常な動作に戻って通信を行うようにして、伝送品質及び信頼性の向上を図った伝送システムを提供することを目的とする。
【課題を解決するための手段】
【００１３】
本発明では上記課題を解決するために、図１に示すような、フロー制御を行って信号の伝送を行う伝送システム１において、データの受信制御を行うデータ受信部３ａと、データ受信時、輻輳が発生または解除となった状態のイベントが生じた場合には、該当の輻輳状態のフロー制御を行うためのフロー制御指示を送信する通常送信、または周期毎に現在の複数の輻輳状態から１つの輻輳状態を選択して、選択した輻輳状態に対応するフロー制御指示を自律的に送信する自律送信の少なくとも一方の機能を有し、通常送信と自律送信とのタイミングが一致したときには、実際に輻輳が発生または解除となった通常送信側のフロー制御指示を優先的に送信するフロー制御指示送信部３０と、から構成されるフロー制御指示送信側伝送装置３と、データの送信制御を行うデータ送信部２ａと、フロー制御指示を受信して、データ送信停止及びデータ送信によるフロー制御を行うフロー制御指示受信部２０と、から構成されるフロー制御指示受信側伝送装置２と、を有することを特徴とする伝送システム１が提供される。
【００１４】
ここで、フロー制御指示送信部３０は、データ受信時、輻輳が発生または解除となった状態のイベントが生じた場合には、該当の輻輳状態のフロー制御を行うためのフロー制御指示を送信する通常送信、または周期毎に現在の複数の輻輳状態から１つの輻輳状態を選択して、選択した輻輳状態に対応するフロー制御指示を自律的に送信する自律送信の少なくとも一方の機能を有し、通常送信と自律送信とのタイミングが一致したときには、実際に輻輳が発生または解除となった通常送信側のフロー制御指示を優先的に送信する。フロー制御指示受信部２０は、フロー制御指示を受信して、データ送信停止及びデータ送信によるフロー制御を行う。
【発明の効果】
【００１５】
本発明の伝送システムは、フロー制御指示送信部では、イベントが生じた場合には、該当の輻輳状態のフロー制御を行うためのフロー制御指示を送信し、または周期毎に現在の複数の輻輳状態から１つの輻輳状態を選択して、選択した輻輳状態に対応するフロー制御指示を自律的に送信し、通常送信と自律送信とのタイミングが一致したときには、通常送信側のフロー制御指示を優先的に送信する。また、フロー制御指示受信部では、フロー制御指示を受信してフロー制御を行う構成とした。これにより、フロー制御情報の無効化が発生してもフロー制御の実行を可能とし、また誤動作した場合も自律的に正常な動作に戻って通信を行うことができるので、伝送品質及び信頼性の向上を図ることが可能になる。
【発明を実施するための最良の形態】
【００１６】
以下、本発明の実施の形態を図面を参照して説明する。図１は本発明の伝送システムの原理図である。伝送システム１は、フロー制御指示受信側伝送装置２とフロー制御指示送信側伝送装置３から構成され、フロー制御を行って信号を伝送するシステムである。
【００１７】
フロー制御指示送信側伝送装置３に対し、データ受信部３ａは、相手側から送られたデータの受信制御を行う。フロー制御指示送信部３０は、データ受信時、輻輳が発生または解除となった状態のeventが生じた場合には、該当の輻輳状態のフロー制御を行うためのフロー制御指示を送信する通常送信、または周期毎に現在の複数の輻輳状態から１つの輻輳状態を選択して、選択した輻輳状態に対応するフロー制御指示を自律的に送信する自律送信の少なくとも一方の機能を有する。
【００１８】
両方の機能を有している場合に、通常送信と自律送信とのタイミングが一致したときには、実際に輻輳が発生または解除となった通常送信側の輻輳状態のフロー制御指示を優先的に送信する。
【００１９】
なお、フロー制御指示とは、データ送信側に対して、データ送信停止、またはデータ送信（データ送信停止解除）のいずれかを指示する情報である。例えば、データ受信側で回線＃１に輻輳発生を認識したならば、データ送信側へ、回線＃１へのデータ送信停止内容を含む情報をフロー制御指示として送信することになる。また、本発明のフロー制御は、bitmap形式ではなく、event形式に対応したフロー制御指示の送信を行うシステムである。
【００２０】
フロー制御指示受信側伝送装置２に対し、データ送信部２ａは、データの送信制御を行う。フロー制御指示受信部２０は、フロー制御指示送信側伝送装置３から送信されたフロー制御指示を受信して、データ送信停止及びデータ送信によるフロー制御を行う。
【００２１】
このとき、フロー制御指示の内容がデータ送信停止を示す場合にはタイマを起動する。そして、タイマでカウントして、あらかじめ設定された一定時間を経過してもデータ送信停止解除を示すフロー制御指示をその後受信しなければ、データ送信停止の自律解除を行う（自律にデータ送信を再開する）。
【００２２】
次に図１を用いてフロー制御指示送信部３０とフロー制御指示受信部２０の動作概要を説明する（詳細動作は図７以降で後述する）。フロー制御指示送信部３０において、キュー（queue）＃１〜＃ｎにデータが格納されるとする。
【００２３】
フロー制御指示送信部３０では、キュー＃１〜＃ｎの輻輳状態に対応するフロー制御指示をフロー制御指示受信部２０へ送信するが、本発明では大きく３つの送信パターンでフロー制御指示の送信を行っている。
【００２４】
１つ目は、キュー＃１〜＃ｎのどれかがしきい値を超えたキュー長になって輻輳したとき（または、前回の輻輳発生からキュー長がしきい値以下となって輻輳解除となったとき）、しきい値を超えた（しきい値を下回った）１つのキューに対応するフロー制御指示をフロー制御指示受信部２０へ送信する（本発明では、通常送信と呼ぶ）。
【００２５】
２つ目は、通常送信時以外で、ある周期毎にキュー＃１〜＃ｎの輻輳状態を１つ選んで、選択したキューに対応するフロー制御指示をフロー制御指示受信部２０へ自律的に送信する（本発明では、自律送信と呼ぶ）。
【００２６】
３つ目は、自律送信と通常送信のタイミングが一致したときは、通常送信側を優先して、フロー制御指示をフロー制御指示受信部２０へ送信する。例えば、自律送信でキュー＃２が選択されて、キュー＃２のフロー制御指示を送信する周期になったときに、キュー＃ｎの輻輳が実際に発生して、自律送信と通常送信のタイミングがかち合ったような場合には、実際にeventが生じたキュー＃ｎを通知することの方が重要度は高いので、キュー＃ｎに関する通常送信側のフロー制御指示を優先して送信することになる。
【００２７】
従来の単純なevent形式のフロー制御では、輻輳状態のeventが発生したときのみ、その旨を示すフロー制御情報を送信していたので、受信側でこのフロー制御情報を受信できなかったときは、フロー制御が行えないといった欠点があった。
【００２８】
一方、本発明では、輻輳状態のeventが発生したときの通常送信、一定周期間隔で輻輳状態を通知するための自律送信、かつ通常送信と自律送信が一致したときには、通常送信を優先するといった送信制御を行うため、受信側で、あるフロー制御指示を受信できなかった場合でも、その後に該当フロー制御指示を再び送信することになるので、受信側へ確実にフロー制御を実行させることが可能になる。
【００２９】
また、フロー制御指示受信部２０では、キュー＃ｎのフロー制御指示（キュー＃ｎへのデータ送信を停止せよ、といった内容が記されている）を受信すると、データ送信部２ａに対して、キュー＃ｎへのデータ送信を停止するフロー制御を行い、かつ自律解除用のタイマを起動させてカウントアップを開始する（このタイマは、輻輳発生時（データ送信停止のフロー制御を受信したとき）にカウントしはじめ、輻輳解除時（データ送信のフロー制御を受信したとき）にクリアされるタイマである）。
【００３０】
データ送信部２ａでは、キュー＃ｎへのデータ送信を停止したので、データ受信部３ａ内のキュー＃ｎへの入力はなくなり、キュー＃ｎからは順にデータの読み出しだけが行われるので、いずれはキュー＃ｎの輻輳は解除されることになる。
【００３１】
フロー制御指示送信部３０は、キュー＃ｎの輻輳が解除すると、輻輳解除に対応するフロー制御指示（キュー＃ｎへデータを送信せよ、といった内容が記されている）を送信する。フロー制御指示受信部２０は、このフロー制御指示を受信すると、タイマのカウントアップを停止させ、データ送信部２ａに対して、キュー＃ｎへのデータ送信を開始するフロー制御を行う。
【００３２】
ここで、もし、フロー制御指示受信側伝送装置２、フロー制御指示送信側伝送装置３間の伝送路上で何らかの障害が発生して、フロー制御指示受信部２０が、キュー＃ｎへの送信再開指示を示すフロー制御指示を正常に受信できなかった場合には、そのままの送信停止状態が続いてしまい、システム誤動作の原因となってしまう。
【００３３】
したがって、本発明ではタイマのカウントアップに対して、あらかじめ設定時間を設けておき、この設定時間に達しても、該当キューに対する送信再開を示すフロー制御指示を受信できなければ、何らかの障害でフロー制御指示を正常受信できなかったとみなして、自律的にキュー＃ｎへのデータ送信の再開を行うようにする。このように、フロー制御指示受信部２０では、データ送信停止の自律解除制御を行うため、誤動作の状態からすみやかに正常動作に復旧することが可能になる。
【００３４】
次に伝送システム１の具体的な構成について説明する。図２、図３は伝送システム１の構成を示す図である。伝送システム１は、回線制御部２−１〜２−ｎ（総称する場合は回線制御部２）と、メインスイッチ制御部３から構成される。回線制御部２は、フロー制御指示受信側伝送装置２に対応し、メインスイッチ制御部３は、フロー制御指示送信側伝送装置３に対応する。なお、図中の太実線矢印は主信号を表し、細実線矢印は制御信号を表している。
【００３５】
回線制御部２−１〜２−ｎは、各回線に対応して、入力したパケットをセルに変換して、フロー制御を行いつつ、メインスイッチ制御部３へ出力する。メインスイッチ制御部３は、受信したセルをスイッチングし、該当回線へスイッチングした後のセルを所定の回線制御部２−１〜２−ｎへ出力する。回線制御部２−１〜２−ｎは、メインスイッチ制御部３から送信されたセルを受信して、パケットに変換してから、スイッチング後の各回線へ送出する。
【００３６】
図２の回線制御部２−１〜２−ｎは、フロー制御指示受信部２０、セル送信部２０１、Ｐ／Ｃ（パリティ・チェッカー）２０２、パケット送信部２０３から構成され、セル送信部２０１は、書き込み制御部２０１ａ、パケット／セル変換バッファ２０１ｂ、読み出し制御部２０１ｃ、Ｐ／Ｇ（パリティ・ジェネレータ）２０１ｄを含む。パケット送信部２０３は、書き込み制御部２０３ａ、セル／パケット変換バッファ２０３ｂ、読み出し制御部２０３ｃを含む。
【００３７】
図３のメインスイッチ制御部３は、フロー制御指示送信部３０−１〜３０−ｎ、セル受信部３０１、読み出し制御部３０２、バッファ監視部３０３、ＤＭＵＸ（分離部）３０４、Ｐ／Ｇ３０５−１〜３０５−ｎから構成される。セル受信部３０１は、Ｐ／Ｃ３０１ａ−１〜３０１ａ−ｎ、ＭＵＸ（多重化部）３０１ｂ、書き込み制御部３０１ｃ、共通バッファ３０１ｄを含む。
【００３８】
図２の回線制御部２−１〜２−ｎに対して、書き込み制御部２０１ａは、入力される可変長パケットを固定長セルに変換するためのパケット／セル変換バッファ２０１ｂへ書き込むための書き込み制御を行う。書き込み制御部２０１ａは、write enable、write address等の書き込み制御信号Ｗ１を生成する。また、１パケット分の書き込み完了時に、パケット長（length）、キュー情報（キュー番号）等を含む書き込み完了通知Ｗ２を生成し通知する。
【００３９】
ここで、キューについて説明する。キューを物理的な格納領域と見た場合には、バッファ内部には各回線に対応した複数の格納領域が存在し、これら物理的な格納領域がそれぞれキューとなる。また、この場合のキュー情報とは、個々の格納領域の識別子のことになる。
【００４０】
一方、キューを論理的なデータ格納領域と見た場合には、複数の物理領域に回線毎に振り分けて格納するのではなく、バッファ内部には、１つの格納領域だけが存在して、その中で各回線に対応させた論理的な格納領域に対応するものがキューとなる。したがって、この場合のキュー情報とは、回線番号とみなしてよい（具体的には、メインスイッチ制御部３でスイッチングされた後の回線番号（Ｐ／Ｇ３０５−１〜の出力ラインの番号）とする）。
【００４１】
本発明では、いずれの考え方を用いてもよいが、以降ではキューといった場合は、後者の論理的なキューを意味するものとする（図１では、説明を簡単にするため、キューを物理的なイメージで示した）。
【００４２】
読み出し制御部２０１ｃは、パケットをセルに変換するために、パケット／セル変換バッファ２０１ｂの読み出し制御を行う。読み出し制御部２０１ｃは、書き込み完了通知Ｗ２を受信すると、パケット／セル変換バッファ２０１ｂ内にパケットが存在すれば、length情報にもとづき、セルのペイロードに格納できるデータ量を比較しながら、パケット／セル変換バッファ２０１ｂの読み出しを行う。このとき、read enable、read address等の読み出し制御信号Ｒ１を生成する。
【００４３】
そして、読み出したデータをセルのペイロードに付与する。さらに、ペイロードに付与すべきデータの読み出しが完了すると、セルのヘッダにキュー情報や、パケットを構成していたときの位置（先頭かつ最終、先頭／中間／最終）情報を付与する（なお、最終セル、または先頭かつ最終セルのペイロード領域には、パケットのlength情報が付与される）。このようにしてパケットからセルへの変換が行われる。
【００４４】
ただし、フロー制御指示受信部２０から、メインスイッチ輻輳情報Ｍとしてデータ送信停止の内容が通知されている場合には、読み出し制御部２０１ｃは、パケット／セル変換バッファ２０１ｂから読み出しを行わず、メインスイッチ制御部３へのセル出力を停止する。
【００４５】
ここで、メインスイッチ輻輳情報Ｍの通知内容（すなわち、フロー制御指示の内容）には、キューレベルの輻輳状態とラインレベルの輻輳状態の２種類の内容がある。図４はキューレベルの輻輳状態を説明するための図であり、図５はラインレベルの輻輳状態を説明するための図である。説明がわかりやすいように物理的なキューで示す。
【００４６】
図４に対し、キューレベルの輻輳状態とは、ｎ個のキュー＃１〜＃ｎがある場合（回線がｎ本ある場合）、個々のキューが輻輳しているか否かといった単一キューに対するキューの輻輳状態のことを指す。
【００４７】
したがって、図に示すキュー状態のキューレベルによるフロー制御指示では、キュー＃１のキューレベルフロー制御指示は輻輳あり、キュー＃２のキューレベルフロー制御指示は輻輳なし、・・・、キュー＃ｎのキューレベルフロー制御指示は輻輳なし、といった内容となる。
【００４８】
図５に対し、ラインレベルの輻輳状態とは、すべてのキュー＃１〜＃ｎに対しての輻輳状態のことを指す。図のように、キュー＃１〜＃ｎの個々を見た場合には、それぞれには輻輳が発生していなくても、各キューに対するデータ格納量はしきい値より下近傍に位置しているため、キュー＃１〜＃ｎ全体としては相当量のデータが格納されていることになる。ラインレベルの輻輳状態とは、このような状態に対応するためのものであり、図の場合ではラインレベルフロー制御指示は輻輳あり、といった内容となる。
【００４９】
なお、本発明ではevent形式のフロー制御なので、フロー制御指示の送信（受信）時は、キュー＃１〜＃ｎのキューレベルフロー制御指示及びラインレベルフロー制御指示の（ｎ＋１）個の中からいずれか１つのフロー制御指示を送信（受信）することになる。
【００５０】
図２の説明に戻り、読み出し制御部２０１ｃでは、メインスイッチ輻輳情報Ｍとして、ラインレベルの輻輳ありの通知を受信した場合には、パケット／セル変換バッファ２０１ｂからの読み出しを完全に停止する。また、キューレベルの輻輳ありの通知を受信した場合には、対応するキューの読み出しのみを停止する。Ｐ／Ｇ２０１ｄは、生成されたセルにパリティビットを付加して、メインスイッチ制御部３へ送信する。
【００５１】
図３のメインスイッチ制御部３に対して、Ｐ／Ｃ３０１ａ−１〜３０１ａ−ｎは、回線制御部２−１〜２−ｎより送信されるセルのパリティチェックを行う。パリティエラーを検出した場合には、障害検出フラグを該当のセルのヘッダへ付与し、セル廃棄処理を行う。
【００５２】
ＭＵＸ３０１ｂは、スイッチング効率を上げるため、回線単位のセルを多重化する。書き込み制御部３０１ｃは、多重化セルを一旦共通バッファ３０１ｄに格納するための書き込み制御を行う。書き込み制御部３０１ｃは、write enable、write address等の書き込み制御信号Ｗ３を生成する。また、１セル分の書き込み完了時にキュー情報等を含む書き込み完了通知Ｗ４を生成し通知する。
【００５３】
読み出し制御部３０２は、共通バッファ３０１ｄの読み出し制御を行う。読み出し制御部３０２は、バッファ監視部３０３から通知されるキュー単位のempty flagを参照し、スケジューリング制御（例えば、セルの優先度の高／低によって共通バッファ３１ｄからの読み出し順番を変えるなど）を行い、どのキューのセルを読み出すかを判定する。そしてread enable、read address等の読み出し制御信号Ｒ２を生成する。また、１セル分の読み出し完了時にキュー情報等を含む読み出し完了通知Ｒ３を生成し通知する。
【００５４】
バッファ監視部３０３は、書き込み完了通知Ｗ４と、読み出し完了通知Ｒ３より加減算処理を行い、共通バッファ３０１ｄ内のキュー単位のバッファリングセル数を監視する。そして、バッファリングセル数からキュー単位のempty flagを生成する。また、バッファリングセル数と、上位のソフトウェアより設定される輻輳しきい値とを比較することにより、ラインレベル／キューレベルの輻輳状態フラグＦを生成する。
【００５５】
ＤＭＵＸ３０４は、共通バッファ３０１ｄから読み出された多重化セルを回線単位に分離する。フロー制御指示送信部３０−１〜３０−ｎは、輻輳状態フラグＦを参照し、分離されたセルのセルヘッダにフロー制御指示を付与する（event 形式なので、１つのセルヘッダ中には、キュー＃１〜＃ｎのキューレベルフロー制御指示及びラインレベルフロー制御指示の中からいずれか１つが付与される）。Ｐ／Ｇ３０５−１〜３０５−ｎは、フロー制御指示が付与された各セルに対してパリティビットを生成して付与し、セルデータを回線制御部２−１〜２−ｎへ送信する。
【００５６】
図２の回線制御部２−１〜２−ｎに対し、Ｐ／Ｃ２０２は、メインスイッチ制御部３より送信されるセルのパリティチェックを行う。パリティエラーを検出した場合には、障害検出フラグをセルヘッダに付与し、フロー制御指示のクリア(無効化)やセル廃棄等を行う。
【００５７】
フロー制御指示受信部２０は、セルからフロー制御指示を抽出し、メインスイッチ輻輳情報Ｍを生成する。フロー制御指示の抽出後は、セルヘッダに付与されているフロー制御指示をクリアする。
【００５８】
書き込み制御部２０３ａは、セルからパケットに変換するためのセル／パケット変換バッファ２０３ｂに、セルを書き込むための書き込み制御を行う。書き込み制御部２０３ａは、セルのキュー情報とパケットを構成する際の位置情報(先頭かつ最終、先頭、中間、最終)を参照し、パケットの組み上げを行いつつ、パケットを構成する実データのみをセル／パケット変換バッファ２０３ｂに書き込む。このとき、write enable、write address等の書き込み制御信号Ｗ５を生成する。そして１パケット分の書き込み完了時に、パケット長（length）、キュー情報等を含む書き込み完了通知Ｗ６を生成し通知する。
【００５９】
読み出し制御部２０３ｃは、セルをパケットに変換するためにセル／パケット変換バッファ２０３ｂの読み出し制御を行う。読み出し制御部２０３ｃは、書き込み制御部２０３ａから通知されるlength情報、キュー情報等を管理しており、セル／パケット変換バッファ２０３ｂにパケットが存在するのであればlength情報分のデータをセル／パケット変換バッファ２０３ｂから読み出す。このとき、read enable、read address等の読み出し制御信号Ｒ４を生成する。読み出されたパケットは、回線上へ送出される。
【００６０】
次に本発明のフロー制御指示送信部３０、フロー制御指示受信部２０の詳細を説明する前に、本発明が解決すべき問題点について、フロー制御指示のフォーマット例を示して詳しく説明する。伝送路上の障害などで、フロー制御指示が付与されているセルにパリティエラーが検出された場合は、フロー制御指示が無効となりフロー制御を行うことができない。また、誤り訂正としてのパリティチェックでは、偶数ビット化けが生じるとエラーが検出できず、このときフロー制御指示の受信側では、誤ってフロー制御指示が付与されていると認識してしまい、誤動作を起こす可能性もある。
【００６１】
図６はフロー制御指示のフォーマット例を示す図である。セルは、制御情報を含むヘッダと、主信号を含むペイロードとから構成され、フロー制御指示はヘッダ内に含まれている。フロー制御指示は、指示内容、パリティビット、キュー番号の３つのフィールドからなる。
【００６２】
フロー制御指示ｆａ、ｆｂは、キューレベル輻輳状態に対応したフロー制御指示であり、指示内容が“０１０１００”と記されると該当キューのセルデータ送信停止を意味し、指示内容が“０１０１０１”と記されると該当キューのセルデータ送信を意味する。したがって、図のフロー制御指示ｆａは、キュー＃１のセルデータ送信停止を意味し、フロー制御指示ｆｂは、キュー＃２のセルデータ送信を意味する。
【００６３】
フロー制御指示ｆｃ、ｆｄは、ラインレベル輻輳状態に対応したフロー制御指示であり、指示内容が“０１０１１０”と記されると全キューのセルデータ送信停止を意味し、指示内容が“０１０１１１”と記されると全キューのセルデータ送信を意味する。したがって、フロー制御指示ｆｃは、キュー＃１〜＃ｎすべてのセルデータ送信停止を意味し、フロー制御指示ｆｄは、キュー＃１〜＃ｎすべてのセルデータ送信を意味する。
【００６４】
また、パリティビットは、指定内容に対する冗長ビットとして１ビット設けられている。指示内容のフィールドの１の個数（または０の個数）が偶数個なら０、奇数個なら１を設定する（例えば、フロー制御指示ｆａの指示内容の１の個数は２個なので、パリティビットは０が設定されている）。
【００６５】
ここで、受信側でフロー制御指示ｆａのパリティチェックを行った際、フロー制御指示ｆａのパリティビットに１が検出されたとする。フロー制御指示ｆａの指示内容の１の個数が偶数個であるにもかかわらず、パリティビットが１と検出された場合、伝送途中でビット化けが生じているので、送信されたフロー制御指示ｆａは信頼性が低いものとみなして無効となる。このような場合、従来のevent形式では、キュー＃１のフロー制御指示の再送はされないので、それ以降、キュー＃１に対するフロー制御を行うことができなかった。
【００６６】
一方、指示内容のビットが偶数個化けた場合は、パリティチェック方式では、パリティエラーを引っかけることができない。例えば、フロー制御指示ｆａの指示内容の“０１０１００”の２ビットが化けて“０１０１１１”となったとしても１の個数は偶数個であるので、受信側では正常とみなしてしまい、エラーを検出することができない（この場合、キュー＃１のデータ送信停止のフロー制御指示であるはずなのに、ラインとして全キューに対するデータ送信と誤認識してしまう）。
【００６７】
本発明では、これらの問題点を解決し、伝送路上の障害等でフロー制御指示にビット化けが生じたときでも、その後のフロー制御を可能とし、また誤動作した場合も自律的に正常な動作に戻って通信を行うようにして、伝送品質及び信頼性の向上を図るものである。
【００６８】
次に本発明のフロー制御指示送信部３０の構成及び動作について詳しく説明する。図７はフロー制御指示送信部３０の構成を示す図である。フロー制御指示送信部３０は、自律送信用タイミング生成部３１、ＦＣＲＲ（Flow Control Request Register）生成部３２、通常送信用フロー制御指示生成部３３、自律送信用フロー制御指示生成部３４、フロー制御指示付与部３５、ＦＣＣＲ（Flow Control Curent Register）生成部３６から構成される。
【００６９】
自律送信用タイミング生成部３１は、フロー制御指示を自律で送信するための周期を監視して、自律送信イネーブルｅ２を生成する。自律送信イネーブルｅ２は、セルフレームを基準にして内部のカウンタを動作させ、上位より設定される周期設定値とカウント値とを比較して生成される。
【００７０】
例えば、周期設定値が６４セルフレーム時間と設定されているとする。自律送信用タイミング生成部３１は、１セルフレーム毎にカウンタをカウントアップし、カウント値が周期設定値以上になるのを待つ。６４個のセルが到着すると、カウント値は６４になっている。このときカウント値≧周期設定値の条件が成立するので、条件が成立しているセル区間は、自律送信イネーブルｅ２を有効（例えば、“Ｈ”）にする。そして、条件が成立した次のセルフレームでカウンタを１にロードする。以降、カウンタはこの動作を繰り返す。また、自律送信イネーブルｅ２が有効で通常送信優先イネーブルｅ１が無効な場合にはカウンタは１にロードする
ただし、通常送信用フロー制御指示生成部３３より通知される通常送信優先イネーブルｅ１が有効な場合には、カウンタの値を周期設定値の値にロードし、その結果次のセルフレーム時間から自律送信イネーブルｅ２が通知されるようにする（図１３で後述）。
【００７１】
ＦＣＲＲ生成部３２は、図３のバッファ監視部３０３から送信された輻輳状態フラグＦを保存するレジスタである。具体的には、ラインレベルの輻輳状態フラグと、ｎ個のキューレベルの輻輳状態フラグをラッチして、ラッチ後のフラグ情報（本発明ではＦＣＲＲと呼ぶ）を出力する。
【００７２】
通常送信用フロー制御指示生成部３３は、通常送信周期（１セルフレーム）単位での処理を行い、フロー制御の対象となるキューまたはラインをＦＣＲＲにもとづき決定し、ＦＣＲＲとＦＣＣＲの値とを比較する（ＦＣＣＲは、前回の周期のときのＦＣＲＲの値を示していることになるので、現在の通常送信周期で取得したＦＣＲＲと比較することで、eventが発生したか否かが判断できる。値が異なっていたら、eventが発生したということになる）。
【００７３】
そして、通常送信を行うときは、ＦＣＲＲとＦＣＣＲの値とが互いに不一致となる該当輻輳状態を選択して、通常送信用フロー制御指示ｆ１を生成する（図９〜図１２で後述する）。なお、自律送信イネーブルｅ２が有効で、eventが発生していない場合には動作は停止し、自律送信イネーブルｅ２が有効で、eventが発生した場合は、通常送信優先イネーブルｅ１を有効にして通知する。
【００７４】
自律送信用フロー制御指示生成部３４は、自律送信周期（例えば、６４セルフレーム）単位での処理を行い、自律送信イネーブルｅ２が有効で、通常送信優先イネーブルｅ１が無効の場合のみ動作して（通常送信優先イネーブルｅ１が有効であったならば動作は停止する）、ＦＣＲＲにもとづき、自律送信用フロー制御指示ｆ２を生成する（自律送信を行う場合は、event発生の有無に関係なく、ＦＣＲＲの値を順次選択して、キューまたはラインを決定するので、自律送信のフロー制御指示の生成にはＦＣＣＲは使用しない）。
【００７５】
フロー制御指示付与部３５は、通常送信用フロー制御指示ｆ１または自律送信用フロー制御指示ｆ２のいずれかをセルフレーム単位で認識し、セルのヘッダにフロー制御指示を付与して、フロー制御指示が付与されたセルデータを図３のＰ／Ｇ３０５−１〜３０５−ｎへ送信する。ＦＣＣＲ生成部３６は、通常送信用フロー制御指示ｆ１及び自律送信用フロー制御指示ｆ２を受信して、データ送信停止の内容を含むフロー制御指示が通知されているか否かを示すデータを出力する。
【００７６】
本発明ではこのデータをＦＣＣＲと呼ぶ。ＦＣＣＲは、通常送信用フロー制御指示ｆ１あるいは自律送信用フロー制御指示ｆ２にもとづき、前回のキューまたはラインの輻輳状態を記録しているデータである。
【００７７】
図８は自律送信用フロー制御指示生成部３４の動作概要を示す図である。自律送信用フロー制御指示生成部３４は、自律送信イネーブルｅ２が有効な時に、ＦＣＲＲから１つのフラグを選択する。例えば、ＦＣＲＲは１０ビットで、１〜９ビット目までがキュー＃１〜＃９の輻輳状態のフラグを示し、１０ビット目がラインの輻輳状態のフラグを示しているとき（１で輻輳発生、０で輻輳なし）、これらのビットを１ビットずつ巡回的に選択する。
【００７８】
図の場合、最初の自律送信周期では、ＦＣＲＲの１ビット目を選択している。１ビット目は、キュー＃１の輻輳状態を表すビットであり、輻輳発生となっているので、自律送信用フロー制御指示生成部３４は、キュー＃１に対するデータ送信停止を意味する自律送信用フロー制御指示ｆ２を生成する。
【００７９】
次の自律送信周期では、ＦＣＲＲの２ビット目を選択する。２ビット目は、キュー＃２の輻輳状態を表すビットであり、輻輳なしとなっているので、自律送信用フロー制御指示生成部３４は、キュー＃２に対するデータ送信を意味する自律送信用フロー制御指示ｆ２を生成する。以降、このような処理が繰り返される。
【００８０】
このように、自律送信を行う場合は、ＦＣＲＲのビットを例えば、自律送信周期がきたら巡回的に選択して、自律送信周期毎にフロー制御指示を定期的に生成して送信する。
次に図９〜図１２を用いてＦＣＲＲとＦＣＣＲにもとづくフロー制御指示生成の動作概要について説明する。図９は通常送信時のフロー制御指示生成を示すタイムチャートであり、１つのeventが生じたときの動作を示している。
【００８１】
通常送信用フロー制御指示生成部３３は、通常送信周期（１セルフレーム）毎に、ＦＣＲＲ生成部３２から送信されるＦＣＲＲを監視する。今、サイクルＣ１でキュー＃１の輻輳発生を検出したとする。すなわち、ＦＣＲＲのキュー＃１のビットに１（“Ｈ”）が立っていたとする（キュー＃１のビットのＦＣＲＲをＦＣＲＲ＃１と記す）。また、検出時点では、ＦＣＣＲ生成部３６から送信されるキュー＃１のＦＣＣＲ（ＦＣＣＲ＃１と記す）は、初期状態の０（“Ｌ”）である。
【００８２】
〔Ｓ１〕サイクルＣ１において、通常送信用フロー制御指示生成部３３は、ＦＣＲＲ＃１とＦＣＣＲ＃１のレベルが一致しているか否かを比較する。ＦＣＲＲのレベルが“Ｈ”でＦＣＣＲのレベルが“Ｌ”のときには（輻輳が生じたというeventが発生したことになる）、データ送信停止を意味するフロー制御指示の生成を行う。したがって、ここでは、キュー＃１の輻輳発生の旨を表すフロー制御指示を生成することになる。また、通常送信優先イネーブルｅ１を有効（“Ｈ”）にする。
【００８３】
〔Ｓ２〕ＦＣＣＲ生成部３６は、このフロー制御指示を受信して、キュー＃１のデータ送信停止の内容のフロー制御指示であることを認識すると、ＦＣＣＲ＃１を“Ｈ”にする。
【００８４】
なお、ＦＣＲＲのレベル値として、輻輳が発生したときを“Ｈ”、輻輳なしのときのレベルを“Ｌ”とすれば、データ送信を停止せよの意味のフロー制御指示が通常送信用フロー制御指示生成部３３（または自律送信用フロー制御指示生成部３４）から出力された場合には、ＦＣＣＲは“Ｈ”となり、データを送信せよの意味のフロー制御指示が出力された場合には、ＦＣＣＲは“Ｌ”になる。
【００８５】
〔Ｓ３〕サイクルＣ２において、ＦＣＲＲ＃１の輻輳はまだ続いている。通常送信用フロー制御指示生成部３３は、ＦＣＲＲ＃１とＦＣＣＲ＃１のレベルを比較すると、両方とも“Ｈ”であり同じレベル値である。したがって、キュー＃１に関するフロー制御指示は生成せず、通常送信優先イネーブルｅ１を無効（“Ｌ”）にする。また、ＦＣＣＲ生成部３６もＦＣＲＲ＃１のあらたなフロー制御指示が送られてこないので（あらたなeventが発生していないので）、ＦＣＣＲ＃１は変化せずに“Ｈ”のままである。
【００８６】
〔Ｓ４〕サイクルＣ３において、通常送信用フロー制御指示生成部３３は、ＦＣＲＲ＃１を監視すると、“Ｌ”であり、輻輳が解除されていることを認識する。通常送信用フロー制御指示生成部３３は、ＦＣＲＲとＦＣＣＲのレベルを比較して、ＦＣＲＲのレベルが“Ｌ”でＦＣＣＲのレベルが“Ｈ”のときには（輻輳が解除されたというeventが発生したことになる）、データ送信を意味するフロー制御指示の生成を行う。したがって、ここでは、キュー＃１の輻輳解除（データ送信）の旨を表すフロー制御指示を生成することになる。また、通常送信優先イネーブルｅ１を有効（“Ｈ”）にする。
【００８７】
〔Ｓ５〕ＦＣＣＲ生成部３６は、ステップＳ４で生成されたフロー制御指示を受信して、キュー＃１のデータ送信の内容のフロー制御指示であることを認識すると、ＦＣＣＲ＃１を“Ｌ”にする。
【００８８】
〔Ｓ６〕サイクルＣ４において、ＦＣＲＲ＃１の輻輳は発生していない。通常送信用フロー制御指示生成部３３は、ＦＣＲＲ＃１とＦＣＣＲ＃１のレベルを比較すると、両方とも“Ｌ”であり同じレベル値である（eventは生じていないということ）。したがって、キュー＃１に関するフロー制御指示は生成しない。そして、通常送信優先イネーブルｅ１を無効（“Ｌ”）にする。また、ＦＣＣＲ生成部３６もＦＣＲＲ＃１のあらたなフロー制御指示が送られてこないので（あらたなeventが発生していないので）ＦＣＣＲ＃１は変化せずに“Ｌ”のままである。
【００８９】
図１０は通常送信時のフロー制御指示生成を示すタイムチャートであり、２つのeventが同時に生じたときの動作を示している。通常送信用フロー制御指示生成部３３は、通常送信周期（１セルフレーム）毎に、ＦＣＲＲ生成部３２から送信されるＦＣＲＲを監視する。今、サイクルＣ１でキュー＃１、＃２の２つの輻輳発生を検出したとする。すなわち、ＦＣＲＲ＃１に１、ＦＣＣＲ＃２に１が立っていたとする。また、検出時点では、ＦＣＣＲ生成部３６から送信されるキュー＃１、＃２のＦＣＣＲ＃１、＃２は、初期状態の０である。
【００９０】
〔Ｓ１１〕サイクルＣ１において、通常送信用フロー制御指示生成部３３は、ＦＣＲＲとＦＣＣＲとのレベルの比較を行う。この場合、ＦＣＲＲ＃１、＃２は“Ｈ”、ＦＣＣＲ＃１、＃２は“Ｌ”であり、レベル値が異なる２つのキューが存在するが、本発明はevent形式のフロー制御なので、いずれか一方の側のフロー制御指示しか送れない。したがって、ここではキュー＃１の方を選択して、キュー＃１の輻輳発生の旨を表すフロー制御指示Ａ＃１−１を生成したとする。また、通常送信優先イネーブルｅ１を有効にする。
【００９１】
〔Ｓ１２〕ＦＣＣＲ生成部３６は、このフロー制御指示Ａ＃１−１を受信して、キュー＃１のデータ送信停止の内容のフロー制御指示であることを認識すると、ＦＣＣＲ＃１を“Ｈ”にする。なお、キュー＃２のフロー制御指示は受信していないので、“Ｌ”のまま変化しない。
【００９２】
〔Ｓ１３〕サイクルＣ２において、通常送信用フロー制御指示生成部３３は、ＦＣＲＲとＦＣＣＲとのレベルの比較を行う。この場合、ＦＣＲＲ＃１は“Ｈ”及びＦＣＣＲ＃１は“Ｈ”であり、ＦＣＲＲ＃２は“Ｈ”及びＦＣＣＲ＃２は“Ｌ”である。キュー＃２の方のレベルが異なっているので、キュー＃２の輻輳発生の旨を表すフロー制御指示Ａ＃２−１を生成する。通常送信優先イネーブルｅ１は有効のままである。
【００９３】
〔Ｓ１４〕ＦＣＣＲ生成部３６は、このフロー制御指示Ａ＃２−１を受信して、キュー＃２のデータ送信停止の内容のフロー制御指示であることを認識すると、ＦＣＣＲ＃２を“Ｈ”にする。なお、キュー＃１のフロー制御指示は受信していないので、“Ｈ”のまま変化しない。
【００９４】
〔Ｓ１５〕サイクルＣ３において、通常送信用フロー制御指示生成部３３は、ＦＣＲＲ＃１を監視すると、“Ｌ”であり、輻輳が解除されていることを認識する。通常送信用フロー制御指示生成部３３は、ＦＣＲＲとＦＣＣＲのレベルを比較して、ＦＣＲＲ＃１のレベルが“Ｌ”でＦＣＣＲ＃１のレベルが“Ｈ”であるので、キュー＃１のデータ送信を意味するフロー制御指示Ａ＃１−２の生成を行う。また、通常送信優先イネーブルｅ１は有効のままである。
【００９５】
〔Ｓ１６〕ＦＣＣＲ生成部３６は、ステップＳ１５で生成されたフロー制御指示Ａ＃１−２を受信して、キュー＃１のデータ送信の内容のフロー制御指示であることを認識すると、ＦＣＣＲ＃１を“Ｌ”にする。キュー＃２のフロー制御指示は受信していないので、“Ｈ”のまま変化しない。
【００９６】
〔Ｓ１７〕サイクルＣ４において、通常送信用フロー制御指示生成部３３は、ＦＣＲＲ＃２を監視すると、“Ｌ”であり、輻輳が解除されていることを認識する。通常送信用フロー制御指示生成部３３は、ＦＣＲＲとＦＣＣＲのレベルを比較して、ＦＣＲＲ＃２のレベルが“Ｌ”でＦＣＣＲ＃２のレベルが“Ｈ”であるので、キュー＃２のデータ送信を意味するフロー制御指示Ａ＃２−２の生成を行う。また、通常送信優先イネーブルｅ１は有効のままである。
【００９７】
〔Ｓ１８〕ＦＣＣＲ生成部３６は、ステップＳ１７で生成されたフロー制御指示Ａ＃２−２を受信して、キュー＃２のデータ送信の内容のフロー制御指示であることを認識すると、ＦＣＣＲ＃２を“Ｌ”にする。キュー＃１のフロー制御指示は受信していないので、“Ｌ”のまま変化しない。
【００９８】
〔Ｓ１９〕サイクルＣ５において、ＦＣＲＲ＃１、＃２の輻輳は発生していない。通常送信用フロー制御指示生成部３３は、ＦＣＲＲ＃１、＃２とＦＣＣＲ＃１、＃２のレベルを比較すると、両方とも“Ｌ”であり同じレベル値である。したがって、キュー＃１、＃２に関するフロー制御指示は生成しない。そして、通常送信優先イネーブルｅ１を無効にする。また、ＦＣＣＲ生成部３６もＦＣＲＲ＃１、＃２のあらたなフロー制御指示が送られてこないのでＦＣＣＲ＃１、＃２は“Ｌ”のままである。
【００９９】
図１１は自律送信時のフロー制御指示生成を示すタイムチャートであり、キュー＃１〜＃３のキューレベルの自律送信を示している。自律送信用フロー制御指示生成部３４は、自律送信周期（６４セルフレーム）毎に、ＦＣＲＲ生成部３２から送信されるＦＣＲＲを監視する。サイクルＣ１でＦＣＲＲ＃１に１が立っており、サイクルＣ２でＦＣＲＲ＃２が０であり、サイクルＣ３でＦＣＲＲ＃３が１であったとする。
【０１００】
〔Ｓ２１〕サイクルＣ１において、自律送信用フロー制御指示生成部３４は、ＦＣＲＲ＃１を検出する。ＦＣＲＲ＃１は“Ｈ”であるので、キュー＃１の輻輳発生の旨を表すフロー制御指示Ａ＃１−１を生成する。また、自律送信イネーブルｅ２を有効にする。
【０１０１】
なお、自律送信イネーブルｅ２は、上述したように、周期設定値＝６４とカウント値とが一致したときに有効となり、その後、次のセルフレームでカウンタは１にロードされるので、“Ｈ”となる区間は１セルフレーム区間である。
【０１０２】
〔Ｓ２２〕サイクルＣ２において、自律送信用フロー制御指示生成部３４は、ＦＣＲＲ＃２を検出する。ＦＣＲＲ＃２は“Ｌ”であるので、キュー＃２の輻輳解除の旨を表すフロー制御指示Ａ＃２−２を生成する。また、自律送信イネーブルｅ２を有効にする。
【０１０３】
〔Ｓ２３〕サイクルＣ３において、自律送信用フロー制御指示生成部３４は、ＦＣＲＲ＃３を検出する。ＦＣＲＲ＃３は“Ｈ”であるので、キュー＃３の輻輳発生の旨を表すフロー制御指示Ａ＃３−１を生成する。また、自律送信イネーブルｅ２を有効にする。
【０１０４】
図１２は通常送信と自律送信のタイミングが一致した時のフロー制御指示生成を示すタイムチャートである。自律送信ではキュー＃２を選択するタイミングのときに、キュー＃１の輻輳発生のイベントを検出したものとする。
【０１０５】
〔Ｓ３１〕サイクルＣ１において、通常送信と自律送信のタイミングが一致している。このときには、通常送信を優先する。通常送信用フロー制御指示生成部３３は、ＦＣＲＲ＃１とＦＣＣＲ＃１とのレベルの比較を行う。この場合、ＦＣＲＲ＃１は“Ｈ”、ＦＣＣＲ＃１は“Ｌ”である。したがって、キュー＃１の輻輳発生の旨を表すフロー制御指示Ａ＃１−１を生成する。また、通常送信優先イネーブルｅ１を有効にする。この通常送信優先イネーブルｅ１は、自律送信用フロー制御指示生成部３４へ通知され、自律送信用フロー制御指示生成部３４は、自律送信タイミングであるので、自律送信イネーブルｅ２を有効にするが通常送信優先イネーブルｅ１が有効であるため動作を停止する。
【０１０６】
〔Ｓ３２〕ＦＣＣＲ生成部３６は、このフロー制御指示Ａ＃１−１を受信して、キュー＃１のデータ送信停止の内容のフロー制御指示であることを認識すると、ＦＣＣＲ＃１を“Ｈ”にする。
【０１０７】
〔Ｓ３３〕サイクルＣ２において、ＦＣＲＲ＃１の輻輳はまだ続いている。通常送信用フロー制御指示生成部３３は、ＦＣＲＲ＃１とＦＣＣＲ＃１のレベルを比較すると、両方とも“Ｈ”であり同じレベル値である。したがって、キュー＃１に関するフロー制御指示は生成せず、通常送信優先イネーブルｅ１を無効（“Ｌ”）にする。また、ＦＣＣＲ生成部３６もＦＣＲＲ＃１のあらたなフロー制御指示が送られてこないので変化せずにＦＣＣＲ＃１は“Ｈ”のままである。
【０１０８】
〔Ｓ３４〕自律送信用フロー制御指示生成部３４は、前回（サイクルＣ１）通常送信が優先されたため、サイクルＣ２においては自律送信イネーブルｅ２を有効にする。通常送信用フロー制御指示生成部３３から通知される通常送信優先イネーブルｅ１は無効であるのでキュー＃２に対する自律送信を行う。ＦＣＲＲ＃２は“Ｌ”である。したがって、キュー＃２のデータ送信を意味するフロー制御指示Ａ＃２−２の生成を行う。
【０１０９】
〔Ｓ３５〕ＦＣＣＲ生成部３６は、ステップＳ３４で生成されたフロー制御指示Ａ＃２−２を受信して、キュー＃２のデータ送信の内容のフロー制御指示であることを認識すると、ＦＣＣＲ＃２を“Ｌ”にする（元々ＦＣＣＲ＃２は“Ｌ”であったので、ＦＣＣＲ＃２のレベル自体は変化しない）。
【０１１０】
〔Ｓ３６〕サイクルＣ３において、通常送信用フロー制御指示生成部３３は、ＦＣＲＲ＃１を監視すると“Ｌ”であり、輻輳が解除されていることを認識する。通常送信用フロー制御指示生成部３３は、ＦＣＲＲとＦＣＣＲのレベルを比較して、ＦＣＲＲ＃１のレベルが“Ｌ”でＦＣＣＲ＃１のレベルが“Ｈ”なので、データ送信を意味するフロー制御指示Ａ＃１−２の生成を行う。また、通常送信優先イネーブルｅ１を有効（“Ｈ”）にする。
【０１１１】
〔Ｓ３７〕ＦＣＣＲ生成部３６は、ステップＳ３６で生成されたフロー制御指示Ａ＃１−２を受信して、キュー＃１のデータ送信の内容のフロー制御指示であることを認識するとＦＣＣＲ＃１を“Ｌ”にする。
【０１１２】
〔Ｓ３８〕サイクルＣ４において、ＦＣＲＲ＃１の輻輳は発生していない。通常送信用フロー制御指示生成部３３は、ＦＣＲＲ＃１とＦＣＣＲ＃１のレベルを比較すると、両方とも“Ｌ”であり同じレベル値である。したがって、キュー＃１に関するフロー制御指示は生成しない。そして、通常送信優先イネーブルｅ１を無効（“Ｌ”）にする。また、ＦＣＣＲ生成部３６もＦＣＲＲ＃１のあらたなフロー制御指示が送られてこないのでＦＣＣＲ＃１は“Ｌ”のままである。
【０１１３】
図１３は自律送信と通常送信のタイミングが一致したときの自律送信周期の設定の様子を示す図である。自律送信と通常送信のタイミングが一致したときは、通常送信が行われることになるが、通常送信が終了して自律送信に戻る場合は、通常送信を行った次の１セルフレーム後から自律送信の周期がスタートするようにする。
【０１１４】
図の場合、位置Ｐ１で自律送信と通常送信のタイミングが一致し、通常送信が行われたら、図７の自律送信用タイミング生成部３１は、次の１セルフレーム後の位置Ｐ２から自律送信周期をカウントし始める。このような制御を行うことで、通常送信終了後、次のセルフレームの位置Ｐ２から自律送信を行うことが可能になる（もし、このような制御を行わないと、自律送信は位置Ｐ３から始まることになり、通常送信から自律送信が始まるまで、長めのブランクが生じてしまう）。
【０１１５】
次に本発明のフロー制御指示受信部２０の構成及び動作について詳しく説明する。図１４はフロー制御指示受信部２０の構成を示す図である。フロー制御指示受信部２０は、フロー制御指示抽出部２１、自律解除機能停止判定部２２、自律解除活性化判定部２３、自律解除イネーブル生成部２４、輻輳レベル制御部２５−０〜２５−ｎから構成される。
【０１１６】
輻輳レベル制御部２５−０〜２５−ｎは、自律解除タイマ２５ａ、メインスイッチ輻輳情報生成部２５ｂ、自律解除通知部２５ｃを含む。輻輳レベル制御部２５−０はラインレベルに対応した制御を行い、輻輳レベル制御部２５−１〜２５−ｎそれぞれはキュー＃１〜＃ｎに対応した制御を行う。なお、以降の輻輳レベル制御部の動作としては、ラインレベルの輻輳レベル制御部２５−０に着目して説明する。
【０１１７】
フロー制御指示抽出部２１は、図２のＰ／Ｃ２０２から出力されたセルデータからフロー制御指示を抽出する。抽出するのは、ラインレベルフロー制御指示ｆＬ及びｎ個のキューレベルフロー制御指示ｆｑ＃１〜ｆｑ＃ｎの内の１つである。またフロー制御指示の抽出後は、セルヘッダ中のフロー制御指示付与領域をクリアする。
【０１１８】
自律解除機能停止判定部２２は、自律解除機能（データ送信停止のフロー制御指示を受信して、該当セルデータの送信を停止した後に、一定時間経過してもデータ送信のフロー制御指示を受けない場合に、自律的にデータ送信停止のフロー制御を解除して、セルデータの送信を始める機能）の動作を強制的に停止するかどうかの判定制御を行う。これはある１つのフロー制御指示にもとづいて行う。図ではラインレベルフロー制御指示ｆＬを用いている。
【０１１９】
ここで、図７のフロー制御指示送信部３０で上述した自律送信機能（event発生によらず、周期的に何らかのフロー制御指示を送る機能）を有している場合には、フロー制御指示受信部２０は、自律解除を行う必要はない。なぜなら、あるフロー制御指示を伝送路障害等で正常に受信できなくても、フロー制御指示送信部３０が自律送信機能を持っていれば、正常受信できなかったフロー制御指示がいずれは再び送られてくるからである。
【０１２０】
したがって、自律送信でフロー制御指示を送信している場合には、フロー制御指示受信部２０は、フロー制御を自律で解除する必要はなく、この場合には、フロー制御自律解除機能の動作を停止させることになる。
【０１２１】
また、フロー制御指示送信部３０が通常送信機能（event発生した輻輳状態のフロー制御指示を送る機能）しか装備していない場合には、ある１つのフロー制御指示は、「データ送信停止」→「データ送信（データ送信停止解除）」、「データ送信停止」→「データ送信」、・・・の内容を繰り返して送信する。例えば、「キュー＃１が輻輳したのでデータ送信停止のフロー制御指示を送る」→「データ送信停止のフロー制御が行われてキュー＃１が輻輳解除となって、データ送信のフロー制御指示を送る」、「キュー＃５が輻輳したのでデータ送信停止のフロー制御指示を送る」→「データ送信停止のフロー制御が行われてキュー＃５が輻輳解除となって、データ送信のフロー制御指示を送る」、・・・といった具合である。
【０１２２】
これに対し、フロー制御指示送信部３０が自律送信を行う場合には、周期的にフロー制御指示を送信しているので、ある１つのキューまたはラインを見ると、そのフロー制御指示は「データ送信停止」→「データ送信停止」→「データ送信停止」→・・・、または「データ送信」→「データ送信」→「データ送信」→・・・の内容を繰り返して送信する。
【０１２３】
例えば、ラインの輻輳状態を見たとき、輻輳していれば、ラインに対するデータ送信停止のフロー制御指示が輻輳解除となるまで周期毎に何度も送られることになる。また、輻輳解除ならば、ラインに対するデータ送信のフロー制御指示が周期毎に何度も送られることになる。
【０１２４】
したがって、自律解除機能停止判定部２２は、ある１つのキューまたはラインに対して、データ送信停止のフロー制御指示を連続回数受信している、またはデータ送信のフロー制御指示を連続回数受信していることを監視し、連続して受信しているならば自律解除停止指示ａ１を出力する。
【０１２５】
ここで、監視する連続受信回数が上位から１０回と設定されて、データ送信内容のラインレベルフロー制御指示ｆＬをカウントするならば、自律解除機能停止判定部２２は、このラインレベルフロー制御指示ｆＬを受信する度にカウントアップする。カウント値が１０回となったら、フロー制御指示送信部３０には自律送信機能が具備されているものとみなして、自律解除停止指示ａ１を出力することになる。
【０１２６】
自律解除活性化判定部２３は、メインスイッチ制御部３が二重化（０系、１系の冗長構成）されている場合に、自律解除機能を強制的に活性化するかどうかの判定制御を行う（自律解除機能を活性化するとは、自律解除の制御を起動させるということ）。
【０１２７】
この機能はメインスイッチ制御部３が二重化されている際に、一方の系が自律送信機能を有し、他方の系が自律送信機能を有していなような場合に特に有効な機能となる。ここで、メインスイッチ制御部３の０系側が自律送信機能及び通常送信機能を有しており、１系側が自律送信機能を持たず、通常送信機能だけを有しているものとする。
【０１２８】
今、メインスイッチ制御部３の０系と回線制御部２とが通信を行っている。この状態では、メインスイッチ制御部３の０系は自律送信を行い、フロー制御指示受信部２０は、自律解除を行う必要がないので、同一内容のフロー制御指示の連続受信を確認することで、自律解除機能は停止させている。その後、メインスイッチ制御部３が０系から１系に切り替わったとする。
【０１２９】
自律解除活性化判定部２３は、上位から通知された系切替え情報により、メインスイッチ制御部３が０系から１系に切り替わったことを知る。自律解除活性化判定部２３は、自律解除機能を活性化するための自律解除活性化指示ａ２を出力する。メインスイッチ制御部３の１系は、自律送信機能を持たず、通常送信だけを行うので、回線制御部２とメインスイッチ制御部３間で、輻輳解除を示すフロー制御指示がエラーとなった場合でも、回線制御部２は自律解除機能が作動しているので、誤動作から自律に復旧することができる。
【０１３０】
なお、自律解除活性化判定部２３は、０／１のいずれの系のメインスイッチ制御部３に自律送信機能が具備されているかということは知る必要がなく、０系→１系、または１系→０系のどちらかに系切替えが起きたら、自律解除機能を活性化するものである。なぜなら、系切替え時に自律解除機能をＯＮにしておけば、切り替わった系が自律送信機能を備えていなければそのままのＯＮした状態でよいし、切り替わった系が自律送信機能を備えていれば、同一内容の連続受信判断処理によって、自律解除がＯＦＦされるからである。
【０１３１】
一方、自律解除イネーブル生成部２４は、自律解除停止指示ａ１及び自律解除活性化指示ａ２にもとづいて、自律解除を行うか否かの自律解除イネーブルｅ３を出力する（自律解除を行うときは自律解除イネーブルｅ３は有効となり、自律解除を行わないときは無効となる）。
【０１３２】
自律解除停止指示ａ１が有効ならば、自律解除を停止するために、自律解除イネーブルｅ３は無効となる。自律解除活性化指示ａ２が有効ならば、自律解除を起動するために、自律解除イネーブルｅ３は有効となる。なお、ハードリセット後のデフォルトは、自律解除を行う側に設定しておき、自律解除イネーブルｅ３は有効とする。
【０１３３】
自律解除タイマ２５ａは、データ送信停止のフロー制御を自律的に解除して、データ送信を再び実行するためのタイマであり、自律解除イネーブルｅ３が有効なときのみ動作する。ラインレベルフロー制御指示ｆＬがデータ送信停止の内容ならばカウントアップを開始し、その後、データ送信の内容のラインレベルフロー制御指示ｆＬを受信するとカウント値をクリアする（この場合、メインスイッチ制御部３と回線制御部２との通信は正常に行われたことになる）。
【０１３４】
また、カウント時間が上位から設定された時間を越えてしまった場合には、異常が発生したものとみなして（データ送信の内容のラインレベルフロー制御指示ｆＬを正常受信できなかったなど）、自律解除指示（データ送信再開指示）ａ３を出力する（出力したらカウント値はクリアする）。
【０１３５】
メインスイッチ輻輳情報生成部２５ｂは、メインスイッチ輻輳情報Ｍを生成し、図２の読み出し制御部２０１ｃへ送信する。メインスイッチ輻輳情報Ｍは、ラインレベル輻輳情報ｍＬ、キューレベル輻輳情報ｍｑ＃１〜ｍｑ＃ｎのいずれかを含む。図に示すメインスイッチ輻輳情報生成部２５ｂは、ラインレベルフロー制御指示ｆＬを受信して、ラインレベル輻輳情報ｍＬを出力している。また、自律解除指示ａ３が有効の場合には、受信するラインレベルフロー制御指示ｆＬがデータ送信の内容を示していなくても、データを送信させるためのラインレベル輻輳情報ｍＬを出力することになる。
【０１３６】
自律解除通知部２５ｃは、フロー制御指示受信部２０で自律解除を動作させた場合には、その旨（自律解除の履歴情報）を上位へ通知する（自律解除を行うのは何らかの異常状態が発生したことであるから上位へ通知してやる）。ラインレベルに対して自律解除を行ったらラインレベル自律解除通知信号ｈＬ、キューレベルに対して自律解除を行ったらキューレベル自律解除通知信号ｈｑ＃１〜ｈｑ＃ｎを出力する。上位が自律解除通知信号を認識した際にはこれらの信号はクリアされる。
【０１３７】
次にフロー制御指示送信部３０の変形例について説明する。図１５はフロー制御指示送信部３０の変形例の構成を示す図である。変形例のフロー制御指示送信部３０ａが図７の構成と異なる点は、自律送信用フロー制御指示生成部３４に対して、ラインレベル輻輳情報ｍＬ及びキューレベル輻輳情報ｍｑ＃１〜ｍｑ＃ｎが入力されている点である。その他のブロック構成は同じである。
【０１３８】
図７で上述したフロー制御指示送信部３０の自律送信では、自律送信の周期がきたら、ラインレベルまたはキューレベルの輻輳状態を選択して、フロー制御指示を送信するものであった。一方、本発明の変形例では、フロー制御指示送信部３０が送信したフロー制御指示の内容を、フロー制御指示受信部２０が正常に認識できていないものを選択して送信するものである。
【０１３９】
自律送信用フロー制御指示生成部３４ａは、フロー制御指示受信部２０から送信されたラインレベル輻輳情報ｍＬ及びキューレベル輻輳情報ｍｑ＃１〜ｍｑ＃ｎを受信する。そして、自律送信用フロー制御指示を生成する場合、値の食い違うものを選択する。
【０１４０】
例えば、ＦＣＲＲ＃８が輻輳を発生しており、キューレベル輻輳情報ｍｑ＃８が輻輳解除を示し、その他のキュー及びラインの内容が一致していたとする。この場合、フロー制御指示送信部３０とフロー制御指示受信部２０との間でキュー＃８の内容が異なっているので、自律送信用フロー制御指示生成部３４ａは、自律送信周期がきたらキュー＃８を選択して、キュー＃８に関するフロー制御指示を生成する（回線制御部２から送信されたラインレベル輻輳情報ｍＬ及びキューレベル輻輳情報ｍｑ＃１〜ｍｑ＃ｎは、通常送信時に用いたＦＣＣＲと同じような役目を果たしているといえる）。このように、フロー制御指示受信部２０が誤認識しているフロー制御指示だけを送信することで、フロー制御の効率をさらに向上することができる。
【０１４１】
なお、図１５に示した変形例のフロー制御指示送信部３０ａにおいても、自律送信と通常送信の周期が一致した際には、通常送信側のフロー制御指示を選択することは変わらない。
【０１４２】
次に図７で示したフロー制御指示送信部３０の構成ブロックの詳細ついて説明する。図１６〜図１９はフロー制御指示送信部３０の構成ブロックを示す図である。自律送信用タイミング生成部３１は、セルフレームカウンタ３１ａ、比較器３１ｂから構成され、通常送信用フロー制御指示生成部３３は、ラインレベルデータ送信停止判定部３３ａ−１、キューレベルデータ送信停止判定部３３ｂ−１、ラインレベルデータ送信判定部３３ａ−２、キューレベルデータ送信判定部３３ｂ−２、判定結果選択部３３ｃから構成される。
【０１４３】
自律送信用フロー制御指示生成部３４は、カウンタ３４ａ、セレクタ３４ｂ、情報変換部３４ｃから構成され、フロー制御指示付与部３５は、フロー制御指示選択部３５ａ、情報付与部３５ｂから構成される。
【０１４４】
ＦＣＣＲ生成部３６は、デコーダ３６ａ−１、キュー／ライン単位セット指示生成部３６ａ−２、キュー／ライン単位クリア指示生成部３６ａ−３、デコーダ３６ｂ−１、キュー／ライン単位セット指示生成部３６ｂ−２、キュー／ライン単位クリア指示生成部３６ｂ−３、ＦＣＣＲ保持部３６ｃから構成される。
【０１４５】
図１６の自律送信用タイミング生成部３１に対し、セルフレームカウンタ３１ａは、セルフレームをカウントイネーブルにしてカウントアップを行う。そして、自律送信イネーブルｅ２が有効で、通常送信優先イネーブルｅ１が無効であるときのセルフレームでカウンタを１にロードする（例えば、６４セルフレーム内の１セルフレームの区間が自律送信イネーブルｅ２が有効となるので、自律送信イネーブルｅ２の有効を確認したら、次の６４セルフレームをカウントするために１をロードする）。さらに、通常送信優先イネーブルｅ１及び自律送信イネーブルｅ２が共に有効なときのセルフレームでカウンタを周期設定値にロードする（周期設定値をロードすれば次のセルフレームでカウントアップが開始されるので、通常送信後即座に自律送信の周期カウントが開始することになる（∵図１３））。
【０１４６】
比較器３１ｂは、カウント値と、上位より通知された周期設定値（例えば、６４セルフレーム）とを比較して、カウント値≧周期設定値となれば、自律送信イネーブルｅ２を１セルフレーム区間有効にする。
【０１４７】
図１７の通常送信用フロー制御指示生成部３３に対し、ラインレベルデータ送信停止判定部３３ａ−１は、ラインレベルのデータ送信停止判定を行う。ＦＣＲＲのラインレベルのビットが１で、ＦＣＣＲのラインレベルのビットが０のときに、ラインレベルデータ送信停止の判定結果を有効にする。
【０１４８】
キューレベルデータ送信停止判定部３３ｂ−１は、キューレベルのデータ送信停止判定を行う。キュー単位にＦＣＲＲのビットが１で、ＦＣＣＲのビットが０のものを検索する（検索条件αとする）。この検索条件αに該当するキューが存在するならば、キューレベルデータ送信停止の判定結果を有効にし、該当のキュー番号（キュー情報）も含めて送信する。また、検索条件αを満たすキューが複数ある場合、ラウンドロビン方式で１つのキューを選択し、そのキュー番号も含めて、キューレベルデータ送信停止の判定結果と一緒に通知する。
【０１４９】
ラウンドロビンによる動作について説明する。まず、検索ポインタを定義する。
このポインタはデフォルトが１である。ｎ個のキューがあるとすると、キューレベルのＦＣＲＲ、ＦＣＣＲはそれぞれｎ個存在するので、これに１からｎまでの番号を与える。
【０１５０】
現在の検索ポインタの値が１であるとすると、１から順に検索条件αを満たしているキューを検索し、最初に検索条件αを満たしたキューの番号をキューレベルデータ送信停止の判定結果と一緒に通知する。
【０１５１】
さらに、そのキュー番号を一旦保存しておき、キューレベルの判定選択結果の通知があった場合には、検索ポインタの値を「保存したキュー番号＋１」の値に更新する(保存したキュー番号が＃ｎのときには、検索ポインタの値を１にする)。また、キューレベルデータ送信停止判定結果が有効である通知を行っても、キューレベル判定選択結果の通知がなければ、検索ポインタの値は更新しない。このような方法でキューを選択する。
【０１５２】
ラインレベルデータ送信判定部３３ａ−２は、ラインレベルのデータ送信判定を行う。ＦＣＲＲのラインレベルのビットが０で、ＦＣＣＲのラインレベルのビットが１のときに、ラインレベルデータ送信の判定結果を有効にする。
【０１５３】
キューレベルデータ送信判定部３３ｂ−２は、キューレベルのデータ送信判定を行う。キュー単位にＦＣＲＲが０で、ＦＣＣＲが１のものを検索する（検索条件βとする）。この検索条件βに該当するキューが存在するならば、キューレベルデータ送信の判定結果を有効にし、該当のキュー番号も含めて送信する。また、検索条件βを満たすキューが複数ある場合、上記と同様のラウンドロビン方式で１つのキューを選択し、そのキュー番号も含めて、キューレベルデータ送信の判定結果と一緒に通知する。
【０１５４】
なお、上記ではキューにおいて、ＦＣＲＲとＦＣＣＲのレベル値が不一致となって、輻輳状態が変化したものが複数発生したときのラウンドロビンによるキュー選択を示したが、キューの中で状態不一致があり、かつラインに対しても状態不一致がでたときは、例えば、以下のような優先順位で選択する。
【０１５５】
[高優先]  ラインレベルフロー制御指示（データ送信停止）→キューレベルフロー制御指示（データ送信停止）→ラインレベルフロー制御指示（データ送信）→キューレベルフロー制御指示（データ送信）  [低優先]
一方、判定結果選択部３３ｃは、ラインレベルデータ送信停止判定部３３ａ−１から通知されるラインレベルデータ送信停止判定結果が有効な場合には、通常送信用フロー制御指示ｆ１は、ラインレベルのデータ送信停止の内容のフロー制御指示とする。
【０１５６】
ラインレベルデータ送信停止判定結果が無効で、キューレベルデータ送信停止判定部３３ｂ−１より通知されるキューレベルデータ送信停止判定結果が有効な場合には、通常送信用フロー制御指示ｆ１は、キューレベルデータ送信停止判定結果と一緒に通知されたキュー番号に該当するキューレベルのデータ送信停止の内容のフロー制御指示とする。そして、キューレベルデータ送信停止判定選択を通知する。
【０１５７】
また、ラインレベルデータ送信停止判定結果とキューレベルデータ送信停止判定結果との双方が無効で、ラインレベルデータ送信判定部３３ａ−２より通知されるラインレベルデータ送信判定結果が有効な場合には、通常送信用フロー制御指示ｆ１は、ラインレベルのデータ送信の内容のフロー制御指示とする。
【０１５８】
さらに、ラインレベルデータ送信停止判定結果、キューレベルデータ送信停止判定結果、ラインレベルデータ送信判定結果の３つが無効で、キューレベルデータ送信判定部３３ｂ−２より通知されるキューレベルデータ送信判定結果が有効な場合には、通常送信用フロー制御指示ｆ１は、キューレベルデータ送信判定結果と一緒に通知されたキュー番号に該当するキューレベルのデータ送信の内容のフロー制御指示とする。そして、キューレベルデータ送信判定選択を通知する。
【０１５９】
さらにまた、ラインレベルデータ送信停止判定結果、キューレベルデータ送信停止判定結果、ラインレベルデータ送信判定結果、キューレベルデータ送信判定結果のいずれかが有効で、図１６の比較器３１ｂより通知される自律送信イネーブルｅ２が有効な場合には通常送信優先イネーブルｅ１を出力する。
【０１６０】
図１８の自律送信用フロー制御指示生成部３４に対し、カウンタ３４ａは、自律送信用にどのキューを選択するかを示すカウンタである。ｎ個のキューがあるとすると、ラインレベルと合わせて（ｎ＋１）個のビットのＦＣＲＲが存在する。カウンタ３４ａは、自律送信イネーブルｅ２が有効で、通常送信優先イネーブルｅ１が無効なときのセルフレームのタイミングでカウントアップを行う。カウントアップは０からｎまでを繰り返して行われる。
【０１６１】
セレクタ３４ｂは、（ｎ＋１）個のビットのＦＣＲＲの中から、カウンタ３４ａより通知されるカウント値で示されるビットの値を選択する。そして、選択したＦＣＲＲのビット値と、そのキュー番号を選択結果として通知する。
【０１６２】
情報変換部３４ｃは、セレクタ３４ｂより通知される選択結果を、自律送信用フロー制御指示ｆ２に変換する。選択したＦＣＲＲのビット値が０の場合には、自律送信用フロー制御指示ｆ２は、データ送信の内容のフロー制御指示とし、一緒に選択したキュー番号と含めて通知する。また、選択したＦＣＲＲのビット値が１の場合には、自律送信用フロー制御指示ｆ２は、データ送信停止のフロー制御指示とし、一緒に選択したキュー番号と含めて通知する。なお、情報変換部３４ｃは、自律送信イネーブルｅ２が有効で、通常送信優先イネーブルｅ１が無効な場合のみ動作する。
【０１６３】
図１８のフロー制御指示付与部３５に対し、フロー制御指示選択部３５ａは、通常送信用フロー制御指示ｆ１または自律送信用フロー制御指示ｆ２のいずれかを選択する。通常送信用フロー制御指示ｆ１と自律送信用フロー制御指示ｆ２は、同一セル時間内に２つ同時に有効になることはない。したがって、有効なフロー制御指示を選択すればよい（なお、通常送信用フロー制御指示ｆ１と自律送信用フロー制御指示ｆ２が２つとも無効な場合には、どちらのフロー制御指示を選択してもかまわない）。
【０１６４】
情報付与部３５ｂは、セルフレームでフロー制御指示選択部３５ａより通知されるフロー制御指示を取得し、セルデータ中のセルヘッダにフロー制御指示を付与する。
図１９のＦＣＣＲ生成部３６に対し、デコーダ３６ａ−１、３６ｂ−１は、通常送信用フロー制御指示ｆ１と自律送信用フロー制御指示ｆ２のキュー番号、ラインをデコードし、結果（ｎ＋１）個のデコードフラグを生成する。
【０１６５】
キュー／ライン単位セット指示生成部３６ａ−２は、通常送信用フロー制御指示ｆ１がデータ送信停止の内容の場合に、デコーダ３６ａ−１より通知されるデコードフラグをそのまま通常送信のフロー制御によるＦＣＣＲセット指示とする。
【０１６６】
キュー／ライン単位クリア指示生成部３６ａ−３は、通常送信用フロー制御指示ｆ１がデータ送信の内容の場合に、デコードフラグをそのまま通常送信用フロー制御によるＦＣＣＲクリア指示とする。
【０１６７】
キュー／ライン単位セット指示生成部３６ｂ−２は、自律送信用フロー制御指示ｆ２がデータ送信停止の内容の場合に、デコーダ３６ｂ−１より通知されるデコードフラグをそのまま自律送信のフロー制御によるＦＣＣＲセット指示とする。
【０１６８】
キュー／ライン単位クリア指示生成部３６ｂ−３は、自律送信用フロー制御指示ｆ２がデータ送信の内容の場合に、デコードフラグをそのまま自律送信用フロー制御によるＦＣＣＲクリア指示とする。
【０１６９】
ＦＣＣＲ保持部３６ｃは、（ｎ＋１）個のＦＣＣＲを生成し保持する。キュー単位またはラインに対し、通常送信用フロー制御によるＦＣＣＲセット指示が通知された場合、または自律送信用フロー制御によるＦＣＣＲセット指示が通知された場合に、対応するキューまたはラインのＦＣＣＲをセットする。
【０１７０】
そして、通常送信用フロー制御によるＦＣＣＲクリア指示が通知された場合、または自律送信用フロー制御によるＦＣＣＲクリア指示が通知された場合に、対応するキューまたはラインのＦＣＣＲをクリアする（ＦＣＣＲは、通常送信時のフロー制御指示生成処理のときに使用されるが、ＦＣＣＲの情報自体を生成するには、通常送信用フロー制御指示ｆ１及び自律送信用フロー制御指示ｆ２の両方を利用して前回の輻輳状態を記録しておくものである）。
【０１７１】
次に図１４で示したフロー制御指示受信部２０の構成ブロックの詳細ついて説明する。図２０〜図２２はフロー制御指示受信部２０の構成ブロックを示す図である。フロー制御指示抽出部２１は、情報抽出部２１ａ、ラインレベル認識部２１ｂ、デコーダ２１ｃ、キューレベル認識部２１ｄから構成され、自律解除機能停止判定部２２は、データ送信停止連続受信カウンタ２２ａ、比較器２２ｂ、データ送信連続受信カウンタ２２ｃ、比較器２２ｄ、ＯＲ素子２２ｅから構成される。
【０１７２】
自律解除活性化判定部２３は、立ち上がりエッジ検出部２３ａ、立ち下がりエッジ検出部２３ｂ、ＯＲ素子２３ｃから構成され、輻輳レベル制御部２５内の自律解除タイマ２５ａは、カウンタ２５ａ−１、比較器２５ａ−２から構成される。
【０１７３】
図２０のフロー制御指示抽出部２１に対し、情報抽出部２１ａは、図２のＰ／Ｃ２０２から出力されたセルデータを受信し、セルヘッダに付与されているフロー制御指示を抽出する。抽出後はセルヘッダのフロー制御指示領域をクリアする。
【０１７４】
ラインレベル認識部２１ｂは、情報抽出部２１ａより通知されるフロー制御指示がラインレベルのフロー制御指示か否かを判断し、ラインレベルであればラインレベルフロー制御指示ｆＬを生成する。デコーダ２１ｃは、情報抽出部２１ａより通知されるフロー制御指示がキューレベルのフロー制御指示である場合に、キュー番号をデコードしデコードフラグを生成する。
【０１７５】
キューレベル認識部２１ｄは、情報抽出部２１ａより通知されるフロー制御指示が、キューレベルフロー制御指示であることを認識し、デコーダ２１ｃより通知されるｎ個のデコードフラグを参照する。そしてｎ個のキューレベルフロー制御指示ｆｑ＃１〜ｆｑ＃ｎを生成する。
【０１７６】
図２１の自律解除機能停止判定部２２に対し、データ送信停止連続受信カウンタ２２ａは、ラインレベルフロー制御指示ｆＬがデータ送信停止の内容の場合にカウントアップし、データ送信の内容の場合に０にロードする。さらに、比較器２２ｂより停止指示が通知された場合には、カウントを０にロードする。
【０１７７】
比較器２２ｂは、データ送信停止連続受信カウンタ２２ａより通知されるカウント値と、上位より通知される連続受信回数設定値とを比較する。「カウント値≧連続受信回数設定値」となる場合に、データ送信停止連続受信による停止指示を通知する。
【０１７８】
データ送信連続受信カウンタ２２ｃは、ラインレベルフロー制御指示ｆＬがデータ送信の内容の場合にカウントアップし、データ送信停止の内容の場合に０にロードする。さらに、比較器２２ｄより停止指示が通知された場合には、カウントを０にロードする。
【０１７９】
比較器２２ｄは、データ送信連続受信カウンタ２２ｃより通知されるカウント値と、上位より通知される連続受信回数設定値とを比較する。「カウント値≧連続受信回数設定値」となる場合に、データ送信連続受信による停止指示を通知する。
【０１８０】
ＯＲ素子２２ｅは、比較器２２ｂより通知されるデータ送信停止連続受信による停止指示と、比較器２２ｄより通知されるデータ送信連続受信による停止指示のＯＲ論理をとり、自律解除停止指示ａ１とする。
【０１８１】
図２１の自律解除活性化判定部２３に対し、立ち上がりエッジ検出部２３ａは、系切替え情報の立ち上がりエッジを検出する。立ち下がりエッジ検出部２３ｂは、系切替え情報の立ち下がりエッジを検出する。ＯＲ素子２３ｃは、立ち上がり検出パルスと立ち下がり検出パルスのＯＲ論理をとり、自律解除活性化指示ａ２とする。
【０１８２】
自律解除イネーブル生成部２４は、フリップフロップであり、自律解除イネーブルｅ３を生成する。ＯＲ素子２３ｃより通知される自律解除活性化指示ａ２により、自律解除イネーブルｅ３をセットし、ＯＲ素子２２ｅより通知される自律解除停止指示ａ１により自律解除イネーブルｅ３をクリアする。なお、自律解除イネーブルｅ３の初期状態はセット状態である。
【０１８３】
図２２の自律解除タイマ２５ａに対し、カウンタ２５ａ−１は、自律解除を行うためのタイマとして動作するカウンタである。自律解除イネーブルｅ３が有効な場合のみカウンタが動作し、自律解除イネーブルｅ３が無効な時はカウント値は０である。
【０１８４】
自律解除イネーブルｅ３が有効で、ラインレベルフロー制御指示ｆＬがデータ送信停止の内容のときにカウンタがタイマとして動作し、経過時間を計測し始める。また、ラインレベルフロー制御指示ｆＬがデータ送信の内容のときにカウンタを０にロードし経過時間の計測をやめる。また、比較器２５ａ−２より自律解除指示が通知された時もカウンタを０にロードし、経過時間の計測をやめる。
【０１８５】
比較器２５ａ−２は、カウンタ２５ａ−１より通知されるカウント値と上位より通知される自律解除タイマ設定値とを比較する。そして「カウント値≧自律解除タイマ設定値」の時に自律解除指示ａ３を通知する。
【０１８６】
メインスイッチ輻輳情報生成部２５ｂは、フリップフロップでありラインレベル輻輳情報ｍＬを生成する。ラインレベルフロー制御指示ｆＬがデータ送信停止である場合には、ラインレベル輻輳情報ｍＬをセットする。ラインレベルフロー制御指示ｆＬがデータ送信である場合、または比較器２５ａ−２より自律解除指示ａ３の通知があった場合には、ラインレベル輻輳情報ｍＬをクリアする。
【０１８７】
自律解除通知部２５ｃは、フリップフロップであり自律解除を行ったことを示すラインレベルの自律解除通知信号ｈＬを生成する。比較器２５ａ−２より自律解除指示ａ３が通知された場合には、ラインレベルの自律解除通知信号ｈＬをセットする。ソフト等の上位よりこのフラグが読み出されて、もしくは自律解除活性化指示ａ２が通知された場合には、ラインレベルの自律解除通知信号ｈＬをクリアする。
【０１８８】
以上説明したように、本発明によれば、event 形式のフロー制御において、フロー制御指示送信部３０とフロー制御指示受信部２０の間で伝送路上の障害等によりフロー制御指示が認識できなかったり、フロー制御指示を誤認識して誤動作しても、ハード自律で正常動作に復旧することができ、フロー制御の効率のよいアーキテクチャを構成することが可能になる。
【０１８９】
（付記１）  フロー制御を行って信号の伝送を行う伝送システムにおいて、
データの受信制御を行うデータ受信部と、データ受信時、輻輳が発生または解除となった状態のイベントが生じた場合には、該当の輻輳状態のフロー制御を行うためのフロー制御指示を送信する通常送信、または周期毎に現在の複数の輻輳状態から１つの輻輳状態を選択して、選択した輻輳状態に対応するフロー制御指示を自律的に送信する自律送信の少なくとも一方の機能を有し、通常送信と自律送信とのタイミングが一致したときには、実際に輻輳が発生または解除となった通常送信側のフロー制御指示を優先的に送信するフロー制御指示送信部と、から構成されるフロー制御指示送信側伝送装置と、
データの送信制御を行うデータ送信部と、フロー制御指示を受信して、データ送信停止及びデータ送信によるフロー制御を行うフロー制御指示受信部と、から構成されるフロー制御指示受信側伝送装置と、
を有することを特徴とする伝送システム。
【０１９０】
（付記２）  前記フロー制御指示送信部は、単一キューに対するキューレベルの輻輳状態、またはすべてのキューに対するラインレベルの輻輳状態、のいずれかに対応するフロー制御指示を送信することを特徴とする付記１記載の伝送システム。
【０１９１】
（付記３）  前記フロー制御指示受信部は、フロー制御指示の内容がデータ送信停止を示す場合はタイマを起動し、一定時間経過してもデータ送信停止解除を示すフロー制御指示を受信しなければ、データ送信停止の自律解除を行うことを特徴とする付記１記載の伝送システム。
【０１９２】
（付記４）  前記フロー制御指示受信部は、データ送信停止の自律解除を行った場合は、上位へ通知することを特徴とする付記３記載の伝送システム。
（付記５）  前記フロー制御指示受信部は、同一内容の輻輳状態のフロー制御指示を一定回数連続して受信した場合には、自律解除制御を停止することを特徴とする付記３記載の伝送システム。
【０１９３】
（付記６）  前記フロー制御指示受信部は、前記フロー制御送信装置が二重化されている場合、系切り替え時には、自律解除制御を活性化することを特徴とする付記３記載の伝送システム。
【０１９４】
（付記７）  前記フロー制御指示受信部は、自己が認識したフロー制御指示の内容を前記フロー制御指示送信部へ通知し、前記フロー制御指示送信部は、通知されたフロー制御指示の内容とは異なる輻輳状態に関するフロー制御指示の自律送信を行い、かつ通常送信と自律送信とのタイミングが一致したときには、通常送信側のフロー制御指示を優先的に送信することを特徴とする付記１記載の伝送システム。
【０１９５】
（付記８）  フロー制御を行って信号の伝送を行う伝送装置において、
データの受信制御を行うデータ受信部と、
データ受信時、輻輳が発生または解除となった状態のイベントが生じた場合には、該当の輻輳状態のフロー制御を行うためのフロー制御指示を送信する通常送信、または周期毎に現在の複数の輻輳状態から１つの輻輳状態を選択して、選択した輻輳状態に対応するフロー制御指示を自律的に送信する自律送信の少なくとも一方の機能を有し、通常送信と自律送信とのタイミングが一致したときには、実際に輻輳が発生または解除となった通常送信側のフロー制御指示を優先的に送信するフロー制御指示送信部と、
を有することを特徴とする伝送装置。
【０１９６】
（付記９）  フロー制御を行って信号の伝送を行う伝送装置において、
データの送信制御を行うデータ送信部と、
フロー制御指示を受信して、データ送信停止及びデータ送信によるフロー制御を行い、フロー制御指示の内容がデータ送信停止を示す場合はタイマを起動し、一定時間経過してもデータ送信停止解除を示すフロー制御指示を受信しなければ、データ送信停止の自律解除を行うフロー制御指示受信部と、
を有することを特徴とする伝送装置。
【０１９７】
（付記１０）  フロー制御を行って信号の伝送を行う伝送システムにおいて、
各回線から送信された固定長のセルを受信して、多重化した後に共通バッファにバッファリングするセル受信部と、前記共通バッファから多重化セルを読み出してスイッチングするセル読み出し部と、バッファリング状態から輻輳状態を監視し輻輳状態フラグを生成するバッファ監視部と、多重化したセルを回線毎に分離する分離部と、輻輳状態フラグにもとづき、フロー制御指示を作成してセルに付加し、輻輳が発生または解除となった状態のイベントが生じた場合には、該当の輻輳状態のフロー制御を行うためのフロー制御指示を送信する通常送信、または周期毎に現在の複数の輻輳状態から１つの輻輳状態を選択して、選択した輻輳状態に対応するフロー制御指示を自律的に送信する自律送信の少なくとも一方の機能を有し、通常送信と自律送信とのタイミングが一致したときには、実際に輻輳が発生または解除となった通常送信側の輻輳状態のフロー制御指示を優先的に送信するフロー制御指示送信部と、フロー制御指示が付加されたセルに誤り訂正符号を付加して送信する誤り訂正符号付加部と、から構成されるメインスイッチ制御装置と、
可変長のパケットをパケット／セル変換バッファに書き込んで、フロー制御指示にもとづき読み出し、回線毎にセルを前記メインスイッチ制御装置へ送信するセル送信部と、フロー制御指示が付加されたセルを受信して誤り訂正処理を行う誤り訂正処理部と、フロー制御指示にもとづき、データ送信停止及びデータ送信によるフロー制御を行うフロー制御指示受信部と、セルをパケットに変換してパケット回線側へ送信するパケット送信部と、から構成される回線制御装置と、
を有することを特徴とする伝送システム。
【０１９８】
（付記１１）  前記フロー制御指示送信部は、単一キューに対するキューレベルの輻輳状態、またはすべてのキューに対するラインレベルの輻輳状態、のいずれかに対応するフロー制御指示を送信することを特徴とする付記１０記載の伝送システム。
【０１９９】
（付記１２）  前記フロー制御指示受信部は、フロー制御指示の内容がデータ送信停止を示す場合はタイマを起動し、一定時間経過してもデータ送信停止解除を示すフロー制御指示を受信しなければ、データ送信停止の自律解除を行うことを特徴とする付記１０記載の伝送システム。
【０２００】
（付記１３）  前記フロー制御指示受信部は、データ送信停止の自律解除を行った場合は、上位へ通知することを特徴とする付記１２記載の伝送システム。
（付記１４）  前記フロー制御指示受信部は、同一内容の輻輳状態のフロー制御指示を一定回数連続して受信した場合には、自律解除制御を停止することを特徴とする付記１２記載の伝送システム。
【０２０１】
（付記１５）  前記フロー制御指示受信部は、前記フロー制御送信装置が二重化されている場合、系切り替え時には、自律解除制御を活性化することを特徴とする付記１２記載の伝送システム。
【０２０２】
（付記１６）  前記フロー制御指示受信部は、自己が認識したフロー制御指示の内容を前記フロー制御指示送信部へ通知し、前記フロー制御指示送信部は、通知されたフロー制御指示の内容とは異なる輻輳状態に関するフロー制御指示の自律送信を行い、かつ通常送信と自律送信とのタイミングが一致したときには、通常送信側のフロー制御指示を優先的に送信することを特徴とする付記１０記載の伝送システム。
【０２０３】
（付記１７）  フロー制御を行ってセルのスイッチングを行うメインスイッチ制御装置において、
各回線から送信された固定長のセルを受信して、多重化した後に共通バッファにバッファリングするセル受信部と、
前記共通バッファから多重化セルを読み出してスイッチングするセル読み出し部と、
バッファリング状態から輻輳状態を監視し輻輳状態フラグを生成するバッファ監視部と、
多重化したセルを回線毎に分離する分離部と、
輻輳状態フラグにもとづき、フロー制御指示を作成してセルに付加し、輻輳が発生または解除となった状態のイベントが生じた場合には、該当の輻輳状態のフロー制御を行うためのフロー制御指示を送信する通常送信、または周期毎に現在の複数の輻輳状態から１つの輻輳状態を選択して、選択した輻輳状態に対応するフロー制御指示を自律的に送信する自律送信の少なくとも一方の機能を有し、通常送信と自律送信とのタイミングが一致したときには、実際に輻輳が発生または解除となった通常送信側の輻輳状態のフロー制御指示を優先的に送信するフロー制御指示送信部と、
フロー制御指示が付加されたセルに誤り訂正符号を付加して送信する誤り訂正符号付加部と、
を有することを特徴とするメインスイッチ制御装置。
【０２０４】
（付記１８）  フロー制御を行って回線毎にセルの送信を行う回線制御装置において、
可変長のパケットをパケット／セル変換バッファに書き込んで、フロー制御指示にもとづき読み出し、回線毎にセルを送信するセル送信部と、
フロー制御指示が付加されたセルを受信して誤り訂正処理を行う誤り訂正処理部と、
フロー制御指示にもとづき、データ送信停止及びデータ送信によるフロー制御を行い、フロー制御指示の内容がデータ送信停止を示す場合はタイマを起動し、一定時間経過してもデータ送信停止解除を示すフロー制御指示を受信しなければ、データ送信停止の自律解除を行うフロー制御指示受信部と、
セルをパケットに変換してパケット回線側へ送信するパケット送信部と、
を有することを特徴とする回線制御装置。
【０２０５】
（付記１９）  フロー制御指示の通知をイベント形式で行ってフロー制御を行うフロー制御方法において、
輻輳が発生または解除となった状態のイベントが生じた場合には、該当の輻輳状態のフロー制御を行うためのフロー制御指示を送信する通常送信、または周期毎に現在の複数の輻輳状態から１つの輻輳状態を選択して、選択した輻輳状態に対応するフロー制御指示を自律的に送信する自律送信の少なくとも一方の機能を有し、
通常送信と自律送信とのタイミングが一致したときには、実際に輻輳が発生または解除となった通常送信側の輻輳状態のフロー制御指示を優先的に送信し、
フロー制御指示を受信して、データ送信停止及びデータ送信によるフロー制御を行うことを特徴とするフロー制御方法。
【０２０６】
（付記２０）  単一キューに対するキューレベルの輻輳状態、またはすべてのキューに対するラインレベルの輻輳状態、のいずれかに対応するフロー制御指示を送信することを特徴とする付記１９記載のフロー制御方法。
【０２０７】
（付記２１）  フロー制御指示の内容がデータ送信停止を示す場合はタイマを起動し、一定時間経過してもデータ送信停止解除を示すフロー制御指示を受信しなければ、データ送信停止の自律解除を行うことを特徴とする付記１９記載のフロー制御方法。
【０２０８】
（付記２２）  データ送信停止の自律解除を行った場合は、上位へ通知することを特徴とする付記２１記載のフロー制御方法。
（付記２３）  同一内容の輻輳状態のフロー制御指示を一定回数連続して受信した場合には、自律解除制御を停止することを特徴とする付記２１記載のフロー制御方法。
【０２０９】
（付記２４）  フロー制御を送信する装置が二重化されている場合、系切り替え時には、自律解除制御を活性化することを特徴とする付記２１記載のフロー制御方法。
（付記２５）  フロー制御指示の受信装置は、自己が認識したフロー制御指示の内容を、フロー制御指示の送信装置へ通知し、前記送信装置は、通知されたフロー制御指示の内容とは異なる輻輳状態に関するフロー制御指示の自律送信を行い、かつ通常送信と自律送信とのタイミングが一致したときには、通常送信側のフロー制御指示を優先的に送信することを特徴とする付記１９記載のフロー制御方法。
【図面の簡単な説明】
【０２１０】
【図１】本発明の伝送システムの原理図である。
【図２】伝送システムの構成を示す図である。
【図３】伝送システムの構成を示す図である。
【図４】キューレベルの輻輳状態を説明するための図である。
【図５】ラインレベルの輻輳状態を説明するための図である。
【図６】フロー制御指示のフォーマット例を示す図である。
【図７】フロー制御指示送信部の構成を示す図である。
【図８】自律送信用フロー制御指示生成部の動作概要を示す図である。
【図９】ＦＣＲＲとＦＣＣＲにもとづくフロー制御指示生成の動作を説明するための図である。
【図１０】ＦＣＲＲとＦＣＣＲにもとづくフロー制御指示生成の動作を説明するための図である。
【図１１】ＦＣＲＲとＦＣＣＲにもとづくフロー制御指示生成の動作を説明するための図である。
【図１２】ＦＣＲＲとＦＣＣＲにもとづくフロー制御指示生成の動作を説明するための図である。
【図１３】自律送信と通常送信のタイミングが一致したときの自律送信周期の設定の様子を示す図である。
【図１４】フロー制御指示受信部の構成を示す図である。
【図１５】フロー制御指示送信部の変形例の構成を示す図である。
【図１６】フロー制御指示送信部の構成ブロックを示す図である。
【図１７】フロー制御指示送信部の構成ブロックを示す図である。
【図１８】フロー制御指示送信部の構成ブロックを示す図である。
【図１９】フロー制御指示送信部の構成ブロックを示す図である。
【図２０】フロー制御指示受信部の構成ブロックを示す図である。
【図２１】フロー制御指示受信部の構成ブロックを示す図である。
【図２２】フロー制御指示受信部の構成ブロックを示す図である。
【符号の説明】
【０２１１】
１  伝送システム
２  フロー制御指示受信側伝送装置
２０  フロー制御指示受信部
２ａ  データ送信部
３  フロー制御指示送信側伝送装置
３０  フロー制御指示送信部
３ａ  データ受信部
【図１】
2005123765.tif 000003
【図２】
2005123765.tif 000004
【図３】
2005123765.tif 000005
【図４】
2005123765.tif 000006
【図５】
2005123765.tif 000007
【図６】
2005123765.tif 000008
【図７】
2005123765.tif 000009
【図８】
2005123765.tif 000010
【図９】
2005123765.tif 000011
【図１０】
2005123765.tif 000012
【図１１】
2005123765.tif 000013
【図１２】
2005123765.tif 000014
【図１３】
2005123765.tif 000015
【図１４】
2005123765.tif 000016
【図１５】
2005123765.tif 000017
【図１６】
2005123765.tif 000018
【図１７】
2005123765.tif 000019
【図１８】
2005123765.tif 000020
【図１９】
2005123765.tif 000021
【図２０】
2005123765.tif 000022
【図２１】
2005123765.tif 000023
【図２２】
2005123765.tif 000024