(57)【要約】【課題】加入者終端装置の省電力効果を減少させることなく、スリープバッファの容量を削減する。【解決手段】スリープ領域のうちフレームの出力許可が最後に与えられたスリープ領域が空であって、かつ、当該出力許可を与えてからの経過時間Ｔｃｕｒｒｅｎｔが予め定めた時間間隔ΔＴを上回わるごとに、フレームの出力許可を与える出力スリープ領域を順次切り替えるステップと、入力されたフレームの宛先加入者終端装置がスリープ中である場合には、スリープバッファ内のスリープ領域のうち、当該加入者終端装置のスリープ期間が満了する時刻に出力許可が与えられる予定のスリープ領域に、当該フレームを蓄積するステップと、入力されたフレームの宛先加入者終端装置がスリープ中でない場合には、アクティブバッファに当該フレームを蓄積するステップとを備える。【選択図】  図１
2014204290.tif 000002
【特許請求の範囲】
【請求項１】
加入者系ポイント・トゥ・マルチポイント型光通信ネットワークにおいて、トラヒック状況に応じてデータ送受信可能なアクティブまたはデータ送受信を停止するスリープのいずれかに動作モードが切り替わる加入者終端装置のうち、スリープ中の加入者終端装置宛のフレームを、局側終端装置内の下りバッファが一時蓄積する際に用いられるバッファ制御方法であって、
前記下りバッファは、スリープ中の加入者終端装置宛のフレームを蓄積するためのスリープ領域を複数具備するスリープバッファと、アクティブな加入者終端装置宛のフレームを蓄積するためのアクティブバッファとを有し、
前記下りバッファが、
前記スリープ領域のうちフレームの出力許可が最後に与えられたスリープ領域が空であって、かつ、当該出力許可を与えてからの経過時間Ｔｃｕｒｒｅｎｔが予め定めた時間間隔ΔＴを上回わるごとに、フレームの出力許可を与える出力スリープ領域を順次切り替えるステップと、
入力されたフレームの宛先加入者終端装置がスリープ中である場合には、前記スリープバッファ内のスリープ領域のうち、当該加入者終端装置のスリープ期間が満了する時刻に出力許可が与えられる予定のスリープ領域に、当該フレームを蓄積するステップと、
入力されたフレームの宛先加入者終端装置がスリープ中でない場合には、前記アクティブバッファに当該フレームを蓄積するステップと
を備えることを特徴とするバッファ制御方法。
【請求項２】
請求項１記載のバッファ制御方法において、
前記スリープバッファは、前記スリープ領域として、１からＮ（Ｎは２以上の整数）までの整数のうちのいずれか１つが固有の番号として予め付与されているＮ個のスリープ領域を有し、
前記下りバッファが、前記経過時間Ｔｃｕｒｒｅｎｔと前記スリープ期間が満了するまでの残り時間Ｔｒｅｍａｉｎ＿ｓｌｅｅｐとの加算値を前記時間間隔ΔＴで除算し、得られた値を下回らない最小の整数に対して、最後に前記出力許可を与えたスリープ領域を示す番号Ｂｃｕｒｒｅｎｔを加算することにより、前記出力許可が与えられる予定のスリープ領域を示す入力スリープ領域番号Ｂｉｎｐｕｔを算出するステップを
さらに備えることを特徴とするバッファ制御方法。
【請求項３】
請求項２記載のバッファ制御方法において、
前記下りバッファが、
前記入力スリープ領域番号Ｂｉｎｐｕｔからなる仮番号Ｂｉｎｐｕｔ＿ｔｍｐがＮ以下の場合には、当該仮番号Ｂｉｎｐｕｔ＿ｔｍｐを前記入力スリープ領域番号Ｂｉｎｐｕｔとし、前記仮番号Ｂｉｎｐｕｔ＿ｔｍｐがＮを上回る場合には、当該仮番号Ｂｉｎｐｕｔ＿ｔｍｐからＮを減算した値を、前記入力スリープ領域番号Ｂｉｎｐｕｔとするステップと、
前記フレームを前記入力スリープ領域に蓄積する際、前記スリープバッファのうち、前記入力スリープ領域番号Ｂｉｎｐｕｔと対応するスリープ領域に当該フレームを蓄積する入力スリープ領域番号算出ステップと
をさらに備えることを特徴とするバッファ制御方法。
【請求項４】
請求項３記載のバッファ制御方法において、
前記入力スリープ領域番号算出ステップは、前記スリープバッファのうち、前記入力スリープ領域番号Ｂｉｎｐｕｔと対応するスリープ領域が満杯である場合には、入力スリープ領域番号Ｂｉｎｐｕｔに１を加算した値を新たな入力スリープ領域番号Ｂｉｎｐｕｔとして算出し、前記入力スリープ領域番号Ｂｉｎｐｕｔと対応するスリープ領域が満杯でない場合には、前記仮番号Ｂｉｎｐｕｔ＿ｔｍｐを当該入力スリープ領域番号Ｂｉｎｐｕｔとするステップを備えることを特徴とするバッファ制御方法。
【請求項５】
請求項２記載のバッファ制御方法において、
前記Ｎは、前記加入者終端装置のスリープ期間長を、前記時間間隔ΔＴで除算して得られる値を下回らない最小の整数に、２を加算して得られる値を少なくとも上回る値からなることを特徴とするバッファ制御方法。
【請求項６】
加入者系ポイント・トゥ・マルチポイント型光通信ネットワークにおいて、トラヒック状況に応じてデータ送受信可能なアクティブまたはデータ送受信を停止するスリープのいずれかに動作モードが切り替わる加入者終端装置のうち、スリープ中の加入者終端装置宛のフレームを、局側終端装置内で一時蓄積する際に用いられるバッファ装置であって、
スリープ中の加入者終端装置宛のフレームを蓄積するためのスリープ領域を複数具備するスリープバッファと、
アクティブな加入者終端装置宛のフレームを蓄積するためのアクティブバッファと、
スリープ中の加入者終端装置の残りスリープ時間の計測、および、当該下りバッファへの蓄積フレームの有無の監視とスリープ中か否かの判定を、加入者終端装置毎に行うスリープ管理部と、
前記スリープ領域のうちフレームの出力許可が最後に与えられたスリープ領域が空であって、かつ、当該出力許可を与えてからの経過時間Ｔｃｕｒｒｅｎｔが予め定めた時間間隔ΔＴを上回わるごとに、フレームの出力許可を与える出力スリープ領域を順次切り替える出力スリープ領域選択部と、
前記スリープバッファのうち前記出力スリープ領域が空の場合には、当該出力スリープ領域からフレームを出力し、前記出力スリープ領域が空でない場合には前記アクティブバッファからフレームを出力する出力制御部と、
前記スリープ管理部で計測された前記残りスリープ時間が０になる時刻に、前記出力スリープ領域選択部が出力許可を与える予定の入力スリープ領域を、加入者終端装置毎に算出する入力スリープ領域選択部と、
入力されたフレームの宛先加入者終端装置がスリープ中である場合には、前記スリープバッファ内のスリープ領域のうち前記入力スリープ領域に当該フレームを蓄積し、入力されたフレームの宛先加入者終端装置がスリープ中でない場合には、前記アクティブバッファに当該フレームを蓄積する蓄積制御部と
を備えることを特徴とするバッファ装置。
【請求項７】
請求項６に記載のバッファ装置において、
フレームの優先度ごとに、前記スリープバッファ、前記アクティブバッファ、前記スリープ管理部、前記出力スリープ領域選択部、前記入力スリープ領域選択部、および前記蓄積制御部をそれぞれ備え、
すべての優先度に共通して、
入力されたフレームの優先度を識別し、得られた優先度に対応する蓄積制御部に当該入力フレームを転送するフレーム振り分け部と、
前記各優先度のうち、前記出力スリープ領域選択部によって出力許可が与えられている出力スリープ領域と前記アクティブバッファとのいずれか一方が空でない優先度であって、かつ、当該優先度が高い出力制御部から順に、フレームの出力許可を与える出力優先制御部と
をさらに備えることを特徴とするバッファ装置。
【請求項８】
請求項７に記載のバッファ装置において、
前記優先度のうち高優先度の前記出力スリープ領域選択部は、前記出力許可を与えてから経過した時間の計測値と前記出力許可を与えているスリープ領域とを、高優先度以外の優先度の前記入力スリープ領域選択部と前記出力スリープ領域選択部にそれぞれ通知し、
前記高優先度以外の優先度の前記出力スリープ領域選択部は、前記出力許可を与えてから経過した時間を計測せず、出力許可を与えているスリープ領域が空で、かつ高優先度において前記出力許可を与えられているスリープ領域と一致しない場合に、出力許可を与えているスリープ領域を切り替える
ことを特徴とするバッファ装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ＰＯＮ（Passive Optical Network）システムにおける加入者側終端装置であるＯＮＵ（Optical Network Unit）のスリープ制御において、スリープ中のＯＮＵへ送信すべき下りフレームを蓄積するために局側終端装置ＯＬＴ（Optical Network Unit）で用いられる、下りバッファ制御技術に関するものである。
【背景技術】
【０００２】
図１５は、一般的なＰＯＮシステムにおけるバッファ構成を示す説明図である。
ＰＯＮシステムは、局側に配置される１台のＯＬＴと加入者側に配置される複数のＯＮＵとが、ＰＯＮインタフェースＰＯＮ−ＩＦ（PON InterFace）を構成する光ファイバと光スプリッタを介して接続された１対多のシステムである。
【０００３】
上位ネットワークからネットワークノードインタフェースＮＮＩ（Network Node Interface）を介してＯＬＴに入力された下りフレームは、ＯＬＴの下りバッファを介して全ＯＮＵへと転送される。各ＯＮＵは、ＯＬＴから転送されたフレームのうち、自宛の下りフレームのみを受信する。受信したフレームは、ＯＮＵが具備する下りバッファに一旦蓄積された後、ユーザネットワークインタフェースＵＮＩ（User Network Interface）を介してユーザネットワークへと転送される。
【０００４】
一方、ユーザネットワークからＵＮＩを介してＯＮＵに入力される上りフレームは、ＯＮＵの上りバッファに蓄積される。ＯＮＵは、蓄積した上りフレームをＯＬＴから指定された時刻に指定された量だけＯＬＴへと転送する。ＯＬＴは受信した上りフレームを上りバッファに一旦蓄積した後、ＮＮＩを介して上位ネットワークへと転送する。
【０００５】
近年、ＰＯＮシステムに省電力化が求められるようになり、特に装置台数が多いＯＮＵの省電力化が求められるようになった。これまでに、ＯＬＴとＯＮＵ間を流通するトラヒックが無い時に当該ＯＮＵを停止（スリープ）することで、ＯＮＵを省電力化するスリープ制御方法が開示されている（非特許文献１）。
【０００６】
当該方法においてＯＬＴは、ＯＮＵ毎にトラヒックを監視し、一定期間上下両方のトラヒックが無いＯＮＵに対して、スリープモードへの移行を許可するスリープフレームを送信する。ＯＮＵは、当該スリープフレームを受信すると、フレームの送受信に関わる機能への給電を停止したスリープモードへと移行する。当該スリープフレームにはスリープ期間が記されており、ＯＮＵは当該スリープ期間の間スリープモードを維持する。
【０００７】
スリープ期間が終了すると、ＯＮＵはフレームの送受信に関わる機能への給電を再開し、データの送受信が可能なアクティブモードへと移行し、データの送受信を再開する。当該スリープ制御において、ＯＮＵがスリープモードの間は、フレームの送受信を行うことができない。このため、スリープモードに移行している（スリープ中の）ＯＮＵ宛のフレームは、スリープ期間が終了するまでの間、ＯＬＴの下りバッファで蓄積する必要がある。
【０００８】
従来、ＯＬＴがスリープ中のＯＮＵ宛の下りフレームを蓄積する方法として、これまでに２つのフレーム蓄積方法が開示されている。
第１の従来技術は、宛先ＯＮＵ別に分けて蓄積する方法である（例えば、非特許文献２など参照）。図１６は、第１の従来技術にかかるＯＬＴの下りバッファ構成例である。
【０００９】
図１６に示すように、第１の従来技術にかかる下りバッファ５０には、主な機能部として、スリープ中でない（アクティブ）ＯＮＵ宛の下りフレームを蓄積するためのアクティブバッファ５１、スリープ中のＯＮＵ宛の下りフレームを蓄積するためのスリープバッファ５２、フレーム蓄積を制御する蓄積制御部５３、フレーム出力を制御する出力制御部５４、および、各ＯＮＵがスリープ中か否かを管理するためのスリープ管理部５５が設けられている。
【００１０】
この際、アクティブバッファ５１は、下りフレームの宛先ＯＮＵとは無関係に、全宛先ＯＮＵで単一の蓄積領域を共用する。一方、スリープバッファ５２は、複数の蓄積領域に分割し、下りフレームの宛先ＯＮＵ毎に１つの当該蓄積領域を割り当てる。従って、分割する蓄積領域数は、ＯＬＴと接続可能なＯＮＵ数に等しい。
【００１１】
また、第２の従来技術は、スリープ中のＯＮＵ宛のフレームを一括して蓄積する方法である（例えば、非特許文献３など参照）。図１７は、第２の従来技術にかかるＯＬＴの下りバッファ構成例である。
図１７に示すように、第２の従来技術にかかる下りバッファ５０には、前述した図１６と同様、主な機能部として、アクティブバッファ５１、スリープバッファ５２、蓄積制御部５３、出力制御部５４、およびスリープ管理部５５が設けられている。
【００１２】
この第２の従来技術にかかるフレーム蓄積方法は、ＯＮＵ毎に蓄積領域を分割せず、スリープ中のＯＮＵ宛の下りフレームを宛先ＯＮＵと無関係にスリープバッファに蓄積する点において、第１の従来技術にかかるフレーム蓄積方法と異なる。
すなわち、第２の従来技術は、スリープバッファに一括して下りフレームを蓄積するために、ＯＬＴは、全ＯＮＵが同時刻にアクティブモードに復帰するように復帰時刻を設定し、各ＯＮＵにスリープフレームを送信する。全ＯＮＵが一斉にアクティブモードに復帰すると、スリープバッファに蓄積された全てのフレームをＯＮＵに送信する。
【先行技術文献】
【非特許文献】
【００１３】
【非特許文献１】R. Kubo et.al.,”Adaptive Power Saving Mechanism for 10 Gigabit Class PON Systems,”IEICE. Trans. Commun., Vol. E93-B, no.2, pp.280-88, Feb. 2010.
【非特許文献２】鵜澤寛之他、”省電力ＰＯＮにおけるＯＬＴのバッファ制御方法の検討”、電子情報通信学会  ソサイエティ大会(Sep,2009)
【非特許文献３】太田憲行他、”アクセスネットワークにおける共有バッファを用いた省電力方法”、電子情報通信学会  ソサイエティ大会(Sep,2009)
【発明の概要】
【発明が解決しようとする課題】
【００１４】
しかしながら、このような第１および第２の従来技術では、いずれにおいても、ＯＮＵの省電力効果を減少させることなく、スリープバッファの容量を削減することがきないという問題点があった。
【００１５】
すなわち、第１の従来技術にかかるフレーム蓄積方法は、ＯＬＴと接続可能な全ＯＮＵ数分の蓄積領域をスリープバッファ内に具備する必要があるため、大容量のスリープバッファが必要になる。例えば、スリープ期間の最大値Ｔｓｌｅｅｐ＿ｍａｘを５０ｍｓ、ＵＮＩのラインレートを１Ｇｂｉｔ／ｓとすると、各蓄積領域に必要な容量は、６．２５ＭＢ（＝Ｔｓｌｅｅｐ＿ｍａｘ×ＵＮＩラインレート）である。従って、ＯＬＴと接続可能なＯＮＵ数が６４の時には、スリープバッファに必要な容量は、４００ＭＢ（＝６．２５ＭＢ×６４）となり、極めて大容量のスリープバッファが必要となる。
【００１６】
一方、第２の従来技術にかかるフレーム蓄積方法は、第１の従来技術と異なり、スリープバッファをＯＮＵ毎に複数の蓄積領域に分割することはせず、単一の蓄積領域にスリープ中の全てのＯＮＵ宛のフレームを蓄積するため、小容量のバッファで済む。例えば、Ｔｓｌｅｅｐ＿ｍａｘを５０ｍｓ、ＮＮＩのラインレートを１０Ｇｂｉｔ／ｓとすると、スリープバッファに必要な容量は６２．５ＭＢ（＝Ｔｓｌｅｅｐ＿ｍａｘ×ＮＮＩラインレート）であり、第１の従来技術と比べて小容量で済む。
しかしながら、第２の従来技術にかかるフレーム蓄積方法では、スリープモードに移行した時刻に関わらず、全てのＯＮＵがアクティブになる時刻を同一にしなければならないため、スリープ時間が減少し、ＯＮＵの省電力効果が減少する。
【００１７】
本発明はこのような課題を解決するためのものであり、加入者終端装置の省電力効果を減少させることなく、スリープバッファの容量を削減することができる、局側終端装置の下りバッファ制御技術を提供することを目的とする。
【課題を解決するための手段】
【００１８】
このような目的を達成するために、本発明にかかるバッファ制御方法は、加入者系ポイント・トゥ・マルチポイント型光通信ネットワークにおいて、トラヒック状況に応じてデータ送受信可能なアクティブまたはデータ送受信を停止するスリープのいずれかに動作モードが切り替わる加入者終端装置のうち、スリープ中の加入者終端装置宛のフレームを、局側終端装置内の下りバッファが一時蓄積する際に用いられるバッファ制御方法であって、前記下りバッファは、スリープ中の加入者終端装置宛のフレームを蓄積するためのスリープ領域を複数具備するスリープバッファと、アクティブな加入者終端装置宛のフレームを蓄積するためのアクティブバッファとを有し、前記下りバッファが、前記スリープ領域のうちフレームの出力許可が最後に与えられたスリープ領域が空であって、かつ、当該出力許可を与えてからの経過時間Ｔｃｕｒｒｅｎｔが予め定めた時間間隔ΔＴを上回わるごとに、フレームの出力許可を与える出力スリープ領域を順次切り替えるステップと、入力されたフレームの宛先加入者終端装置がスリープ中である場合には、前記スリープバッファ内のスリープ領域のうち、当該加入者終端装置のスリープ期間が満了する時刻に出力許可が与えられる予定のスリープ領域に、当該フレームを蓄積するステップと、入力されたフレームの宛先加入者終端装置がスリープ中でない場合には、前記アクティブバッファに当該フレームを蓄積するステップとを備えている。
【００１９】
また、本発明にかかる上記バッファ制御方法の一構成例は、前記スリープバッファが、前記スリープ領域として、１からＮ（Ｎは２以上の整数）までの整数のうちのいずれか１つが固有の番号として予め付与されているＮ個のスリープ領域を有し、前記下りバッファが、前記経過時間Ｔｃｕｒｒｅｎｔと前記スリープ期間が満了するまでの残り時間Ｔｒｅｍａｉｎ＿ｓｌｅｅｐとの加算値を前記時間間隔ΔＴで除算し、得られた値を下回らない最小の整数に対して、最後に前記出力許可を与えたスリープ領域を示す番号Ｂｃｕｒｒｅｎｔを加算することにより、前記出力許可が与えられる予定のスリープ領域を示す入力スリープ領域番号を算出するステップをさらに備えている。
【００２０】
また、本発明にかかる上記バッファ制御方法の一構成例は、前記下りバッファが、前記入力スリープ領域番号Ｂｉｎｐｕｔからなる仮番号Ｂｉｎｐｕｔ＿ｔｍｐがＮ以下の場合には、当該仮番号Ｂｉｎｐｕｔ＿ｔｍｐを前記入力スリープ領域番号Ｂｉｎｐｕｔとし、前記仮番号Ｂｉｎｐｕｔ＿ｔｍｐがＮを上回る場合には、当該仮番号Ｂｉｎｐｕｔ＿ｔｍｐからＮを減算した値を、前記入力スリープ領域番号Ｂｉｎｐｕｔとするステップと、前記フレームを前記入力スリープ領域に蓄積する際、前記スリープバッファのうち、前記入力スリープ領域番号Ｂｉｎｐｕｔと対応するスリープ領域に当該フレームを蓄積する入力スリープ領域番号算出ステップとをさらに備えている。
【００２１】
また、本発明にかかる上記バッファ制御方法の一構成例は、前記入力スリープ領域番号算出ステップは、前記スリープバッファのうち、前記入力スリープ領域番号Ｂｉｎｐｕｔと対応するスリープ領域が満杯である場合には、入力スリープ領域番号Ｂｉｎｐｕｔに１を加算した値を新たな入力スリープ領域番号Ｂｉｎｐｕｔとして算出し、前記入力スリープ領域番号Ｂｉｎｐｕｔと対応するスリープ領域が満杯でない場合には、前記仮番号Ｂｉｎｐｕｔ＿ｔｍｐを当該入力スリープ領域番号Ｂｉｎｐｕｔとするステップを備えている。
【００２２】
また、本発明にかかる上記バッファ制御方法の一構成例は、前記Ｎが、前記加入者終端装置のスリープ期間長を、前記時間間隔ΔＴで除算して得られる値を下回らない最小の整数に、２を加算して得られる値を少なくとも上回る値からなるものである。
【００２３】
また、本発明にかかるバッファ装置は、加入者系ポイント・トゥ・マルチポイント型光通信ネットワークにおいて、トラヒック状況に応じてデータ送受信可能なアクティブまたはデータ送受信を停止するスリープのいずれかに動作モードが切り替わる加入者終端装置のうち、スリープ中の加入者終端装置宛のフレームを、局側終端装置内で一時蓄積する際に用いられるバッファ装置であって、スリープ中の加入者終端装置宛のフレームを蓄積するためのスリープ領域を複数具備するスリープバッファと、アクティブな加入者終端装置宛のフレームを蓄積するためのアクティブバッファと、スリープ中の加入者終端装置の残りスリープ時間の計測、および、当該下りバッファへの蓄積フレームの有無の監視とスリープ中か否かの判定を、加入者終端装置毎に行うスリープ管理部と、前記スリープ領域のうちフレームの出力許可が最後に与えられたスリープ領域が空であって、かつ、当該出力許可を与えてからの経過時間Ｔｃｕｒｒｅｎｔが予め定めた時間間隔ΔＴを上回わるごとに、フレームの出力許可を与える出力スリープ領域を順次切り替える出力スリープ領域選択部と、前記スリープバッファのうち前記出力スリープ領域が空の場合には、当該出力スリープ領域からフレームを出力し、前記出力スリープ領域が空でない場合には前記アクティブバッファからフレームを出力する出力制御部と、前記スリープ管理部で計測された前記残りスリープ時間が０になる時刻に、前記出力スリープ領域選択部が出力許可を与える予定の入力スリープ領域を、加入者終端装置毎に算出する入力スリープ領域選択部と、入力されたフレームの宛先加入者終端装置がスリープ中である場合には、前記スリープバッファ内のスリープ領域のうち前記入力スリープ領域に当該フレームを蓄積し、入力されたフレームの宛先加入者終端装置がスリープ中でない場合には、前記アクティブバッファに当該フレームを蓄積する蓄積制御部とを備えている。
【００２４】
また、本発明にかかるバッファ装置の一構成例は、フレームの優先度ごとに、前記スリープバッファ、前記アクティブバッファ、前記スリープ管理部、前記出力スリープ領域選択部、前記入力スリープ領域選択部、および前記蓄積制御部をそれぞれ備え、すべての優先度に共通して、入力されたフレームの優先度を識別し、得られた優先度に対応する蓄積制御部に当該入力フレームを転送するフレーム振り分け部と、前記各優先度のうち、前記出力スリープ領域選択部によって出力許可が与えられている出力スリープ領域と前記アクティブバッファとのいずれか一方が空でない優先度であって、かつ、当該優先度が高い出力制御部から順に、フレームの出力許可を与える出力優先制御部とをさらに備えている。
【００２５】
また、本発明にかかるバッファ装置の一構成例は、前記優先度のうち高優先度の前記出力スリープ領域選択部は、前記出力許可を与えてから経過した時間の計測値と前記出力許可を与えているスリープ領域とを、高優先度以外の優先度の前記入力スリープ領域選択部と前記出力スリープ領域選択部にそれぞれ通知し、前記高優先度以外の優先度の前記出力スリープ領域選択部は、前記出力許可を与えてから経過した時間を計測せず、出力許可を与えているスリープ領域が空で、かつ高優先度において前記出力許可を与えられているスリープ領域と一致しない場合に、出力許可を与えているスリープ領域を切り替えるようにしたものである。
【発明の効果】
【００２６】
本発明によれば、局側終端装置（ＯＬＴ）のバッファ装置において、加入者終端装置（ＯＮＵ）ごとに、フレーム蓄積領域を用意する必要がないため、スリープバッファの容量を削減することができる。また、スリープバッファの容量を削減するために、各局側終端装置のフレーム蓄積タイミングを同期させる必要がないことから、加入者終端装置の省電力効果を減少させることもない。
【図面の簡単な説明】
【００２７】
【図１】第１の実施の形態にかかる下りバッファの構成を示すブロック図である。
【図２】フレーム出力制御動作を示すフローチャートである。
【図３】フレーム蓄積制御動作を示すフローチャートである。
【図４】出力スリープ領域番号算出動作を示すフローチャートである。
【図５】出力スリープ領域番号の算出過程を示す説明図である。
【図６】入力スリープ領域番号算出動作を示すフローチャートである。
【図７】入力スリープ領域番号の算出過程を示す説明図である。
【図８】入力スリープ領域番号の他の算出過程を示す説明図である。
【図９】第２の実施の形態にかかる下りバッファの構成を示すブロック図である。
【図１０】出力優先度決定動作を示すフローチャートである。
【図１１】他のフレーム出力制御動作を示すフローチャートである。
【図１２】第３の実施の形態にかかる下りバッファの構成を示すブロック図である。
【図１３】優先度２の入力スリープ領域選択動作を示すフローチャートである。
【図１４】優先度２の出力スリープ領域選択動作を示すフローチャートである。
【図１５】一般的なＰＯＮシステムにおけるバッファ構成を示す説明図である。
【図１６】第１の従来技術にかかるＯＬＴの下りバッファ構成例である。
【図１７】第２の従来技術にかかるＯＬＴの下りバッファ構成例である。
【発明を実施するための形態】
【００２８】
次に、本発明の実施の形態について図面を参照して説明する。
［第１の実施の形態］
本発明は、スリープ中のＯＮＵ宛に到着するフレームを、宛先ＯＮＵ別ではなく、スリープ期間満了予定時刻別に蓄積する点に特徴がある。まず、図１を参照して、本発明の第１の実施の形態にかかるＯＬＴの下りバッファ（バッファ装置）１０について説明する。図１は、第１の実施の形態にかかる下りバッファの構成を示すブロック図である。
【００２９】
下りバッファ１０は、ＰＯＮシステムにおける加入者側終端装置であるＯＮＵのスリープ制御において、スリープ中のＯＮＵへ送信すべき下りフレームを蓄積するために局側終端装置ＯＬＴで用いられる。
ＰＯＮシステムなどの加入者系ポイント・トゥ・マルチポイント型光通信ネットワークでは、省電力機能として、ＯＮＵの動作モードを、トラヒック状況に応じてデータ送受信可能なアクティブまたはデータ送受信を停止するスリープのいずれかに切り替えるスリープ制御機能がある。
【００３０】
ＯＬＴは、このようなスリープ中のＯＮＵに対する下りフレームを上位ネットワークから受信した場合、これら下りフレームを一時的に蓄積し、ＯＮＵがスリープからアクティブに切り替わる時刻に、当該下りフレームを送信することになる。
本発明にかかる下りバッファ１０は、このようなＯＬＴで用いられて、ＯＮＵ向けの下りフレームを一時蓄積する機能を有している。
【００３１】
図１に示すように、この下りバッファ１０には、主な機能部として、アクティブバッファ１２、スリープバッファ１１、蓄積制御部１３、出力制御部１４、スリープ管理部１５、入力スリープ領域選択部１６、および出力スリープ領域選択部１７が設けられている。
【００３２】
スリープバッファ１１は、半導体メモリなどの記憶装置からなり、スリープ中のＯＮＵ宛の下りフレームを蓄積するためのスリープ領域を複数（Ｎ個）具備するバッファである。
アクティブバッファ１２は、半導体メモリなどの記憶装置からなり、アクティブなＯＮＵ宛の下りフレームを蓄積するためのバッファである。
【００３３】
蓄積制御部１３は、専用の処理回路からなり、スリープ管理部１５で得られた、入力フレームの宛先となる宛先ＯＮＵの動作状態（スリープ／アクティブ）に応じて、当該フレームをスリープバッファ１１またはアクティブバッファ１２に蓄積する機能と、スリープバッファ１１にフレームを蓄積する際、入力スリープ領域選択部１６で得られた当該宛先ＯＮＵの入力スリープ領域番号Ｂｉｎｐｕｔに基づいて、スリープバッファ１１のスリープ領域のうち、当該ＯＮＵのスリープ期間が満了する時刻にフレームの出力許可が与えられる予定の対象スリープ領域に、当該入力フレームを蓄積する機能とを有している。
【００３４】
出力制御部１４は、専用の処理回路からなり、出力スリープ領域選択部１７で得られた出力スリープ領域番号Ｂｃｕｒｒｅｎｔに基づいて、スリープバッファ１１のうち当該Ｂｃｕｒｒｅｎｔのスリープ領域の空状態を確認し、空状態でなければ当該Ｂｃｕｒｒｅｎｔのスリープ領域からフレームを読み出して出力する機能と、空状態であればアクティブバッファ１２の空状態を確認し、空状態でなければアクティブバッファ１２からフレームを読み出して出力する機能とを有している。
【００３５】
スリープ管理部１５は、当該ＯＬＴの制御部（図示せず）から通知されたスリープ中のＯＮＵとそのスリープ時間に基づいて、ＯＮＵごとに、当該ＯＮＵの動作状態（スリープ／アクティブ）を判定し、当該ＯＮＵがスリープからアクティブに切り替わるまでの残りスリープ時間を計測する機能と、蓄積制御部１３で得られた入力フレームの宛先ＯＮＵと出力制御部１４で得られた出力フレームの宛先ＯＮＵとに基づいて、当該下りバッファ１０におけるフレームの蓄積有無を監視する機能とを有している。
【００３６】
入力スリープ領域選択部１６は、スリープ管理部１５で得られた各ＯＮＵの残りスリープ時間に基づいて、当該残りスリープ時間がゼロになる時刻（スリープからアクティブに切り替わる時刻）に、出力スリープ領域選択部１７が出力スリープ領域番号により出力許可を与える予定のスリープ領域を示す入力スリープ領域番号ＢｉｎｐｕｔをＯＮＵごとに算出する機能を有している。
【００３７】
出力スリープ領域選択部１７は、所定の時間間隔ΔＴごとに出力スリープ領域番号Ｂｃｕｒｒｅｎｔを順に切り替え出力することにより、スリープバッファ１１のうち、いずれか１つのスリープ領域に対して出力許可を与える機能と、最後にＢｃｕｒｒｅｎｔを切り替えてからの切替経過時間Ｔｃｕｒｒｅｎｔを計時する機能と、ＴｃｕｒｒｅｎｔがΔＴ以上となっても、最後に切り替えたＢｃｕｒｒｅｎｔのスリープ領域が空き状態でない場合は、スリープ領域が空き状態となるまでＢｃｕｒｒｅｎｔを切り替えずに維持する機能とを有している。
【００３８】
このように、本実施の形態にかかる下りバッファ１０は、スリープバッファ１１を複数のスリープ領域に分割する点は前述した第１の従来技術（非特許文献２）と同様であるが、当該スリープ領域をＯＮＵ毎に割り当てず、時間軸上に割り当てる点において異なる。
具体的には、下りバッファ１０において、当該スリープ領域の各々に番号を予め付与し、蓄積したフレームの出力を許可するスリープ領域の番号を、後述する時間間隔ΔＴ毎に切り替える。
【００３９】
また、下りバッファ１０において、スリープ中のＯＮＵ宛のフレームを蓄積する際には、当該ＯＮＵの残りスリープ時間が０となる時刻（スリープ中に蓄積したフレームの出力予定時刻）に出力が許可される予定のスリープ領域の番号を後述する方法で算出し、当該算出番号のスリープ領域に当該フレームを蓄積する。
これにより、ＯＮＵがスリープ中の間は、スリープ領域にフレームが蓄積され続け、当該ＯＮＵのスリープ期間が満了する時刻に、当該スリープ領域に出力許可が与えられて当該蓄積フレームが出力されるようになる。
【００４０】
本実施の形態では、スリープ期間が満了する時刻に出力が許可される予定のスリープ領域の番号を算出するのが、入力スリープ領域選択部１６であり、出力を許可するスリープ領域の番号をΔＴ毎に切り替えるのが出力スリープ領域選択部１７である。
なお、本実施の形態における各スリープ領域の容量は、例えば、ＮＮＩのラインレートにΔＴを乗算して得られる値に等しい容量である。
【００４１】
［第１の実施の形態の動作］
次に、本実施の形態にかかる下りバッファ１０のフレーム蓄積制御動作及び出力制御動作について説明する。
【００４２】
［フレーム出力制御動作］
まず、図２および図３を参照して、本実施の形態にかかるフレーム出力制御動作について説明する。図２は、フレーム出力制御動作を示すフローチャートである。
本実施の形態にかかるフレーム出力制御動作は、出力スリープ領域選択部１７および出力制御部１４で実施される。
【００４３】
出力スリープ領域選択部１７は、蓄積フレームの出力を許可するスリープ領域を示す出力スリープ領域番号ＢｃｕｒｒｅｎｔをΔＴ毎に切り替えて、出力制御部１４に通知する。
出力制御部１４は、出力スリープ領域選択部１７からＢｃｕｒｒｅｎｔを取得し（ステップ１００）、スリープバッファ１１から通知された各スリープ領域の空状態に基づき、当該Ｂｃｕｒｒｅｎに対応するスリープ領域が空か否かを確認する（ステップ１０１）。
【００４４】
ここで、当該Ｂｃｕｒｒｅｎに対応するスリープ領域が空でなく、１つ以上のフレームが蓄積されている場合（ステップ１０１：ＮＯ）、出力制御部１４は、当該スリープ領域に蓄積された１つの下りフレームを出力し（ステップ１０２）、ステップ１００へ戻る。
一方、当該Ｂｃｕｒｒｅｎに対応するスリープ領域が空であり、いずれのフレームも蓄積されていない場合（ステップ１０１：ＹＥＳ）、出力制御部１４は、アクティブバッファ１２が空か否かを確認する（ステップ１０３）。
【００４５】
ここで、アクティブバッファ１２も空であり、いずれのフレームも蓄積されていない場合（ステップ１０３：ＹＥＳ）、出力制御部１４は、ステップ１００に戻る。
また、アクティブバッファ１２が空でなく、１つ以上のフレームが蓄積されている場合（ステップ１０３：ＮＯ）、アクティブバッファ１２に蓄積されているフレームを１つ取得し、出力フレームとして出力し（ステップ１０４）、ステップ１００に戻る。
【００４６】
［フレーム蓄積制御動作］
次に、図３を参照して、本実施の形態にかかるフレーム蓄積制御動作について説明する。図３は、フレーム蓄積制御動作を示すフローチャートである。
本実施の形態にかかるフレーム蓄積制御動作は、スリープ管理部１５、入力スリープ領域選択部１６、および蓄積制御部１３で実行される。
【００４７】
まず、スリープ管理部１５は、従来と同様に、当該ＯＬＴの制御部（図示せず）から通知されたスリープ中のＯＮＵとそのスリープ時間に基づいて、ＯＮＵごとに、当該ＯＮＵの動作状態（スリープ／アクティブ）を判定し、当該ＯＮＵがスリープからアクティブに切り替わるまでの残りスリープ時間を計測する。残りスリープ時間は、例えば、当該ＯＬＴからＯＮＵに対してスリープモードへの移行を許可するために送信したスリープフレームに記されたスリープ時間を初期値とし、当該下りバッファ１０の上位装置に相当するＯＬＴ  ＬＳＩ（図示せず）から供給されるクロックのクロックサイクル毎にカウントダウンすることで計測可能である。当該判定結果は蓄積制御部１３に通知され、当該残りスリープ時間は入力スリープ領域選択部１６に通知される。
【００４８】
入力スリープ領域選択部１６は、スリープ管理部１５から通知された残りスリープ時間が０となる時刻（スリープ中に蓄積したフレームの出力予定時刻）に出力が許可される予定のスリープ領域を示す入力スリープ領域番号Ｂｉｎｐｕｔを、ＯＮＵ毎に後述する方法で算出する。
【００４９】
蓄積制御部１３は、下りフレームの入力を待機し（ステップ１１０）、下りフレームが入力された場合（ステップ１１０：ＹＥＳ）、まず、当該下りフレームの宛先ＯＮＵを識別し（ステップ１１１）、当該ＯＮＵがスリープ中か否かをスリープ管理部１５から通知される判定結果から確認する（ステップ１１２）。
【００５０】
ここで、当該ＯＮＵがスリープ中ではなくアクティブの場合（ステップ１１２：ＮＯ）、蓄積制御部１３は、アクティブバッファ１２が満杯か否か、すなわちフレームを蓄積できないか否かを確認し（ステップ１１３）、満杯でない場合には（ステップ１１３：ＮＯ）、アクティブバッファ１２に当該下りフレームを蓄積して（ステップ１１４）、ステップ１１０へ戻り、満杯の場合には（ステップ１１３：ＹＥＳ）、当該下りフレームを廃棄して（ステップ１１５）、ステップ１１０へ戻る。
【００５１】
一方、ステップ１１２において、当該ＯＮＵがスリープ中の場合（ステップ１１２：ＹＥＳ）、蓄積制御部１３は、入力スリープ領域選択部１６から当該ＯＮＵのＢｉｎｐｕｔを取得し（ステップ１１６）、Ｂｉｎｐｕｔに対応するスリープ領域が満杯か否か、すなわちフレームを蓄積できないか否かを確認する（ステップ１１７）。
ここで、Ｂｉｎｐｕｔに対応するスリープ領域が満杯でない場合（ステップ１１７：ＮＯ）、蓄積制御部１３は、蓄積要求によりＢｉｎｐｕｔに対応するスリープ領域に当該下りフレームを蓄積し（ステップ１１８）、満杯である場合には（ステップ１１７：ＹＥＳ）、当該下りフレームを廃棄する（ステップ１１５）。
【００５２】
＜出力スリープ領域選択部＞
次に、図４を参照して、本実施の形態にかかる出力スリープ領域選択部１７について説明する。図４は、出力スリープ領域番号算出動作を示すフローチャートである。
出力スリープ領域選択部１７は、スリープ中ＯＮＵの有無に関わらず、時間間隔ΔＴ毎にフレームの出力を許可する新たな出力スリープ領域番号Ｂｃｕｒｒｅｎｔを算出して切り替え、出力制御部１４へ出力する。また、Ｂｃｕｒｒｅｎｔの切り替えから経過した時間Ｔｃｕｒｒｅｎｔを計時して入力スリープ領域選択部１６に通知する。
【００５３】
下りバッファ１０の動作開始に応じて、出力スリープ領域選択部１７は、Ｔｃｕｒｒｅｎｔの計測を開始し（ステップ１２０）、ＴｃｕｒｒｅｎｔがΔＴに到達するまで、すなわちΔＴだけ経過するまで（ステップ１２１：ＮＯ）、Ｂｃｕｒｒｅｎｔの値を保持する。なお、図４において、Ｂｃｕｒｒｅｎｔの初期値は１、Ｔｃｕｒｒｅｎｔの初期値は０であり、Ｎはスリープ領域数に等しく、Ｂｃｕｒｒｅｎｔの最大値である。Ｔｃｕｒｒｅｎｔの計測は、例えば、ＯＬＴ  ＬＳＩのクロックサイクル毎にカウントアップすることで計測可能である。
【００５４】
ＴｃｕｒｒｅｎｔがΔＴに到達した場合（ステップ１２１：ＹＥＳ）、出力スリープ領域選択部１７は、Ｔｃｕｒｒｅｎｔの計測を停止してＴｃｕｒｒｅｎｔの値を保持し（ステップ１２２）、Ｂｃｕｒｒｅｎｔに対応するスリープ領域が空か否かを確認する（ステップ１２３）。
ここで、Ｂｃｕｒｒｅｎｔに対応するスリープ領域が空でない場合（ステップ１２３：ＮＯ）、出力スリープ領域選択部１７は、空になるまでＢｃｕｒｒｅｎｔおよびＴｃｕｒｒｅｎｔの値を保持する。
【００５５】
一方、Ｂｃｕｒｒｅｎｔに対応するスリープ領域が空である場合（ステップ１２３：ＹＥＳ）、出力スリープ領域選択部１７は、Ｂｃｕｒｒｅｎｔの値がスリープ領域の個数Ｎに達したか否かを確認する（ステップ１２４）。
ここで、Ｂｃｕｒｒｅｎｔの値がＮに達していない場合（ステップ１２４：ＮＯ）、Ｂｃｕｒｒｅｎｔに「１」を加算した値を新しいＢｃｕｒｒｅｎｔとして算出し（ステップ１２５）、Ｔｃｕｒｒｅｎｔを０に初期化した後（ステップ１２７）、ステップ１２０へ戻る。
また、Ｂｃｕｒｒｅｎｔの値がＮに達している場合（ステップ１２４：ＹＥＳ）、Ｂｃｕｒｒｅｎｔの値を１とした後（ステップ１２６）、Ｔｃｕｒｒｅｎｔを「０」に初期化した後（ステップ１２７）、ステップ１２０に戻る。
【００５６】
本実施の形態においては、出力が許可されるスリープ領域の番号が一巡するまでに少なくとも（Ｎ−１）×ΔＴの時間を要する。例えば、出力許可されるスリープ領域の番号が「１」から「２」に切り替わった直後にスリープ領域＃１に蓄積されたフレームが出力されるまでに要する時間は（Ｎ−１）×ΔＴであり、この（Ｎ−１）×ΔＴの間、スリープ領域＃１に当該フレームが蓄積され続ける。
従って、ＯＮＵの最大スリープ時間をＴｓｌｅｅｐ＿ｍａｘとすると、少なくとも（Ｎ−１）×ΔＴをＴｓｌｅｅｐ＿ｍａｘよりも長い時間にすることで、ＯＮＵがスリープ中の間に入力されるフレームをスリープバッファ１１に蓄積し続けることが可能になる。
【００５７】
図５は、出力スリープ領域数を示す説明図である。本実施の形態においては、出力許可されるスリープ領域が一巡するまでに要する時間（Ｎ−１）×ΔＴを、Ｔｓｌｅｅｐ＿ｍａｘよりも長い時間とするために、ＮとΔＴを次の式（１）で与えられる値とする。
【数１】
2014204290.tif 000003
この式（１）において、Ｎは、Ｔｓｌｅｅｐ＿ｍａｘの間に切り替わり得るスリープ領域数ｎに、現在出力が許可されているスリープ領域数「１」と、現在時刻からｎ×ΔＴ後に出力が許可されるスリープ領域数「１」とを加算して得られる値で特定される。
【００５８】
＜入力スリープ領域選択部＞
次に、図６を参照して、本実施の形態にかかる入力スリープ領域選択部１６について説明する。図６は、入力スリープ領域番号算出動作を示すフローチャートである。
入力スリープ領域選択部１６は、残りスリープ時間が０となる時刻に、出力が許可される予定のスリープ領域の番号ＢｉｎｐｕｔをＯＮＵ毎に算出し、蓄積制御部１３に通知する。
【００５９】
入力スリープ領域選択部１６は、まず、全てのスリープ領域が満杯ではないと仮定して、残りスリープ時間が０となる時刻に出力許可が与えられる予定のスリープ領域の番号Ｂｉｎｐｕｔ＿ｔｍｐを算出する（ステップ１３０）。
【００６０】
図７は、入力スリープ領域番号の算出過程を示す説明図である。ここで、Ｔｒｅｍａｉｎｇ＿ｓｌｅｅｐは、当該算出時点（現在時刻）にスリープ管理部１５から通知される残りスリープ時間であり、Ｂｃｕｒｒｅｎｔは、当該算出時点に出力スリープ領域選択部１７から通知される出力許可中のスリープ領域の番号である。
【００６１】
Ｂｉｎｐｕｔ＿ｔｍｐは、次の式（２）で与えられる。
【数２】
2014204290.tif 000004
なお、この式（２）で求めたＢｉｎｐｕｔ＿ｔｍｐを、そのままＢｉｎｐｕｔと見なして、前述した図３のステップ１１６のＢｉｎｐｕｔとして用いてもよい。
【００６２】
残りスリープ時間が０になる時刻は、出力スリープ領域選択部１７がＢｃｕｒｒｅｎｔに対応するスリープ領域に出力を許可してから経過した現在時刻Ｔｃｕｒｒｅｎｔに，  Ｔｒｅｍａｉｎｇ＿ｓｌｅｅｐを加算して得られるＴｃｕｒｒｅｎｔ＋Ｔｒｅｍａｉｎｇ＿ｓｌｅｅｐである。
【００６３】
出力スリープ領域選択部１７において、出力を許可するスリープ領域の番号はΔＴ毎に切り替わるため、Ｔｃｕｒｒｅｎｔ＋Ｔｒｅｍａｉｎｇ＿ｓｌｅｅｐの間にスリープ領域の番号が切り替わり得る回数は、Ｔｃｕｒｒｅｎｔ＋Ｔｒｅｍａｉｎｇ＿ｓｌｅｅｐをΔＴで除算して得られる値に等しい。従って、残りスリープ時間が０になる時刻においてフレーム出力が許可される予定のスリープ領域の番号Ｂｉｎｐｕｔ＿ｔｍｐは、当該除算値（Ｔｃｕｒｒｅｎｔ＋Ｔｒｅｍａｉｎｇ＿ｓｌｅｅｐの間にスリープ領域の番号が切り替わり得る回数）を、Ｂｃｕｒｒｅｎｔに加算した値となる。
【００６４】
次に、入力スリープ領域選択部１６は、算出したＢｉｎｐｕｔ＿ｔｍｐがスリープ領域の最大番号Ｎ以下か否かを確認する（ステップ１３１）。Ｎは、前述した式（１）によって与えられるスリープ領域数と同一の値である。
【００６５】
ここで、Ｂｉｎｐｕｔ＿ｔｍｐがＮ以下の場合（ステップ１３１：ＹＥＳ）、入力スリープ領域選択部１６は、Ｂｉｎｐｕｔ＿ｔｍｐをＢｉｎｐｕｔとし（ステップ１３２）、ステップ１３４へ移行する。
一方、Ｂｉｎｐｕｔ＿ｔｍｐがＮよりも大きい場合（ステップ１３１：ＮＯ）、入力スリープ領域選択部１６は、Ｂｉｎｐｕｔ＿ｔｍｐからＮを減算した値をＢｉｎｐｕｔとした後（ステップ１３３）、ステップ１３４へ移行する。
【００６６】
ステップ１３４においては、入力スリープ領域選択部１６は、Ｂｉｎｐｕｔに対応するスリープ領域が満杯か否かを確認する（ステップ１３４）。
ここで、Ｂｉｎｐｕｔに対応するスリープ領域が満杯であり、フレームの蓄積が不可能である場合（ステップ１３４：ＹＥＳ）、入力スリープ領域選択部１６は、Ｂｉｎｐｕｔに「１」を加算した値を新しいＢｉｎｐｕｔ＿ｔｍｐとし（ステップ１３５）、ステップ１３１に戻る。
【００６７】
一方、Ｂｉｎｐｕｔに対応するスリープ領域が満杯ではなく、フレームの蓄積が可能である場合（ステップ１３４：ＮＯ）、入力スリープ領域選択部１６は、当該スリープ領域にフレームを蓄積可能であることを意味するため、Ｂｉｎｐｕｔ＿ｔｍｐをＢｉｎｐｕｔとし（ステップ１３６）、ステップ１３０に戻る。
【００６８】
なお、本実施の形態において、ＯＬＴの下りバッファ１０が扱うＯＮＵは、ＯＬＴと論理リンクを確立する際に各ＯＮＵに１つ以上割当てられる論理リンク識別子（ＬＬＩＤ：Logical Link ID）としても良い。
【００６９】
また、図８は、入力スリープ領域番号の他の算出過程を示す説明図である。スリープ期間が満了してから一定期間Ｔｏｆｆｓｅｔ経過するまで入力フレームを蓄積するために、式（２）におけるＢｉｎｐｕｔ＿ｔｍｐの算出式を、次の式（３）のように変更しても良い。
【数３】
2014204290.tif 000005
【００７０】
以上が、本実施の形態におけるバッファ制御方法及び装置である。
通常、ＯＬＴから各ＯＮＵに対してフレームを送信する際、ＯＬＴと接続可能な全ＯＮＵに対して、一定の時間間隔ΔＴ内に各ＯＮＵに対して送信可能な最大フレーム数分を、同一時刻に送信するという状況が発生する確率は極めて低い。したがって、本実施の形態のように、スリープ中のＯＮＵ宛に到着するフレームを、スリープバッファ１１において、宛先ＯＮＵ別ではなく、スリープ期間満了予定時刻別に蓄積すれば、各時刻に対応するスリープ領域の記憶容量を削減することができる。このため、前述した第１の従来技術のように、ＯＬＴと接続可能な全ＯＮＵ数分の蓄積領域をスリープバッファ１１内に具する場合と比較して、スリープバッファ１１を構成する半導体メモリの記憶容量やコストを削減することができる。また、スリープ中のＯＮＵを途中で復帰させる必要もないことから、ＯＮＵの省電力効果を減少させることもない。
【００７１】
また、上記のように、ある時刻に送信すべきフレームが集中すると、当該時刻に対応するスリープ領域が満杯となって、これらすべてのフレームを格納できなくなり、フレーム破棄が増大する可能性がある。
これについては、図６に示した入力スリープ領域番号算出動作を実行すれば、スリープ期間満了時刻に出力許可予定のスリープ領域が満杯の場合、その次に出力が許可される予定のスリープ領域にフレームが蓄積されるようになる。このため、特定のスリープ領域にフレームの蓄積先が集中した場合であっても、フレームが廃棄されることを防ぐことができる。
【００７２】
スリープバッファ１１内の全スリープ領域で必要とする記憶容量が、削減される具体例を示す。
ＯＬＴのＮＮＩにおけるデータ転送レートをＳNNIとし、フレームを出力するスリープ領域の切り替え時間間隔をΔＴとした場合、１つのスリープ領域の記憶容量ｍはＳNNI×ΔＴとなる。したがって、スリープ領域の数をＮとした場合、本発明においてスリープバッファ１１内の全スリープ領域として必要とされる記憶容量Ｍは、Ｎ×ｍ＝Ｎ×ＳNNI×ΔＴで求められる。
【００７３】
一方、ＯＮＵのＵＮＩにおけるデータ転送レートをＳUNIとし、ＯＮＵの最大スリープ期間をＴｓｌｅｅｐ＿ｍａｘとした場合、前述した第１の従来技術において１つのＯＮＵに対応する蓄積領域の記憶容量、すなわちＴｓｌｅｅｐ＿ｍａｘの間に蓄積され得る最大データ量ｍ１は、ＳUNI×Ｔｓｌｅｅｐ＿ｍａｘとなる。したがって、ＯＬＴと接続可能なＯＮＵ数をＮONUとした場合、前述した第１の従来技術においてスリープバッファ内の全蓄積領域として必要とされる記憶容量Ｍ１は、ＮONU×ｍ＝ＮONU×ＳUNI×Ｔｓｌｅｅｐ＿ｍａｘで求められる。
【００７４】
したがって、前述した第１の従来技術の記憶容量Ｍ１と比較して、本発明にかかる記憶容量Ｍが削減される条件はＭ＜Ｍ１と表される。
この条件から、Ｎについて、次の式（４）が導出される。
【数４】
2014204290.tif 000006
ここで、現実的なパラメータとして、ＳNNIが１０Ｇｂｉｔ／ｓであり、ＳUNIが１Ｇｂｉｔ／ｓであるとし、また、Ｔｓｌｅｅｐ＿ｍａｘが５０ｍｓであり、ΔＴが１ｍｓであるとすると、Ｎ＜ＮONU×５となる。この際、一般的にはＮONUが６４程度である。このため、実際には、スリープ領域数Ｎとして、ＯＬＴに接続されるＯＮＵの数、あるいは各ＯＮＵに割り当てられる論理リンク識別子（ＬＬＩＤ）の数を下回る数を適用しておけば、スリープバッファ１１内の全スリープ領域で必要とする記憶容量が、削減されることが分かる。
【００７５】
［第２の実施の形態］
次に、図９を参照して、本発明の第２の実施の形態にかかる下りバッファ１０について説明する。図９は、第２の実施の形態にかかる下りバッファの構成を示すブロック図である。
本実施の形態におけるＯＬＴの下りバッファは、当該バッファに蓄積したフレームを完全優先で出力する点が第１の実施の形態と異なる。すなわち、当該バッファは、蓄積したフレームのうち、低遅延が要求される高優先度のフレームを、当該要求が低い低優先度のフレームよりも優先的に出力する。
【００７６】
図９に示すように、本実施の形態におけるＯＬＴの下りバッファ１０は、第１の実施の形態と同様のスリープバッファ１１、アクティブバッファ１２、蓄積制御部１３、出力制御部１４、スリープ管理部１５、入力スリープ領域選択部１６、および出力スリープ領域選択部１７を含む優先バッファ（２０Ａ，２０Ｂ，…）を、優先度毎に具備する。
【００７７】
さらに、本実施の形態にかかる下りバッファ１０は、入力フレームの優先度を識別し、識別した優先度に対応する蓄積制御部１３に当該フレームを転送するフレーム振り分け部２１と、高優先度の出力制御部１４に対して優先的にフレームの出力許可を与える出力優先制御部２２とを新たに備える。
【００７８】
なお、優先度毎に具備する優先バッファ（２０Ａ，２０Ｂ，…）において、出力制御部１４は、出力優先制御部２２から通知される出力許可を受信する機能を新たに備える。また、スリープ管理部１５に入力される情報は、優先度に関わらず第１の実施の形態と同一である。本実施の形態では、高優先度を優先度１（優先バッファ２０Ａ）とし、低優先度を優先度２（優先バッファ２０Ｂ）としている。
以下では、本実施の形態において新たに備えたフレーム振り分け部２１と出力優先制御部２２の詳細を述べた後、本実施の形態における出力制御部１４の出力制御フローを述べる。
【００７９】
＜フレーム振り分け部＞
フレーム振り分け部２１は、ＯＬＴの下りバッファ１０に入力された下りフレームの優先度を識別し、当該優先度に対応する蓄積制御部１３に当該下りフレームを転送する機能を具備する。図９においては、識別した優先度が１の場合には、優先度１（優先バッファ２０Ａ）の蓄積制御部１３にフレームを転送し、識別した優先度が２の場合には、優先度２（優先バッファ２０Ｂ）の蓄積制御部１３にフレームを転送する。優先度の識別は、例えば、フレームに付与されているＶＬＡＮタグのＣｏＳ値によって判別できる。
【００８０】
＜出力優先制御部＞
次に、図１０を参照して、本実施の形態にかかる出力優先制御部２２について説明する。図１０は、出力優先度決定動作を示すフローチャートである。この出力優先度決定動作は、優先度の高い優先度１の出力制御部１４に対して優先的に出力許可を与えるための処理動作である。
【００８１】
出力優先制御部２２は、まず、優先度１（優先バッファ２０Ａ）の出力制御部１４において、アクティブバッファ１２とスリープバッファ１１のうち出力が許可されている出力スリープ領域との両方が空か否かを確認する（ステップ２００）。
ここで、優先度１のアクティブバッファ１２と各出力スリープ領域のうち、いずれか一方でも空でない場合（ステップ２００：ＮＯ）、出力優先制御部２２は、両方が空になるまでの間、優先度１の出力制御部１４にフレーム出力を許可する（ステップ２０１）。
【００８２】
一方、アクティブバッファ１２と出力スリープ領域の両方が空である場合（ステップ２００：ＮＯ）、出力優先制御部２２は、優先度２（優先バッファ２０Ｂ）の出力制御部１４において、アクティブバッファ１２と出力が許可されているスリープ領域の両方が空か否かを確認する（ステップ２０２）。
ここで、優先度２が空でない場合（ステップ２０２：ＮＯ）、１フレームのみ当該優先度２の出力制御部１４にフレームの出力を許可して（ステップ２０３）、ステップ２００に戻り、優先度２が空の場合（ステップ２０２：ＹＥＳ）、ステップ２００に戻る。
【００８３】
＜出力制御部＞
次に、図１１を参照して、本実施の形態にかかる出力制御部１４について説明する。図１１は、他の出力制御動作を示すフローチャートである。
まず、出力制御部１４は、出力優先制御部２２からフレーム出力が許可されているか否かを確認する（ステップ２１０）。
ここで、フレーム出力が許可されていない場合（ステップ２１０：ＮＯ）、出力制御部１４は、許可されるまで待機する。
【００８４】
一方、フレーム出力が許可されている場合（ステップ２１０：ＹＥＳ）、出力制御部１４は、出力スリープ領域選択部１７から通知された出力スリープ領域番号Ｂｃｕｒｒｅｎｔを取得し（ステップ２１１）、このＢｃｕｒｒｅｎｔのスリープ領域が空か否かを確認する（ステップ２１２）。
ここで、Ｂｃｕｒｒｅｎｔのスリープ領域が空でない場合（ステップ２１２：ＮＯ）、出力制御部１４は、当該スリープ領域に蓄積された１つの下りフレームを出力する（ステップ２１３）。
【００８５】
また、Ｂｃｕｒｒｅｎｔのスリープ領域が空である場合（ステップ２１２：ＹＥＳ）、出力制御部１４は、アクティブバッファ１２が空か否かを確認する（ステップ２１４）。
ここで、アクティブバッファ１２が空でない場合（ステップ２１４：ＮＯ）、出力制御部１４は、アクティブバッファ１２に蓄積された１つの下りフレームを出力し（ステップ２１５）、当該出力の完了に応じて、ステップ２１０に戻り、アクティブバッファ１２が空である場合（ステップ２１４：ＹＥＳ）、ステップ２１０に戻る。
【００８６】
以上が、本実施の形態におけるバッファ制御方法及び装置である。本実施の形態は、優先度を２つとしたが、これに限定されるものではなく、２つ以上の優先度に対してもその要旨を逸脱しない範囲において変更し、適用可能である。また、本発明において、ＯＬＴの下りバッファが扱うＯＮＵは、ＯＬＴと論理リンクを確立する際に各ＯＮＵに１つ以上割当てられるＬＬＩＤとしても良い。
【００８７】
［第３の実施の形態］
次に、図１２を参照して、本発明の第３の実施の形態にかかる下りバッファ１０について説明する。図１２は、第３の実施の形態にかかる下りバッファの構成を示すブロック図である。
本実施の形態におけるＯＬＴの下りバッファは、完全優先で蓄積フレームを出力する点において第２の実施の形態と同一であるが、当該出力制御を全優先度共通の時刻に基づいて行う点が異なる。すなわち、高優先度（優先度１）のみが時刻Ｔｃｕｒｒｅｎｔの計測を行い、その他の優先度（優先度２）ではＴｃｕｒｒｅｎｔの計測を行わず、高優先度のＴｃｕｒｒｅｎｔを用いる。
【００８８】
図１２に示すように、本実施の形態にかかる下りバッファ１０において、優先度１（優先バッファ２０Ａ）の出力スリープ領域選択部１７が、ＴｃｕｒｒｅｎｔとＢｃｕｒｒｅｎｔ（以後Ｔｃｕｒｒｅｎｔ，１、Ｂｃｕｒｒｅｎｔ，１と各々呼称）を優先度２（優先バッファ２０Ｂ）の入力スリープ領域選択部１６に通知する。優先度２では、通知されたＴｃｕｒｒｅｎｔ，１を用いて入力スリープ領域選択部１６が当該優先度のＢｉｎｐｕｔを算出する。
【００８９】
また、優先度２（優先バッファ２０Ｂ）の出力スリープ領域選択部１７は、Ｔｃｕｒｒｅｎｔの計測無しでＢｃｕｒｒｅｎｔ（以後Ｂｃｕｒｒｅｎｔ，２と呼称）を決定するために、優先度１（優先バッファ２０Ａ）の出力スリープ領域選択部１７からＢｃｕｒｒｅｎｔ，１を受信し、Ｂｃｕｒｒｅｎｔ，１に一致するまでＢｃｕｒｒｅｎｔ，２に＋１ずつインクリメントする。ただし、当該インクリメントは、Ｂｃｕｒｒｅｎｔ，２に対応するスリープ領域番号が空になってからである。
【００９０】
＜優先度２の入力スリープ領域選択部＞
次に、図１３を参照して、本実施の形態にかかる優先度２の入力スリープ領域選択部１６について説明する。図１３は、優先度２の入力スリープ領域選択動作を示すフローチャートである。
優先度２の入力スリープ領域選択部１６は、優先度１の出力スリープ領域選択部１７からＴｃｕｒｒｅｎｔ，１を受信し、受信したＴｃｕｒｒｅｎｔ，１を用いて優先度２のＢｉｎｐｕｔ（以後Ｂｉｎｐｕｔ，２と呼称）をＯＮＵ毎に算出する機能を具備する。算出したＢｉｎｐｕｔ，２は第２の実施の形態と同様に、優先度２の蓄積制御部１３に通知する。
【００９１】
図１３において、まず、優先度２の入力スリープ領域選択部１６は、全てのスリープ領域が満杯ではないと仮定して、残りスリープ時間が０となる時刻に出力許可が与えられる予定のスリープ領域の番号Ｂｉｎｐｕｔ＿ｔｍｐ，２を算出する（ステップ３００）。この際、Ｂｉｎｐｕｔ＿ｔｍｐ，２は、次の式（５）で与えられる。
【数５】
2014204290.tif 000007
ここで、Ｂｃｕｒｒｅｎｔ，２は、優先度２の出力スリープ領域選択部１７から通知される出力スリープ領域番号である。
【００９２】
次に、優先度２の入力スリープ領域選択部１６は、算出したＢｉｎｐｕｔ＿ｔｍｐ，２がＮ（スリープ領域数）以下か否かを確認する（ステップ３０１）。
ここで、Ｂｉｎｐｕｔ＿ｔｍｐ，２がＮ以下の場合（ステップ３０１：ＹＥＳ）、優先度２の入力スリープ領域選択部１６は、Ｂｉｎｐｕｔ＿ｔｍｐ，２をＢｉｎｐｕｔ，２としてステップ３０４に移行する。
一方、Ｂｉｎｐｕｔ＿ｔｍｐ，２がＮよりも大きい場合（ステップ３０１：ＮＯ）、優先度２の入力スリープ領域選択部１６は、Ｂｉｎｐｕｔ＿ｔｍｐ，２からＮを減算した値をＢｉｎｐｕｔ，２とした後（ステップ３０３）、ステップ３０４に進む。
【００９３】
ステップ３０４において、優先度２の入力スリープ領域選択部１６は、Ｂｉｎｐｕｔ，２に対応するスリープ領域が満杯か否かを確認する（ステップ３０４）。
ここで、満杯である場合（ステップ３０４：ＹＥＳ）、優先度２の入力スリープ領域選択部１６は、Ｂｉｎｐｕｔ，２に「１」を加算した値を新しいＢｉｎｐｕｔ＿ｔｍｐ，２とした後（ステップ３０５）、ステップ３０１に戻る。
一方、満杯でない場合（ステップ３０４：ＮＯ）、優先度２の入力スリープ領域選択部１６は、当該スリープ領域にフレームを蓄積可能であることを意味するため、Ｂｉｎｐｕｔ，２の値を保持した後（ステップ３０６）、ステップ３００に戻る。
【００９４】
＜優先度２の出力スリープ領域選択部＞
次に、図１４を参照して、本実施の形態にかかる優先度２の出力スリープ領域選択部１７について説明する。図１４は、優先度２の出力スリープ領域選択動作を示すフローチャートである。
優先度２の出力スリープ領域選択部１７は、第１の実施の形態における出力スリープ領域選択部１７とは異なり、時刻Ｔｃｕｒｒｅｎｔの計測は行わず、第１の実施の形態の出力スリープ領域選択部１７と同一の機能を具備する優先度１の出力スリープ領域選択部１７からＢｃｕｒｒｅｎｔ，１を受信し、Ｂｃｕｒｒｅｎｔ，１を用いてＢｃｕｒｒｅｎｔ，２を決定する機能を具備する。
【００９５】
図１４において、まず、優先度２の出力スリープ領域選択部１７は、Ｂｃｕｒｒｅｎｔ，２に対応するスリープ領域番号が空か否かを確認する（ステップ３１０）。なお、Ｂｃｕｒｒｅｎｔ，２の初期値はＢｃｕｒｒｅｎｔ，１と同一の「１」である。
ここで、Ｂｃｕｒｒｅｎｔ，２に対応するスリープ領域番号が空でない場合（ステップ３１０：ＮＯ）、Ｂｃｕｒｒｅｎｔ，２の値を保持する。
【００９６】
一方、Ｂｃｕｒｒｅｎｔ，２に対応するスリープ領域番号が空である場合（ステップ３１０：ＹＥＳ）、優先度２の出力スリープ領域選択部１７は、Ｂｃｕｒｒｅｎｔ，１の値を確認する（ステップ３１１）。
ここで、Ｂｃｕｒｒｅｎｔ，２がＢｃｕｒｒｅｎ，１と同一の値である場合（ステップ３１１：ＹＥＳ）、優先度２の出力スリープ領域選択部１７は、Ｂｃｕｒｒｅｎｔ，２の値を保持するためにステップ３１１に戻る。
【００９７】
また、Ｂｃｕｒｒｅｎｔ，２がＢｃｕｒｒｅｎ，１と同一の値でない場合（ステップ３１１：ＮＯ）、優先度２の出力スリープ領域選択部１７は、Ｂｃｕｒｒｅｎｔ，２が前述した式（１）で与えられるスリープ領域数Ｎに等しいか否かを確認する（ステップ３１２）。
ここで、Ｂｃｕｒｒｅｎｔ，２がＮに等しくない場合（ステップ３１２：ＮＯ）、優先度２の出力スリープ領域選択部１７は、Ｂｃｕｒｒｅｎｔ，２に「１」を加算した値を新しいＢｃｕｒｒｅｎｔ，２にし（ステップ３１３）、ステップ３１０に戻る。一方、Ｂｃｕｒｒｅｎｔ，２がＮに等しい場合（ステップ３１２：ＹＥＳ）、優先度２の出力スリープ領域選択部１７は、Ｂｃｕｒｒｅｎｔ，２の値を「１」に更新し（ステップ３１４）、ステップ３１０に戻る。
【００９８】
以上が、本実施の形態におけるバッファ制御方法及び装置である。本実施の形態は、優先度が２つの場合に限定されるものではなく、２つ以上の優先度に対してもその要旨を逸脱しない範囲において変更し、適用可能である。また、本発明において、ＯＬＴの下りバッファが扱うＯＮＵは、ＯＬＴと論理リンクを確立する際に各ＯＮＵに１つ以上割当てられるＬＬＩＤとしても良い。
【００９９】
［実施の形態の拡張］
以上、実施形態を参照して本発明を説明したが、本発明は上記実施形態に限定されるものではない。本発明の構成や詳細には、本発明のスコープ内で当業者が理解しうる様々な変更をすることができる。また、各実施形態については、矛盾しない範囲で任意に組み合わせて実施することができる。
【符号の説明】
【０１００】
１０…下りバッファ、１１…スリープバッファ、１２…アクティブバッファ、１３…蓄積制御部、１４…出力制御部、１５…スリープ管理部、１６…入力スリープ領域選択部、１７…出力スリープ領域選択部、２０Ａ…優先バッファ（優先度１）、２０Ｂ…優先バッファ（優先度２）、２１…フレーム振り分け部、２２…出力優先制御部。
【図１】
2014204290.tif 000008
【図２】
2014204290.tif 000009
【図３】
2014204290.tif 000010
【図４】
2014204290.tif 000011
【図５】
2014204290.tif 000012
【図６】
2014204290.tif 000013
【図７】
2014204290.tif 000014
【図８】
2014204290.tif 000015
【図９】
2014204290.tif 000016
【図１０】
2014204290.tif 000017
【図１１】
2014204290.tif 000018
【図１２】
2014204290.tif 000019
【図１３】
2014204290.tif 000020
【図１４】
2014204290.tif 000021
【図１５】
2014204290.tif 000022
【図１６】
2014204290.tif 000023
【図１７】
2014204290.tif 000024