(57)【特許請求の範囲】
【請求項１】
装置内に滞留可能な時間である許容遅延時間が規定されたフレームを格納するためのバッファ部と、
前記バッファ部にフレームが書き込まれてから読み出されるまでの時間であるフレーム滞留時間に影響を与える、自装置の外部で発生した遅延を検出する外部遅延検出部と、
前記外部遅延検出部が検出した遅延の遅延時間と前記許容遅延時間とに基づいて、前記バッファ部へのフレームの書き込みを停止する期間を決定する遅延管理部と、
前記遅延管理部で決定された前記期間において受信したフレームを廃棄するように前記バッファ部を制御するバッファ閉塞制御部と、
前記外部遅延検出部が前記遅延を検出した場合に、前記バッファ部に格納されているフレームを廃棄するバッファクリア制御部と、
を備えることを特徴とする通信装置。
【請求項２】
装置内に滞留可能な時間である許容遅延時間が規定されたフレームを格納するためのバッファ部と、
前記バッファ部にフレームが書き込まれてから読み出されるまでの時間であるフレーム滞留時間に影響を与える、自装置の外部で発生した遅延を検出する外部遅延検出部と、
前記外部遅延検出部が検出した遅延の遅延時間と前記許容遅延時間とに基づいて、前記バッファ部に格納されているフレームを出力せずに廃棄する期間を決定する遅延管理部と、
前記遅延管理部で前記期間が決定されると、前記バッファ部に対して、フレームの読出し指示を受けた場合に当該読出し指示に対応するフレームを廃棄するよう指示し、前記期間が終了すると、前記バッファ部に対して、フレームの読出し指示を受けた場合に当該読出し指示に対応するフレームを出力するよう指示する出力廃棄制御部と、
を備えることを特徴とする通信装置。
【請求項３】
前記外部遅延検出部は、他の通信装置から受信したフレームに格納されている情報に基づいて前記遅延を検出することを特徴とする請求項１または２に記載の通信装置。
【請求項４】
前記他の通信装置を前記バッファ部に格納されているフレームの送信先の通信装置とすることを特徴とする請求項３に記載の通信装置。
【請求項５】
装置内に滞留可能な時間である許容遅延時間が規定されたフレームを格納するためのバッファ部を備えた通信装置におけるバッファ制御方法であって、
前記バッファ部にフレームが書き込まれてから読み出されるまでの時間であるフレーム滞留時間に影響を与える、自装置の外部で発生した遅延を検出する外部遅延検出ステップと、
前記外部遅延検出ステップで検出した遅延の遅延時間と前記許容遅延時間とに基づいて、前記バッファ部へのフレームの書き込みを停止する期間を決定する書込み停止期間決定ステップと、
前記書込み停止期間決定ステップで決定した前記期間内において、受信したフレームを廃棄するフレーム廃棄ステップと、
前記外部遅延検出ステップで前記遅延を検出した場合に、前記バッファ部に格納されているフレームを廃棄するバッファクリアステップと、
を含むことを特徴とするバッファ制御方法。
【請求項６】
装置内に滞留可能な時間である許容遅延時間が規定されたフレームを格納するためのバッファ部を備えた通信装置におけるバッファ制御方法であって、
前記バッファ部にフレームが書き込まれてから読み出されるまでの時間であるフレーム滞留時間に影響を与える、自装置の外部で発生した遅延を検出する外部遅延検出ステップと、
前記外部遅延検出ステップで検出した遅延の遅延時間と前記許容遅延時間とに基づいて、前記バッファ部に格納されているフレームを出力せずに廃棄する期間を決定するフレーム廃棄期間決定ステップと、
前記フレーム廃棄期間決定ステップで決定した前記期間においてフレームの送信タイミングになると送信対象のフレームを前記バッファ部から廃棄するフレーム廃棄ステップと、
を含むことを特徴とするバッファ制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、フレームを転送する通信装置およびバッファ制御方法に関する。
【背景技術】
【０００２】
音声や映像等を伝送するリアルタイム性が高いサービスでは、伝送装置がフレームを転送する際に発生する遅延時間に対する短縮化の要求が強く、伝送装置内におけるフレームの滞留が許容される遅延時間（以下、許容遅延時間と称す）が設定されている。このため、伝送装置は、フレームを受信してから送信するまでの処理の遅延時間が、許容遅延時間を超過すると、フレームの有効性がなくなるために、許容遅延時間を超過したフレームを廃棄している。従来手法では、許容遅延時間の設定されたフレームに対して、（１）フレーム受信時刻または送出時刻、フレーム送信間隔から各フレームの送出予定時刻を算出し、（２）バッファに格納された各フレームの受信時刻および格納順番に関する情報を記録し、（３）許容遅延時間とフレーム受信時間を加算して廃棄予定時刻を算出し、（４）送出予定時刻が廃棄予定時刻を超えた場合にフレーム廃棄処理を行うことで、許容遅延時間を超えて送信しようとするフレームを廃棄する（特許文献１参照）。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特許第５３４７８１１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
許容遅延時間が設定されたフレームを対象としたフレーム転送では、設定した許容遅延時間を満たさないフレームを廃棄する。従来手法では送出予定時刻と廃棄予定時刻の算出および管理を行い、さらに、廃棄判定に伴う複雑なバッファ制御をフレーム毎に実施するため、回路規模および消費電力が大きくなるという問題があった。また、フレーム蓄積中に障害発生に伴う冗長経路への切替、送信の一時中断を指示するＰａｕｓｅフレームの受信など外部要因の遅延が発生した場合、送出予定時刻にずれが発生し、フレームが出力できずにバッファに溜まり続けバッファがオーバフローするケースがある。この場合、本来であれば出力可能である後続のフレームがオーバフローにより廃棄されてしまい、出力できないという問題もあった。
【０００５】
本発明は、上記に鑑みてなされたものであって、外部要因の遅延が発生した場合にバッファがオーバフローするのを防止することが可能な通信装置を得ることを目的とする。
【課題を解決するための手段】
【０００６】
上述した課題を解決し、目的を達成するために、本発明にかかる通信装置は、装置内に滞留可能な時間である許容遅延時間が規定されたフレームを格納するためのバッファ部と、バッファ部にフレームが書き込まれてから読み出されるまでの時間であるフレーム滞留時間に影響を与える、自装置の外部で発生した遅延を検出する外部遅延検出部と、を備える。また、外部遅延検出部が検出した遅延の遅延時間と許容遅延時間とに基づいて、バッファ部へのフレームの書き込みを停止する期間を決定する遅延管理部と、遅延管理部で決定された期間において受信したフレームを廃棄するようにバッファ部を制御するバッファ閉塞制御部と、を備える。また、外部遅延検出部が遅延を検出した場合に、バッファ部に格納されているフレームを廃棄するバッファクリア制御部を備える。
【発明の効果】
【０００７】
本発明によれば、外部要因の遅延が発生した場合にバッファがオーバフローするのを防止できるという効果を奏する。
【図面の簡単な説明】
【０００８】
【図１】実施の形態１にかかる通信装置の構成例を示す図
【図２】Ｐａｕｓｅフレームの構成を示す図
【図３】実施の形態１の許容遅延識別部の動作例を示すフローチャート
【図４】実施の形態１のバッファ振分部の動作例を示すフローチャート
【図５】実施の形態１の外部遅延検出部の動作例を示すフローチャート
【図６】実施の形態１の遅延管理部の動作例を示すフローチャート
【図７】実施の形態１のバッファ閉塞制御部の動作例を示すフローチャート
【図８】実施の形態１のバッファクリア制御部の動作例を示すフローチャート
【図９】実施の形態１のバッファ書込制御部の動作例を示すフローチャート
【図１０】実施の形態１のバッファ読出制御部の動作例を示すフローチャート
【図１１】実施の形態１の出力制御部の動作例を示すフローチャート
【図１２】実施の形態２にかかる通信装置の構成例を示す図
【図１３】実施の形態２の遅延管理部の動作例を示すフローチャート
【図１４】実施の形態２の出力廃棄制御部の動作例を示すフローチャート
【図１５】実施の形態２のバッファ読出制御部の動作例を示すフローチャート
【図１６】実施の形態２の出力制御部の動作例を示すフローチャート
【図１７】通信装置の各部を実現するハードウェア構成の一例を示す図
【発明を実施するための形態】
【０００９】
以下に、本発明の実施の形態にかかる通信装置およびバッファ制御方法を図面に基づいて詳細に説明する。なお、この実施の形態によりこの発明が限定されるものではない。
【００１０】
実施の形態１．
図１は、本発明の実施の形態１にかかる通信装置の構成例を示す図である。図１に示した通信装置１において、許容遅延識別部１０は、入力フレームすなわち他の通信装置から受信したフレームの滞留が許容される遅延時間である許容遅延時間を識別する。バッファ振分け部１１は、許容遅延識別部１０からフレームおよびフレームの許容遅延時間の情報を受け取り、受け取ったフレームを許容遅延時間に基づいてバッファに振り分ける。外部遅延検出部１２は、外部要因の遅延時間である外部遅延時間を検出する。遅延管理部１３は、外部遅延検出部１２で検出された外部遅延時間に基づいて、バッファ閉塞制御部１４およびバッファクリア制御部１５に出力する制御信号を生成する。バッファ閉塞制御部１４は、遅延管理部１３からの制御信号を用いて、許容遅延時間ごとにフレームが振り分けられる複数のバッファの閉塞制御を行う。バッファクリア制御部１５は、遅延管理部１３からの制御信号を用いて、フレームを格納する各バッファのクリア制御を行う。複数のバッファ部１６1〜１６3は、自バッファと対応付けられている許容遅延時間のフレームを格納する。出力制御部１７は、バッファ部１６1〜１６3に格納されているフレームの出力制御を行う。
【００１１】
図１ではバッファ部が３つの場合の例を示しているが、バッファ部を２つ以下または４つ以上としてもよい。バッファ部は複数でなくてもよい。バッファ部１６1〜１６3の各々には、許容遅延時間が同じフレームが格納される。本実施の形態ではバッファ部が３つであるため、許容遅延時間は３種類となる。本実施の形態では、バッファ部１６1〜１６3の許容遅延時間を遅延＃１〜＃３とし、また、遅延＃１＜遅延＃２＜遅延＃３とする。なお、以下の説明において、バッファ部１６1〜１６3をバッファ＃１〜＃３と表現する場合がある。
【００１２】
バッファ部１６1〜１６3は同じ構成となっている。なお、図１では、バッファ部１６1の構成のみを記載し、バッファ部１６2および１６3の構成については記載を省略している。バッファ部１６1〜１６3の各々は、後述するフレームバッファ１６２へのフレーム書き込みおよびフレーム廃棄制御を行うバッファ書込制御部１６１と、フレームを格納するフレームバッファ１６２と、フレームバッファ１６２に格納されているフレームの読み出し制御を行うバッファ読出制御部１６３とを備える。
【００１３】
以下、通信装置１の動作について説明する。ここで、本実施の形態の通信装置１では、予め一定時間の遅延が発生することが見込まれる、Ｐａｕｓｅフレームの受信時および障害発生に伴う経路切替発生時を想定している。すなわち、Ｐａｕｓｅフレームの受信または障害発生に伴う経路切替の発生により外部要因の遅延が発生した場合に、許容遅延時間を超過するフレームをフレームバッファから廃棄する。Ｐａｕｓｅフレームの受信により発生する遅延時間の例について、図２を用いて説明する。図２は、Ｐａｕｓｅフレームの構成を示す図である。ＰａｕｓｅフレームはＩＥＥＥ８０２．３ｘで規定されており、Ｐｒｅａｍｂｌｅ、ＳＦＤ（Start  Frame  Delimiter）、ＭＡＣ−ＤＡ（Media  Access  Control−Destination  Address）、ＭＡＣ−ＳＡ（Media  Access  Control−Source  Address）、Ｌｅｎｇｔｈ／Ｔｙｐｅ、操作コード、中断時間、ＰＡＤ（Padding）およびＦＣＳ（Frame  Check  Sequence）の各フィールドを有する。各フィールドの詳細については省略する。フレームを送受信する通信装置は、Ｐａｕｓｅフレームの「ＭＡＣ−ＤＡ」フィールドに「01:80:C2:00:00:01」、「Ｌｅｎｇｔｈ／Ｔｙｐｅ」フィールドに「0x8808」、「操作コード」フィールドに「0x0001」、「中断時間」フィールドに「送信の中断時間」を指定し、他の通信装置へ送信することにより、他の通信装置によるフレームの送信を待たせることができる。「中断時間×512ビット時間」が実際の送信中断時間となり、通信装置は、Ｐａｕｓｅフレームを受信した場合、「中断時間×512ビット時間」の間、フレームの送信を停止する。また、本実施の形態の通信装置１は、フレームの伝送路上で障害が発生した場合、障害を検出した他の通信装置から、障害発生に伴う遅延時間の通知を受けることを想定している。障害発生に伴う遅延時間は、例えば、伝送経路を切り替える際の所要時間である。伝送路を切り替えている最中はフレームが転送されずに装置内に滞留し続け、フレーム滞留時間すなわち遅延時間が長くなり、許容遅延時間を超過する可能性がある。障害を検出した他の通信装置が障害発生に伴う遅延時間を通知する方法としては、遅延時間の情報を格納したフレームを送信することが考えられるが通知方法をこれに限定するものではない。障害を検出した他の通信装置が障害発生に伴う遅延時間を通知する場合に、Ｐａｕｓｅフレームまたはこれに相当するフレームを使用してもよい。
【００１４】
＜通常時の動作＞
まず、通常時の動作、すなわち、外部遅延検出部１２が外部遅延時間を検出していない状態での動作について説明する。なお、本実施の形態では、通信装置１の全体動作を説明し、その後、各構成要素の動作についてあらためて説明する。
【００１５】
通常動作中の通信装置１においては、他の通信装置から送信されてきたフレームが許容遅延識別部１０に入力され、許容遅延識別部１０は、フレームを解析し、フレームに格納されている情報に基づいて許容遅延時間を識別し、フレームおよびこのフレームの許容遅延時間を示す情報をバッファ振分部１１に出力する。バッファ振分部１１は、許容遅延識別部１０から受け取ったフレームを、その許容遅延時間に対応するバッファ部１６1、１６2または１６3へ出力する。なお、ここまでの動作は、後述する「外部要因により遅延が発生している場合の動作」と同じである。すなわち、外部遅延検出部１２が外部遅延時間を検出したか否かによらず、許容遅延識別部１０およびバッファ振分部１１は同じ動作を行う。本実施の形態では、許容遅延識別部１０とバッファ振分部１１を別構成としているが、これらを１つにまとめた構成としてもよい。
【００１６】
バッファ部１６1〜１６3において、バッファ書込制御部１６１は、バッファ振分部１１から入力されたフレームをフレームバッファ１６２へ書き込む。通常動作時には、入力されたすべてのフレームがフレームバッファ１６２へ書き込まれる。バッファ読出制御部１６３は、出力制御部１７から読み出し指示を受けると、フレームバッファ１６２からフレームを読み出して出力制御部１７へ出力する。出力制御部１７による読み出し制御では、一般的なＷＦＱ（Weighted  Fair  Queuing）などを用いて許容遅延時間に応じた重みづけを行い、許容遅延時間が短いバッファからの読み出しを優先的に行う。以上が、通常動作時の動作である。
【００１７】
＜外部要因により遅延が発生している場合の動作＞
次に、外部要因により遅延が発生している場合の動作、すなわち、外部遅延検出部１２が外部遅延時間を検出した場合の動作について説明する。なお、許容遅延識別部１０およびバッファ振分部１１の動作は通常時と同様であるため、説明を省略する。
【００１８】
外部遅延検出部１２は、フレームの転送先の通信装置からＰａｕｓｅフレームを受信するなどして外部遅延を検出した場合、外部遅延時間、すなわち、外部要因により発生する遅延時間を遅延管理部１３へ通知する。遅延管理部１３は、外部遅延検出部１２から通知された外部遅延時間と、バッファ部１６1〜１６3の許容遅延時間、すなわち、バッファ部１６1〜１６3に格納されている各フレームの許容遅延時間に応じたバッファ閉塞時間とを算出する。バッファ閉塞時間とは、バッファ部１６1〜１６3へのフレーム書き込みを一時的に停止する期間を示す時間であり、バッファ閉塞時間はバッファ部１６1〜１６3ごとに異なる値となる。バッファ閉塞時間は許容遅延時間が短いフレームを格納するバッファほど長くなる。バッファ閉塞時間は、例えば、「（バッファ閉塞時間）＝（外部遅延時間）−（許容遅延時間）」とすることができるが、バッファ閉塞時間の計算方法をこれに限定するものではない。遅延管理部１３は、バッファ閉塞時間を算出後、算出した各バッファのバッファ閉塞時間をバッファ閉塞制御部１４に通知するとともに、バッファクリア制御部１５に対してバッファクリアを指示する。遅延管理部１３は、バッファ閉塞時間がマイナスの場合、バッファ閉塞制御部１４へのバッファ閉塞時間の通知およびバッファクリア制御部１５へのバッファクリア指示を行わなくてもよい。遅延管理部１３は、各バッファのバッファ閉塞時間のうち、一部のバッファ閉塞時間がマイナスの場合、値がマイナスのバッファ閉塞時間についてはバッファ閉塞制御部１４へのバッファ閉塞時間の通知およびバッファクリア制御部１５へのバッファクリア指示を行わなくてもよい。
【００１９】
バッファ閉塞制御部１４は、遅延管理部１３から各バッファ部のバッファ閉塞時間が通知されると、これを保持し、各バッファ部のバッファ書込制御部１６１に対してフレームの書き込み停止を指示する。バッファ閉塞制御部１４は、通知されてきたバッファ閉塞時間がマイナスの場合、値がマイナスのバッファ閉塞時間に対応するバッファ部のバッファ書込制御部１６１にはフレームの書き込み停止を指示しない。バッファ閉塞制御部１４は、各バッファ部のバッファ書込制御部１６１に対してフレームの書き込み停止を指示した後、保持しているバッファ閉塞時間が経過したか否かを監視する。バッファ閉塞制御部１４は、バッファ閉塞時間の経過を検出すると、バッファ閉塞時間が経過したバッファ部のバッファ書込制御部１６１に対して、フレームバッファ１６２へのフレーム書き込み再開を指示する（書込み停止の解除）。
【００２０】
各バッファ部のバッファ書込制御部１６１は、バッファ閉塞制御部１４からフレームの書き込み停止が指示された場合、書込み停止が解除されるまでの間、バッファ振分部１１から入力されたフレームをフレームバッファ１６２へ書き込まずに廃棄する。
【００２１】
バッファクリア制御部１５は、遅延管理部１３からバッファクリアの指示を受けると、バッファ部１６1〜１６3のフレームバッファ１６２内のフレームを廃棄する。バッファクリア制御部１５は、通知されてきたバッファ閉塞時間がマイナスの場合、値がマイナスのバッファ閉塞時間に対応するバッファ部のフレームバッファ１６２内のフレームを廃棄しない。
【００２２】
本実施の形態では遅延管理部１３がバッファクリア制御部１５に対してバッファクリアを指示することとしたが、外部遅延検出部１２がバッファクリア制御部１５にバッファクリアを指示してもよい。
【００２３】
なお、本実施の形態では、外部遅延検出部１２、遅延管理部１３、バッファ閉塞制御部１４およびバッファクリア制御部１５を別構成としているが、これらの２つ以上を１つにまとめた構成としてもよい。例えば、外部遅延検出部１２と遅延管理部１３を１つにまとめてもよいし、バッファ閉塞制御部１４とバッファクリア制御部１５とを１つにまとめてもよい。一部またはすべてを１つにまとめた構成としてもよい。また、外部遅延検出部１２、遅延管理部１３、バッファ閉塞制御部１４およびバッファクリア制御部１５を１つにまとめるなどしても構わない。
【００２４】
つづいて、通信装置１の各部の動作についてフローチャートを用いて説明する。
【００２５】
図３は、許容遅延識別部１０の動作例を示すフローチャートである。許容遅延識別部１０は、外部からのフレーム入力の有無を監視しており（ステップＳ１１、ステップＳ１１：Ｎｏ）、フレームが入力された場合（ステップＳ１１：Ｙｅｓ）、入力されたフレームの許容遅延時間を識別し、入力されたフレームをその許容遅延時間とともにバッファ振分部１１へ出力する（ステップＳ１２）。ステップＳ１２において、許容遅延識別部１０は、例えば、入力されたフレームのＴｏＳ（Type  of  Service）値、ＣｏＳ（Class  of  Service）値により許容遅延時間を識別する。ＴｏＳ値およびＣｏＳ値はフレームの優先度を示す情報であり、優先度が同じフレームの許容遅延時間は同じとなる。また、優先度が高いフレームの許容遅延時間は優先度が低いフレームの許容遅延時間よりも短くなる。また、フレームの送信元がフレームに許容遅延時間情報を書き込み、この許容遅延時間情報を確認することにより許容遅延識別部１０が許容遅延時間を識別するようにしてもよい。なお、許容遅延時間の識別方法はこれらに限定されない。どのような方法で許容遅延時間を識別してもよい。
【００２６】
図４は、バッファ振分部１１の動作例を示すフローチャートである。バッファ振分部１１は、許容遅延識別部１０からのフレーム入力の有無を継続して監視しており（ステップＳ２１、ステップＳ２１：Ｎｏ）、フレームが入力された場合（ステップＳ２１：Ｙｅｓ）、フレームとともに入力された、入力されたフレームの許容遅延時間を示す情報を確認し、フレームをバッファ部１６1〜１６3のいずれかへ振り分ける（ステップＳ２２）。バッファ振分部１１は、フレームの許容遅延時間とバッファ部１６1〜１６3の対応関係を把握しており、フレームが入力されると、その許容遅延時間と対応付けられているバッファ部１６1〜１６3へフレームを出力する。
【００２７】
図５は、外部遅延検出部１２の動作例を示すフローチャートである。外部遅延検出部１２は、外部遅延発生の有無を継続して監視しており（ステップＳ３１、ステップＳ３１：Ｎｏ）、外部遅延を検出した場合（ステップＳ３１：Ｙｅｓ）、外部遅延時間を遅延管理部１３に通知する（ステップＳ３２）。外部遅延検出部１２は、フレームの転送先の通信装置からＰａｕｓｅフレームを受信した場合、フレームの転送先の通信装置から障害発生を示す情報が格納されたフレームを受信した場合、外部遅延が発生したと判断する。Ｐａｕｓｅフレームを受信した場合、外部遅延検出部１２は、「中断時間」フィールドに格納されている値から外部遅延時間を算出する。具体的には、外部遅延検出部１２は、「中断時間×512ビット時間」を算出し、算出した時間を外部遅延時間とする。フレームの転送先の通信装置から障害発生を示す情報が格納されたフレームを受信し、この受信フレームに転送処理の中断時間の情報が書き込まれている場合、外部遅延検出部１２は、転送処理の中断時間の情報が示している時間を外部遅延時間とする。
【００２８】
図６は、遅延管理部１３の動作例を示すフローチャートである。遅延管理部１３は、外部遅延時間の通知の有無を継続して監視しており（ステップＳ４１、ステップＳ４１：Ｎｏ）、外部遅延検出部１２から外部遅延時間が通知されてきた場合（ステップＳ４１：Ｙｅｓ）、通知されてきた外部遅延時間に基づいて、バッファ部１６1〜１６3のバッファ閉塞時間を個別に算出し、算出したバッファ閉塞時間をバッファ閉塞制御部１４に通知する（ステップＳ４２）。また、遅延管理部１３は、バッファクリア制御部１５にバッファクリアを指示する（ステップＳ４３）。
【００２９】
図７は、バッファ閉塞制御部１４の動作例を示すフローチャートである。バッファ閉塞制御部１４は、バッファ閉塞時間の通知の有無を継続して監視しており（ステップＳ５１、ステップＳ５１：Ｎｏ）、遅延管理部１３からバッファ閉塞時間が通知されてきた場合（ステップＳ５１：Ｙｅｓ）、バッファ部１６1〜１６3の各バッファ書込制御部１６１に対し、フレームバッファ１６２へのフレームの書込み停止を指示する（ステップＳ５２）。
【００３０】
次に、バッファ閉塞制御部１４は、バッファ部１６3であるバッファ＃３のバッファ閉塞時間が経過したか否かを継続して確認し（ステップＳ５３、ステップＳ５３：Ｎｏ）、バッファ閉塞時間が経過した場合（ステップＳ５３：Ｙｅｓ）、バッファ＃３のバッファ書込制御部１６１に書込み再開を指示する（ステップＳ５４）。なお、本実施の形態では、バッファ＃３に格納されるフレームの許容遅延時間が、バッファ＃２，＃１に格納されるフレームの許容遅延時間よりも長い場合を想定している。そのため、バッファ＃３のバッファ閉塞時間はバッファ＃１，＃２のバッファ閉塞時間よりも短い。すなわち、バッファ＃１〜＃３のバッファ閉塞時間の関係は、バッファ＃１のバッファ閉塞時間＞バッファ＃２のバッファ閉塞時間＞バッファ＃３のバッファ閉塞時間、となっており、図７はこれに合わせたフローとしている。
【００３１】
次に、バッファ閉塞制御部１４は、バッファ部１６2であるバッファ＃２のバッファ閉塞時間が経過したか否かを継続して確認し（ステップＳ５５、ステップＳ５５：Ｎｏ）、バッファ閉塞時間が経過した場合（ステップＳ５５：Ｙｅｓ）、バッファ＃２のバッファ書込制御部１６１に書込み再開を指示する（ステップＳ５６）。
【００３２】
次に、バッファ閉塞制御部１４は、バッファ部１６1であるバッファ＃１のバッファ閉塞時間が経過したか否かを継続して確認し（ステップＳ５７、ステップＳ５７：Ｎｏ）、バッファ閉塞時間が経過した場合（ステップＳ５７：Ｙｅｓ）、バッファ＃１のバッファ書込制御部１６１に書込み再開を指示する（ステップＳ５８）。
【００３３】
図８は、バッファクリア制御部１５の動作例を示すフローチャートである。バッファクリア制御部１５は、バッファクリア指示の有無を継続して監視しており（ステップＳ６１、ステップＳ６１：Ｎｏ）、遅延管理部１３からバッファクリアを指示された場合（ステップＳ６１：Ｙｅｓ）、バッファ＃１〜＃３の各々のフレームバッファ１６２に格納されている全てのフレームを廃棄する（ステップＳ６２）。
【００３４】
図９は、バッファ書込制御部１６１の動作例を示すフローチャートである。バッファ書込制御部１６１は、バッファ振分部１１からのフレーム入力の有無を継続して監視しており（ステップＳ７１、ステップＳ７１：Ｎｏ）、フレームが入力された場合（ステップＳ７１：Ｙｅｓ）、書込み停止中か否か、すなわち、フレームバッファ１６２へのフレームの書き込み停止指示をバッファ閉塞制御部１４から受けているか否かを確認する（ステップＳ７２）。書込み停止中ではない場合（ステップＳ７２：Ｎｏ）、バッファ書込制御部１６１は、バッファ振分部１１から入力されたフレームをフレームバッファ１６２に書き込む（ステップＳ７３）。一方、書込み停止中の場合（ステップＳ７２：Ｙｅｓ）、バッファ書込制御部１６１は、バッファ振分部１１から入力されたフレームを廃棄する（ステップＳ７４）。
【００３５】
図１０は、バッファ読出制御部１６３の動作例を示すフローチャートである。バッファ読出制御部１６３は、フレームの読出し指示の有無を継続して監視しており（ステップＳ８１、ステップＳ８１：Ｎｏ）、出力制御部１７から読出し指示を受けた場合（ステップＳ８１：Ｙｅｓ）、フレームバッファ１６２に格納されているフレームを読出して出力制御部１７へ出力する（ステップＳ８２）。
【００３６】
図１１は、出力制御部１７の動作例を示すフローチャートである。出力制御部１７は、フレームの送信タイミングか否かを継続して監視している（ステップＳ９１、ステップＳ９１：Ｎｏ）。出力制御部１７は、バッファ部１６1〜１６3のいずれかからフレームを読出して出力する動作を繰り返す構成とされており、前回読み出したフレームの他の通信装置への出力（転送）が終了すると、フレームの出力タイミングになったと判断する。出力制御部１７は、フレームの送信タイミングである場合（ステップＳ９１：Ｙｅｓ）、フレームの出力が可能か否かを確認する（ステップＳ９２）。出力制御部１７は、例えば、フレーム送信先の他の通信装置からＰａｕｓｅフレームによりフレームを送信しないように指示された期間の場合、フレームの送信が不可能と判断し、そうでなければ送信可能と判断する。フレームの送信が可能ではない場合（ステップＳ９２：Ｎｏ）、出力制御部１７は、ステップＳ９１に戻る。フレームの送信が可能な場合（ステップＳ９２：Ｙｅｓ）、出力制御部１７は、バッファ部１６1〜１６3のいずれかのバッファ読出制御部１６３に対してフレームの読出しを指示する（ステップＳ９３）。出力制御部１７は、上述したように、例えばＷＦＱなどを用いて許容遅延時間に応じた重みづけを行い、許容遅延時間が短いフレームが格納されているバッファ部１６1〜１６3に対して優先的に読出しを指示する。なお、読出しを指示するバッファ部の決定方法をこれに限定するものではない。出力制御部１７は、バッファ読出制御部１６３に対してフレームの読出しを指示した後、バッファ読出制御部１６３からのフレーム入力の有無を規定時間監視する（ステップＳ９４）。出力制御部１７は、フレームの読出しを指示してから規定時間が経過するまでにフレームが入力された場合（ステップＳ９４：Ｙｅｓ）、バッファ読出制御部１６３から受け取ったフレームを他の通信装置に向けて出力する（ステップＳ９５）。出力制御部１７は、フレームの読出しを指示してから規定時間が経過するまでにフレームが入力されなかった場合（ステップＳ９４：Ｎｏ）、ステップＳ９１に戻る。
【００３７】
なお、本実施の形態では、各バッファ部のバッファ書込制御部１６１が、バッファ閉塞時間において、フレームバッファ１６２への書き込みを停止してフレームを廃棄することとしたが、バッファクリア制御部１５が、バッファ閉塞時間の間、フレームバッファ１６２のクリアを実施し続けてもよい。すなわち、バッファ閉塞時間において、バッファ書込制御部１６１は、従来と同様に、バッファ振分部１１から受け取ったフレームをフレームバッファ１６２に書込み、バッファクリア制御部１５が、各バッファ部のフレームバッファ１６２にフレームが書き込まれていないか否かを監視し、フレームが書き込まれている場合にはこれを廃棄するようにしてもよい。
【００３８】
以上のように、本実施の形態の通信装置１において、遅延管理部１３は、外部要因の遅延が発生した場合、外部要因の遅延時間および転送するフレームの許容遅延時間に基づいて、許容遅延時間がそれぞれ異なるフレームが格納される複数のバッファ部１６1〜１６3へのフレーム書き込みを停止するバッファ閉塞時間を計算し、バッファ閉塞制御部１４は、バッファ閉塞時間が経過するまでの間、バッファ部１６1〜１６3のフレームバッファ１６２にフレームを書き込まずに廃棄するよう、バッファ書込制御部１６１を制御することとした。これにより、外部要因の遅延が発生した場合に、許容遅延時間を満たさないフレームをフレームバッファ１６２に入力せずに廃棄するので、フレームバッファ１６２がオーバフローするのを回避し、本来出力可能な後続フレームが廃棄されてしまうのを防止できる。
【００３９】
実施の形態２．
実施の形態１では、外部から入力されたフレームをフレームバッファに書き込まずに廃棄する方法を示した。これに対して、本実施の形態では、フレームバッファに書き込んだ後、読み出し時に廃棄する実施の形態について説明する。
【００４０】
図１２は、実施の形態２の通信装置の構成例を示す図である。実施の形態２の通信装置１ａは、実施の形態１の通信装置１が備えている遅延管理部１３、バッファ部１６1〜１６3および出力制御部１７を遅延管理部１３ａ、バッファ部１６ａ1〜１６ａ3および出力制御部１７ａに置き換えるとともに、バッファ閉塞制御部１４およびバッファクリア制御部１５を削除し、さらに、出力廃棄制御部２０を追加した構成である。
【００４１】
バッファ部１６ａ1〜１６ａ3は、実施の形態１のバッファ部１６1〜１６3が備えているバッファ書込制御部１６１およびバッファ読出制御部１６３をバッファ書込制御部１６１ａおよびバッファ読出制御部１６３ａに置き換えたものである。
【００４２】
本実施の形態では実施の形態１と異なる部分について説明する。
【００４３】
遅延管理部１３ａは、外部遅延検出部１２から通知された外部遅延時間に基づいて、後述する読出し廃棄時間を算出する。出力廃棄制御部２０は、バッファ部１６ａ1〜１６ａ3に対し、フレームの廃棄を指示する。バッファ書込制御部１６１ａは、バッファ振分部１１から入力されたフレームをフレームバッファ１６２に書き込む。バッファ読出制御部１６３ａは、フレームバッファ１６２からフレームを読み出し、廃棄または出力制御部１７ａへ出力する。出力制御部１７ａは、実施の形態１の出力制御部１７と同様に、許容遅延時間に応じた重みづけを行い、許容遅延時間が短いバッファからの読み出しを優先的に行う。
【００４４】
以下、通信装置１ａの動作について説明する。なお、通常時の動作、すなわち、外部遅延検出部１２が外部遅延を検出していない状態の動作は実施の形態１と同様である。そのため、外部遅延検出部１２が外部遅延を検出した場合の動作について説明する。
【００４５】
＜外部要因により遅延が発生している場合の動作＞
外部遅延検出部１２は、外部遅延を検出した場合、外部遅延時間を遅延管理部１３ａへ通知する。遅延管理部１３ａは、外部遅延検出部１２から通知された外部遅延時間と、バッファ部１６ａ1〜１６ａ3の許容遅延時間に応じた読出廃棄時間を算出する。読出廃棄時間とは、フレーム１６ａ1〜１６ａ3において、バッファ読出制御部１６３ａがフレームバッファ１６２からフレームを読出し、出力制御部１７ａへ出力することなく廃棄する期間を示す時間である。読出廃棄時間は、バッファ部１６ａ1〜１６ａ3ごとに異なる値となる。読出廃棄時間は許容遅延時間が短いフレームを格納するバッファほど長くなり、例えば、「（読出廃棄時間）＝（外部遅延時間）−（許容遅延時間）」とすることができるが、読出廃棄時間の計算方法をこれに限定するものではない。遅延管理部１３ａは、読出廃棄時間を算出後、算出した各バッファの読出廃棄時間を出力廃棄制御部２０に通知するとともに、算出した読出廃棄時間のうち、最も長い読出廃棄時間を出力制御部１７ａに通知する。
【００４６】
出力廃棄制御部２０は、遅延管理部１３ａから読出廃棄時間が通知されると、これを管理し、各バッファ部のバッファ読出制御部１６３ａに対してフレームの廃棄を要求する。各バッファ部のバッファ読出制御部１６３ａは、出力廃棄制御部２０からフレームの廃棄要求を受けた場合、フレームの廃棄要求が解除されるまでの間、出力制御部１７ａからフレームの読出し指示を受けると、フレームバッファ１６２に格納されているフレームを読出し、出力制御部１７ａに出力することなく廃棄する。出力廃棄制御部２０は、管理している読出廃棄時間が経過したか否かを監視し、読出廃棄時間の経過を検出すると、読出廃棄時間が経過したバッファ部のバッファ読出制御部１６３ａに対して、フレームバッファ１６２に格納されているフレームの出力制御部１７ａへの出力再開を指示する（フレーム廃棄要求の解除）。
【００４７】
出力制御部１７ａは、読出廃棄時間の通知を遅延管理部１３ａから受けると、通知された読出廃棄時間が経過するまでの間は、フレームの送信タイミングになると、フレームの出力が可能か否かを確認することなく、バッファ部１６ａ1〜１６ａ3のいずれかのバッファ読出制御部１６３ａに対してフレームの読出しを指示する。
【００４８】
つづいて、遅延管理部１３ａ、出力廃棄制御部２０およびバッファ読出制御部１６３ａの動作についてフォローチャートを用いて説明する。
【００４９】
図１３は、遅延管理部１３ａの動作例を示すフローチャートである。図１３のフローチャートは、実施の形態１の遅延管理部１３の動作例を示した図６のフローチャートのステップＳ４２およびＳ４３をステップＳ４４およびＳ４５に置き換えたものに相当する。ステップＳ４４において、遅延管理部１３ａは、外部遅延検出部１２から通知されてきた外部遅延時間に基づいて、バッファ部１６ａ1〜１６ａ3の読出廃棄時間を個別に算出し、算出した読出廃棄時間を出力廃棄制御部２０に通知する。ステップＳ４５において、遅延管理部１３ａは、算出した読出廃棄時間のうち、最も長い読出廃棄時間を出力制御部１７ａに通知する。
【００５０】
図１４は、出力廃棄制御部２０の動作例を示すフローチャートである。出力廃棄制御部２０は、読出廃棄時間の通知の有無を継続して監視しており（ステップＳ１０１、ステップＳ１０１：Ｎｏ）、遅延管理部１３ａから読出廃棄時間が通知されてきた場合（ステップＳ１０１：Ｙｅｓ）、バッファ部１６ａ1〜１６ａ3の各バッファ読出制御部１６３ａに対し、フレームバッファ１６２に格納されているフレームの廃棄を要求する（ステップＳ１０２）。
【００５１】
次に、出力廃棄制御部２０は、バッファ部１６ａ3であるバッファ＃３の読出廃棄時間が経過したか否かを継続して確認し（ステップＳ１０３、ステップＳ１０３：Ｎｏ）、読出廃棄時間が経過した場合（ステップＳ１０３：Ｙｅｓ）、バッファ＃３のバッファ読出制御部１６３ａに読出し再開を指示する（ステップＳ１０４）。なお、バッファ＃３に格納されるフレームの許容遅延時間は、バッファ＃２，＃１に格納されるフレームの許容遅延時間よりも長いため、バッファ＃３の読出廃棄時間はバッファ＃１，＃２の読出廃棄時間よりも短い。バッファ＃１〜＃３の読出廃棄時間の関係は、バッファ＃１の読出廃棄時間＞バッファ＃２の読出廃棄時間＞バッファ＃３の読出廃棄時間、となる。
【００５２】
次に、出力廃棄制御部２０は、バッファ部１６ａ2であるバッファ＃２の読出廃棄時間が経過したか否かを継続して確認し（ステップＳ１０５、ステップＳ１０５：Ｎｏ）、読出廃棄時間が経過した場合（ステップＳ１０５：Ｙｅｓ）、バッファ＃２のバッファ読出制御部１６３ａに読出し再開を指示する（ステップＳ１０６）。
【００５３】
次に、出力廃棄制御部２０は、バッファ部１６ａ1であるバッファ＃１の読出廃棄時間が経過したか否かを継続して確認し（ステップＳ１０７、ステップＳ１０７：Ｎｏ）、読出廃棄時間が経過した場合（ステップＳ１０７：Ｙｅｓ）、バッファ＃１のバッファ読出制御部１６３ａに読出し再開を指示する（ステップＳ１０８）。
【００５４】
図１５は、バッファ読出制御部１６３ａの動作例を示すフローチャートである。実施の形態１のバッファ読出制御部１６３の動作例を示した図１０のフローチャートに対してステップＳ８３およびＳ８４を追加したものに相当する。バッファ読出制御部１６３ａは、出力制御部１７ａから読出し指示を受けた場合（ステップＳ８１：Ｙｅｓ）、廃棄要求中か否か、すなわち、出力廃棄制御部２０からフレームの廃棄が要求されているか否かを確認する（ステップＳ８３）。廃棄要求中ではない場合（ステップＳ８３：Ｎｏ）、バッファ読出制御部１６３ａは、フレームバッファ１６２に格納されているフレームを読出して出力制御部１７ａへ出力する（ステップＳ８２）。一方、廃棄要求中の場合（ステップＳ８３：Ｙｅｓ）、バッファ読出制御部１６３ａは、フレームバッファ１６２に格納されているフレームを読出し、出力制御部１７ａへ出力することなく廃棄する（ステップＳ８４）。
【００５５】
図１６は、出力制御部１７ａの動作例を示すフローチャートである。図１６に示した出力制御部１７ａの動作フローは、実施の形態１の出力制御部１７の動作例を示した図１１のフローチャートに対してステップＳ９６を追加したものである。ステップＳ９６において、出力制御部１７ａは、読出廃棄期間中か否か、すなわち、遅延管理部１３ａから読出廃棄時間が通知され、かつ、通知された読出廃棄時間が経過する前か否かを確認する。出力制御部１７ａは、読出廃棄期間中の場合（ステップＳ９６：Ｙｅｓ）、ステップＳ９３に遷移する。出力制御部１７ａは、読出廃棄期間中ではない場合（ステップＳ９６：Ｎｏ）、ステップＳ９２に遷移する。
【００５６】
以上のように、本実施の形態の通信装置１ａにおいて、遅延管理部１３ａは、外部要因の遅延が発生した場合、外部要因の遅延時間および転送するフレームの許容遅延時間に基づいて、許容遅延時間がそれぞれ異なるフレームが格納される複数のバッファ部１６ａ1〜１６ａ3に格納されているフレームを廃棄する読出廃棄時間を計算し、出力廃棄制御部２０は、読出廃棄時間が経過するまでの間、バッファ部１６ａ1〜１６ａ3のフレームバッファ１６２に格納されているフレームを出力制御部１７ａに出力することなく廃棄するよう、バッファ読出制御部１６３ａを制御することとした。これにより、外部要因の遅延が発生した場合に、許容遅延時間を満たさないフレームがフレームバッファ１６２に格納されても、このフレームを出力することなく廃棄することができる。よって、フレームバッファ１６２がオーバフローするのを回避し、本来出力可能な後続フレームが廃棄されてしまうのを防止できる。
【００５７】
図１７は、実施の形態１の通信装置１の各部および実施の形態２の通信装置１ａの各部を実現するハードウェア構成の一例を示す図である。通信装置１および１ａの各部は、ＣＰＵ（Central  Processing  Unit）、システムＬＳＩ（Large  Scale  Integration）などのプロセッサ１０１と、ＲＡＭ（Random  Access  Memory）、ＲＯＭ（Read  Only  Memory）などで構成されるメモリ１０２と、入出力インタフェース１０３により実現することが可能である。プロセッサ１０１、メモリ１０２および入出力インタフェース１０３はバス１００に接続され、バス１００を介してデータ、制御情報などの受け渡しを相互に行うことが可能である。入出力インタフェース１０３は、通信装置１，１ａが他の通信装置との間でフレームを送受信する際に使用する。メモリ１０２には、各種データ、プログラムなどが格納される。
【００５８】
通信装置１または１ａの許容遅延識別部１０、バッファ振分部１１、外部遅延検出部１２、遅延管理部１３，１３ａ、バッファ閉塞制御部１４、バッファクリア制御部１５、出力制御部１７，１７ａ、出力廃棄制御部２０、バッファ書込制御部１６１，１６１ａおよびバッファ読出制御部１６３，１６３ａは、それぞれに対応するプログラムをプロセッサ１０１が実行することにより実現することができる。なお、複数のプロセッサおよび複数のメモリが連携し、通信装置１および１ａの各部を実現するようにしてもよい。フレームバッファ１６２はメモリ１０２を利用して実現することができる。
【００５９】
以上の実施の形態に示した構成は、本発明の内容の一例を示すものであり、別の公知の技術と組み合わせることも可能であるし、本発明の要旨を逸脱しない範囲で、構成の一部を省略、変更することも可能である。
【符号の説明】
【００６０】
１，１ａ  通信装置、１０  許容遅延識別部、１１  バッファ振分部、１２  外部遅延検出部、１３，１３ａ  遅延管理部、１４  バッファ閉塞制御部、１５  バッファクリア制御部、１６1〜１６3，１６ａ1〜１６ａ3  バッファ部、１７，１７ａ  出力制御部、２０  出力廃棄制御部、１６１，１６１ａ  バッファ書込制御部、１６２  フレームバッファ、１６３，１６３ａ  バッファ読出制御部、１００  バス、１０１  プロセッサ、１０２  メモリ、１０３  入出力インタフェース。
【図１】
0006362564.tif 000002
【図２】
0006362564.tif 000003
【図３】
0006362564.tif 000004
【図４】
0006362564.tif 000005
【図５】
0006362564.tif 000006
【図６】
0006362564.tif 000007
【図７】
0006362564.tif 000008
【図８】
0006362564.tif 000009
【図９】
0006362564.tif 000010
【図１０】
0006362564.tif 000011
【図１１】
0006362564.tif 000012
【図１２】
0006362564.tif 000013
【図１３】
0006362564.tif 000014
【図１４】
0006362564.tif 000015
【図１５】
0006362564.tif 000016
【図１６】
0006362564.tif 000017
【図１７】
0006362564.tif 000018