(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2023028714
(43)【公開日】2023-03-03
(54)【発明の名称】バッファ割り当て装置、加入者線端局装置、バッファ割り当て方法及びプログラム
(51)【国際特許分類】
H04L 12/28 20060101AFI20230224BHJP
H04B 10/272 20130101ALN20230224BHJP
【FI】
H04L12/28 200D
H04B10/272
【審査請求】未請求
【請求項の数】8
【出願形態】OL
(21)【出願番号】P 2021134586
(22)【出願日】2021-08-20
(71)【出願人】
【識別番号】000004226
【氏名又は名称】日本電信電話株式会社
(71)【出願人】
【識別番号】000000295
【氏名又は名称】沖電気工業株式会社
(74)【代理人】
【識別番号】110001634
【氏名又は名称】弁理士法人志賀国際特許事務所
(72)【発明者】
【氏名】喜多 亮太
(72)【発明者】
【氏名】吉田 智暁
(72)【発明者】
【氏名】嶌津 聡志
(72)【発明者】
【氏名】田代 隆義
(72)【発明者】
【氏名】関口 真良
(72)【発明者】
【氏名】久野 隆治
(72)【発明者】
【氏名】古沢 聡
(72)【発明者】
【氏名】岡田 憲彦
(72)【発明者】
【氏名】丸山 兼司
(72)【発明者】
【氏名】福井 洋則
【テーマコード(参考)】
5K033
5K102
【Fターム(参考)】
5K033AA02
5K033CA12
5K033CB17
5K033DA15
5K033DB13
5K033DB22
5K102AA11
5K102AD11
5K102AL08
5K102AM03
5K102AM06
5K102PH49
5K102RD28
(57)【要約】
【課題】送信データをバッファリングする機器をより低いコストで実装すること。
【解決手段】バッファ割り当て装置は、複数のキューに対する要求バッファ量を取得する取得部と、要求バッファ量を第1の記憶部で生じうる最も低いデータ収容効率に基づいて第1最低換算バッファ量にそれぞれ換算し、最も優先度の低いキューに対して、第1最低換算バッファ量と動的帯域割当の1周期当たりに最低限必要なバッファ量とに基づいて算出されるバッファ量を割り当て、最も優先度の低いキュー以外のキューに対して第1最低換算バッファ量を割り当て、第1の記憶部の合計容量と前記第1最低換算バッファ量とに基づいて、オーバーサブスクリプションが発生しうるか否かをキューごとに判定し、オーバーサブスクリプションが発生すると判定されたキューについて第2の記憶部のキューに所定のバッファ量を割り当てる設定部とを備える。
【選択図】
図2
【特許請求の範囲】
【請求項1】
複数のキューの各々に対する要求バッファ量を示す情報を取得する取得部と、
前記キューごとの前記要求バッファ量を第1の記憶部で生じうる最も低いデータ収容効率に基づいて第1最低換算バッファ量にそれぞれ換算し、前記第1の記憶部の最も優先度の低い前記キューに対して、前記第1最低換算バッファ量と動的帯域割当機能の1周期当たりに最低限必要なバッファ量とに基づいて算出されるバッファ量を割り当て、前記第1の記憶部の最も優先度の低い前記キュー以外のキューに対して前記第1最低換算バッファ量を割り当て、前記第1の記憶部の合計容量と前記第1の記憶部の前記キューごとの前記第1最低換算バッファ量とに基づいて、オーバーサブスクリプションが発生しうるか否かを前記キューごとに判定し、前記オーバーサブスクリプションが発生すると判定された前記キューについて第2の記憶部の前記キューに所定のバッファ量を割り当てる設定部と、
を備えるバッファ割り当て装置。
【請求項2】
前記設定部は、前記第1の記憶部の特定のキュー以外のキューに割り当てられたバッファ量の合計が前記第1の記憶部の合計容量より多い場合に、前記第1の記憶部の特定のキューにおいて前記オーバーサブスクリプションが発生しうると判定する
請求項1に記載のバッファ割り当て装置。
【請求項3】
前記設定部は、前記第1最低換算バッファ量と前記動的帯域割当機能の1周期当たりに最低限必要なバッファ量を示す必要バッファ量とを比較し、前記第1最低換算バッファ量が前記必要バッファ量より多い場合には前記第1の記憶部の最も優先度の低い前記キューに対して前記必要バッファ量を割り当て、前記第1最低換算バッファ量が前記必要バッファ量以下である場合には前記第1の記憶部の最も優先度の低い前記キューに対して前記第1最低換算バッファ量を割り当てる
請求項1又は2に記載のバッファ割り当て装置。
【請求項4】
前記設定部は、前記第1の記憶部に設定されなかった分のバッファ量を前記第2の記憶部で生じうる最も低いデータ収容効率に基づいて第2最低換算バッファ量に換算し、前記第2の記憶部の最も優先度の低い前記キューに対して前記第2最低換算バッファ量を割り当てる
請求項1から3のうちいずれか一項に記載のバッファ割り当て装置。
【請求項5】
前記設定部は、前記第2の記憶部で生じうる最も低いデータ収容効率に基づいて算出される前記所定のバッファ量を割り当てる
請求項1から4のうちいずれか一項に記載のバッファ割り当て装置。
【請求項6】
複数の上り送信キューの各々に対する要求バッファ量を示す情報を取得する取得部と、
前記上り送信キューごとの前記要求バッファ量を内蔵バッファで生じうる最も低いデータ収容効率に基づいて第1最低換算データ長にそれぞれ換算し、前記内蔵バッファの最も優先度の低い前記上り送信キューに対して、前記第1最低換算データ長と動的帯域割当機能の1周期当たりに最低限必要なバッファ量とに基づいて算出されるバッファ量を割り当て、前記内蔵バッファの最も優先度の低い前記上り送信キュー以外の上り送信キューに対して前記第1最低換算データ長を割り当て、前記内蔵バッファの合計容量と前記内蔵バッファの前記上り送信キューごとの前記第1最低換算データ長とに基づいて、オーバーサブスクリプションが発生しうるか否かを前記上り送信キューごとに判定し、前記オーバーサブスクリプションが発生すると判定された前記上り送信キューについて外付けバッファの前記上り送信キューに所定のバッファ量を割り当てる設定部と、
を備える加入者線端局装置。
【請求項7】
複数のキューの各々に対する要求バッファ量を示す情報を取得する取得ステップと、
前記キューごとの前記要求バッファ量を第1の記憶部で生じうる最も低いデータ収容効率に基づいて第1最低換算バッファ量にそれぞれ換算し、前記第1の記憶部の最も優先度の低い前記キューに対して、前記第1最低換算バッファ量と動的帯域割当機能の1周期当たりに最低限必要なバッファ量とに基づいて算出されるバッファ量を割り当て、前記第1の記憶部の最も優先度の低い前記キュー以外のキューに対して前記第1最低換算バッファ量を割り当て、前記第1の記憶部の合計容量と前記第1の記憶部の前記キューごとの前記第1最低換算バッファ量とに基づいて、オーバーサブスクリプションが発生しうるか否かを前記キューごとに判定し、前記オーバーサブスクリプションが発生すると判定された前記キューについて第2の記憶部の前記キューに所定のバッファ量を割り当てる設定ステップと、
を有するバッファ割り当て方法。
【請求項8】
請求項1から5のうちいずれか一項に記載のバッファ割り当て装置としてコンピュータを機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、バッファ割り当て装置、加入者線端局装置、バッファ割り当て方法及びプログラムに関する。
【背景技術】
【0002】
アクセスサービスの高速化に対するニーズの高まりに応じて、FTTH(Fiber To The Home)が世界的に普及している。日本で主力となるFTTHサービスとして、例えば、ギガビット級の伝送速度を実現するGE-PON(Gigabit Ethernet PON)、及び10G-EPON(10Gigabit Ethernet PON)等がある。
【0003】
GE-PON及び10G-EPONでは、ONUからOLTへの方向の上り通信においては、TDMA(Time Division Multiple Access;時分割多元接続)技術が用いられる。また、GE-PON及び10G-EPONをシステムとして動作させるために必要な機能の1つとしてDBA(Dynamic Bandwidth Allocation;動的帯域割当)機能がある。DBA機能は、上り通信における帯域を、トラヒック量に応じて動的に割り当てる帯域制御機能である。DBA機能は、各ONUに流れる上り通信のトラヒックの状況に応じて、割り当てる帯域を適切に切り替えることで、未使用帯域を発生させることなく、効率的な上り帯域を実現する。
【0004】
DBA機能では、各ONUは、上り送信バッファに蓄積されている送信待ちの上りデータのデータ量を、REPORTフレームによってOLTに伝える。一方、OLTは、受信したREPORTフレームに基づいて、それぞれのONUが時間的に衝突することなく上りデータを送信することができるように、上りデータの送信開始時刻及び送信許可量をGATEフレームによって各ONUへ指示する。各ONUは、GATEフレームによって指示された送信開始時刻に、送信許可量に基づいて上りデータの送信を行う。このように、GATEフレームとREPORTフレームとを用いたやりとりによって、DBA機能が実現される。
【先行技術文献】
【非特許文献】
【0005】
【非特許文献1】“技術基礎講座[GE-PON技術]第4回.GE-PONのシステム化機能”,NTT技術ジャーナル,pp.59-61,2005年11月
【発明の概要】
【発明が解決しようとする課題】
【0006】
ところで、1ユーザに複数のサービスを提供する場合、例えばVoIP(Voice over Internet Protocol)及び映像配信等の品質保証型の通信が多重する場合のサービス品質を確保するためには、優先制御機能が必要となる(非特許文献1参照)。優先制御機能により重要度の高いデータから優先的に送信することが可能になり、低優先のデータ(インターネットサービス)と高優先のデータ(VoIP及び映像配信等)とが同時に入力されたとしても、高優先サービスの品質を確保することが可能になる。
【0007】
一般的に、ONUは、上りデータの送信の優先制御を行う。ONUは、上りデータの送信タイミングを制御するため、大量のバッファを必要とする。そのため、ONUは、内部のPONチップに、上りデータを一時蓄積しておくための上り送信バッファ(以下、「内蔵バッファ」という。)を搭載している。また、この内蔵バッファは、複数の上り送信キューを備えている。なお、ここでいうPONチップとは、コスト低減のためにONUの主要機能がLSI(Large Scale Integration)化されたものである。
【0008】
但し、それでもPONチップに搭載された内蔵バッファだけでは、バッファ量が足りなくなる場合がある。この場合、例えばDDR SDRAM(Double-Data-Rate Synchronous Dynamic Random Access Memory)等の外付けの上り送信バッファ(以下、「外付けバッファ」という。)を追加して、2段バッファ構成とする必要がある。なお、この外付けバッファにも、複数の上り送信キューが備えられるように構成される。そして、内蔵バッファの各上り送信キューと外付けバッファの各上り送信キューとが、互いに一対一で対応付けられている。2段バッファ構成により、内蔵バッファに空きがない状態であっても、外付けバッファにバッファリングがなされるため、バッファオーバーフローの発生等を防止することができる。
【0009】
しかしながら、従来、このような2段バッファにおいて、それぞれのバッファに対して必要十分なバッファ量を設定するための設定方法が明確に示されていなかった。そのため、設定されたバッファ量の全てを内蔵バッファに割り当てられない状態となること(以下、「オーバーサブスクリプション」という。)を防ぐために、余裕を持たせて外付けバッファのバッファ量を設定することができるようにしなければならなかった。これにより、送信バッファの装置コストが増大するという課題があった。
【0010】
本発明は、上記の点を鑑みてなされたものであり、送信データをバッファリングする機器をより低いコストで実装することができるバッファ割り当て装置、加入者線端局装置、バッファ割り当て方法及びプログラムを提供することを目的とする。
【課題を解決するための手段】
【0011】
本発明の一態様は、複数のキューの各々に対する要求バッファ量を示す情報を取得する取得部と、前記キューごとの前記要求バッファ量を第1の記憶部で生じうる最も低いデータ収容効率に基づいて第1最低換算バッファ量にそれぞれ換算し、前記第1の記憶部の最も優先度の低い前記キューに対して、前記第1最低換算バッファ量と動的帯域割当機能の1周期当たりに最低限必要なバッファ量とに基づいて算出されるバッファ量を割り当て、前記第1の記憶部の最も優先度の低い前記キュー以外のキューに対して前記第1最低換算バッファ量を割り当て、前記第1の記憶部の合計容量と前記第1の記憶部の前記キューごとの前記第1最低換算バッファ量とに基づいて、オーバーサブスクリプションが発生しうるか否かを前記キューごとに判定し、前記オーバーサブスクリプションが発生すると判定された前記キューについて第2の記憶部の前記キューに所定のバッファ量を割り当てる設定部と、を備えるバッファ割り当て装置である。
【0012】
また、本発明の一態様は、複数の上り送信キューの各々に対する要求バッファ量を示す情報を取得する取得部と、前記上り送信キューごとの前記要求バッファ量を内蔵バッファで生じうる最も低いデータ収容効率に基づいて第1最低換算データ長にそれぞれ換算し、前記内蔵バッファの最も優先度の低い前記上り送信キューに対して、前記第1最低換算データ長と動的帯域割当機能の1周期当たりに最低限必要なバッファ量とに基づいて算出されるバッファ量を割り当て、前記内蔵バッファの最も優先度の低い前記上り送信キュー以外の上り送信キューに対して前記第1最低換算データ長を割り当て、前記内蔵バッファの合計容量と前記内蔵バッファの前記上り送信キューごとの前記第1最低換算データ長とに基づいて、オーバーサブスクリプションが発生しうるか否かを前記上り送信キューごとに判定し、前記オーバーサブスクリプションが発生すると判定された前記上り送信キューについて外付けバッファの前記上り送信キューに所定のバッファ量を割り当てる設定部と、を備える加入者線端局装置である。
【0013】
また、本発明の一態様は、複数のキューの各々に対する要求バッファ量を示す情報を取得する取得ステップと、前記キューごとの前記要求バッファ量を第1の記憶部で生じうる最も低いデータ収容効率に基づいて第1最低換算バッファ量にそれぞれ換算し、前記第1の記憶部の最も優先度の低い前記キューに対して、前記第1最低換算バッファ量と動的帯域割当機能の1周期当たりに最低限必要なバッファ量とに基づいて算出されるバッファ量を割り当て、前記第1の記憶部の最も優先度の低い前記キュー以外のキューに対して前記第1最低換算バッファ量を割り当て、前記第1の記憶部の合計容量と前記第1の記憶部の前記キューごとの前記第1最低換算バッファ量とに基づいて、オーバーサブスクリプションが発生しうるか否かを前記キューごとに判定し、前記オーバーサブスクリプションが発生すると判定された前記キューについて第2の記憶部の前記キューに所定のバッファ量を割り当てる設定ステップと、を有するバッファ割り当て方法である。
【0014】
また、本発明の一態様は、上記のバッファ割り当て装置としてコンピュータを機能させるためのプログラムである。
【発明の効果】
【0015】
本発明により、送信データをバッファリングする機器をより低いコストで実装することができる。
【図面の簡単な説明】
【0016】
【
図1】本発明の実施形態におけるPON1の全体構成図である。
【
図2】本発明の実施形態におけるONU20の構成を示すブロック図である。
【
図3】本発明の実施形態におけるONU20による上り送信バッファの設定処理を説明するための図である。
【
図4】本発明の実施形態におけるONU20による上り送信バッファの設定処理を説明するための図である。
【
図5】本発明の実施形態におけるONU20による上り送信バッファの設定処理を説明するための図である。
【
図6】本発明の実施形態におけるONU20の動作の一例を示すフローチャートである。
【発明を実施するための形態】
【0017】
以下、本発明の実施形態について、図面を参照しながら説明する。
【0018】
[PONの構成]
FTTHサービスを高速かつ安価に提供する光アクセスシステムとしてPON(Passive Optical Network;受動光ネットワーク)がある。PONは、光-電気変換を行わず、低コストの受動素子である光スプリッタを用いて光信号を複数に分岐する。これにより、PONは、一心の光ファイバを複数ユーザで共有することによって、経済的なネットワークを実現することができる。日本において主力となるFTTHサービスとして、例えば、ギガビット級の伝送速度を実現するGE-PON及びGE-PONのさらに10倍の帯域を持つ10G-EPON等がある。
【0019】
以下、本実施形態におけるPON1の全体構成について説明する。
図1は、本発明の実施形態におけるPON1の全体構成図である。
図1に示されるように、PON1は、OLT(Optical Line Terminal;加入者線端局装置)10と、複数の(
図1においてはn台の)ONU(Optical Network Unit;加入者線終端装置)20と、光ファイバ30と、光スプリッタ40と、を含んで構成される。
【0020】
OLT10は、例えば通信事業者の局舎内に設置される。ONU20は、例えばユーザの宅内(又は構内)に設置される。光ファイバ30は、例えば通信事業者の局舎とユーザの宅内との間に敷設される。光スプリッタ40は、光ファイバ30を分岐する。OLT10とONU20との間に光信号を合分波する光スプリッタ40が設置されることによって、1つのOLT10に対して複数のONU20が接続される。
【0021】
OLT10は、ONU20から送信された光信号を受信して、上位装置あるいは上位ネットワーク(例えば、インターネット等)へ転送する。また、OLT10は、上位装置あるいは上位ネットワークからの信号を受信して、各ONU20へ転送する。OLT10は、PON区間及びONU20を制御監視する役割を担う。
【0022】
ONU20は、OLT10から送信された光信号を受信して電気信号に変換する。そして、ONU20は、変換された電気信号をユーザの端末装置(例えば、PC等)へ転送する。また、ONU20は、ユーザの端末装置から送信された電気信号を受信して光信号に変換する。そして、ONU20は、変換された光信号をOLT10へ転送する。
【0023】
PON1では、OLT10からONU20への方向の通信(以下、「下り通信」という。)においては、TDM(Time Division Multiplexing;時分割多重化)技術が用いられる。TDMは、複数のユーザの信号を時間的に重ならないように多重化して伝送する技術である。
【0024】
なお、下り通信では、OLT10から送信されて光スプリッタ40によって分岐された同一の信号(以下、「下り信号」という。)が、当該OLT10とつながる全てのONU20へ転送される。すなわち、各ONU20には、自己のONU20宛のデータ以外のデータも転送される。そのため、各ONU20は、転送されたデータから自己のONU20宛のデータだけを抽出し、それ以外の(他のONU20宛の)データを廃棄する。
【0025】
また、PON1では、ONU20からOLT10への方向の通信(以下、「上り通信」という。)においては、TDMA技術が用いられる。上り通信では、光スプリッタ40によって複数のONU20からの信号(以下、「上り信号」という。)が合波される。そのため、各ONU20からの上り信号が無秩序に送信された場合、光ファイバ30上で衝突を起こしてしまう可能性がある。そこで、TDMAは、ONU20からの上り信号の送信タイミングと上りデータの送信量とを制御することによって、各ONU20からの上り信号が光ファイバ30上で衝突することなく多重化されるように制御する。
【0026】
GE-PON及び10G-EPONをシステムとして動作させるために必要な機能の1つとしてDBA機能がある。DBA機能は、上り通信における帯域(以下、「上り帯域」という。)を、トラヒック量に応じて動的に割り当てる帯域制御機能である。DBA機能は、各ONU20からの上り通信のトラヒック(以下、「上りトラヒック」という。)に応じて、柔軟に上り帯域を割り当てることができる。DBA機能は、上りトラヒックが流れているONU20だけに上り帯域を割り当てるため、無駄なく上り帯域を使用することができる。DBA機能は、各ONU20に流れる上りトラヒックの状況に応じて、割り当てる帯域を適切に切り替えることで、未使用帯域を発生させることなく、効率的な上り帯域を実現する。
【0027】
GE-PON及び10G-EPONは、MPCP(Multi Point Control Protocol)と呼ばれるプロトコルを用いて上り信号の送信制御を行う。OLT10は、それぞれのONU20が時間的に衝突することなく上り信号を送信することができるように、それぞれのONU20に対して上り信号の送信開始時刻及び送信許可量を、GATEフレームによって指示する。
【0028】
一方、各ONU20は、自己のONU20の上り送信バッファに蓄積されている送信待ちの上りデータのデータ量を、REPORTフレームによってOLT10に伝える。このGATEフレームとREPORTフレームとが用いられることによって、DBA機能が実現される。
【0029】
以下、DBA機能の仕組みを簡単に説明する。ONU20は、上りデータを受信すると、ひとまず上り送信バッファに上りデータを蓄積する。ONU20は、蓄積している上りデータのデータ量をREPORTフレームに記し、当該REPORTフレームをOLT10へ送信する。
【0030】
OLT10は、受信したREPORTフレームから、ONU20に蓄積されている送信待ちの上りデータのデータ量を把握する。OLT10は、ONU20に割り当てるべき上り帯域を、当該ONU20の蓄積データ量及び他のONU20の使用帯域に基づいて計算する。具体的には、OLT10は、ONU20の上り信号の送信開始時刻と送信許可量とを算出する。OLT10は、算出した値をGATEフレームに記し、当該GATEフレームをONU20へ送信する。
【0031】
ONU20は、受信したGATEフレームに記された指示に従って、指定された送信開始時刻に、指定されたデータ量(送信許可量)の上りデータを送信する。このとき、ONU20は、次回の上り帯域の割当のために、上り送信バッファに蓄積されている上りデータのデータ量をOLT10へ再度通知することもある。
【0032】
上記の手順が繰り返されることで、OLT10は、各ONU20における上りトラヒックの状況を把握することができ、当該状況に応じて各ONU20に対し上り帯域を適切に割り当てることができる。
【0033】
[ONUの構成]
以下、本実施形態におけるONU20の構成について説明する。
図2は、本発明の実施形態におけるONU20の構成を示すブロック図である。
図2に示されるように、ONU20は、TRx21と、MAC処理部22と、PHY23と、外付けバッファ24とを含んで構成される。
【0034】
TRx(Transmitter/Receiver)21は、自装置とOLT10との間で光信号の送受信を行う光送受信器である。TRx21は、MAC処理部22から出力された上り送信用のデジタルデータ(電気信号)を光信号(上り信号)に変換して光ファイバ30に出力するとともに、OLT10から送信された光信号(下り信号)を受信し、受信された光信号をデジタルデータ(電気信号)に変換してMAC処理部22へ出力する。
【0035】
MAC(Media Access Control)処理部22は、データの送受信を制御するデータリンク副層の機能部である。MAC処理部22は、一般にPONチップを用いて構成される。MAC処理部22は、バッファ設定部220と、内蔵バッファ221とを含んで構成される。バッファ設定部220は、内蔵バッファ221及び外付けバッファ24のバッファ量を設定する。なお、以下の説明において、内蔵バッファ221と外付けバッファ24とを併せて「上り送信バッファ」ということがある。
【0036】
内蔵バッファ221及び外付けバッファ24は、例えば磁気ハードディスク装置又は半導体記憶装置等の記憶媒体を用いて構成される。内蔵バッファ221及び外付けバッファ24は、PHY23によって受信される上りデータを蓄積する。内蔵バッファ221及び外付けバッファ24は、それぞれ複数の上り送信キューを備える。なお、以下の説明において、内蔵バッファ221の上り送信キューを「内蔵キュー」、及び、外付けバッファ24の上り送信キューを「外付けキュー」ということがある。
【0037】
PHY(PHYsical sublayer)23は、物理層の機能部である。PHY23は、自装置と下位装置(例えば、ユーザ通信端末等)とを接続する通信インタフェースである。PHY23は、下位装置から送信されたアナログ信号を取得してデジタル信号に変換し、変換されたデジタル信号をMAC処理部22へ出力する。また、PHY23は、MAC処理部22から出力されたデジタル信号を取得してアナログ信号に変換し、変換されたアナログ信号を下位装置へ送信する。
【0038】
[上り送信バッファの設定方法]
以下、本実施形態におけるONU20による上り送信バッファの設定方法について、具体例を用いて説明する。
図3~5は、本発明の実施形態におけるONU20による上り送信バッファの設定処理を説明するための図である。
【0039】
ここでは、ONU20の内蔵バッファ221及び外付けバッファ24は、それぞれ上り送信キューを4つずつ備えているものとする。
図3に示されるように、内蔵バッファ221及び外付けバッファ24は、上り送信キュー#0から上り送信キュー#3までの4つの上り送信キューをそれぞれ備える。ここで、上り送信キュー#3が最も優先度が高く、次に上り送信キュー#2、上り送信キュー#1の順に優先度が設定されており、この順番で上りデータが上り送信キューに格納されるものとする。そして、ONU20は、送信キュー#3に格納された上りデータを最優先で送信し、同キューが空になった後に送信キュー#2に格納された上りデータを送信し、その後同様に、送信キュー#1、送信キュー#0の順に上りデータを送信する。
【0040】
以下、内蔵バッファ221の上り送信キュー#0~上り送信キュー#3をそれぞれ内蔵キューq#0~内蔵キューq#3といい、外付けバッファ24の上り送信キュー#0~上り送信キュー#3をそれぞれ外付けキューQ#0~外付けキューQ#3という。
【0041】
バッファ設定部220は、内蔵キューq#0に割り当てられたバッファ量の範囲内に納まらなかった上りデータを外付けキューQ#0に格納する。同様に、バッファ設定部220は、内蔵キューq#1に割り当てられたバッファ量の範囲内に納まらなかった上りデータを外付けキューQ#1に格納し、内蔵キューq#2に割り当てられたバッファ量の範囲内に納まらなかった上りデータを外付けキューQ#2に格納し、内蔵キューq#3に割り当てられたバッファ量の範囲内に納まらなかった上りデータを外付けキューQ#3に格納する。このように、内蔵キューq#nと外付けキューQ#nとがそれぞれ対応する2段バッファとなっており、この1組の上り送信キューによって各上りデータが一時記憶される。
【0042】
まず、バッファ設定部220は、予め規定された装置や回線の保守監視機能(例えば、拡張OAM(Operation, Administration, and Maintenance)機能)からの指示に従って、内蔵キューq#0~内蔵キューq#3にそれぞれ設定したい上りデータのバッファ量(以下、単に「設定したいバッファ量」ともいう。)を決定する。
【0043】
ここでは、
図3に示されるように、内蔵キューq#0に設定したいバッファ量が600[KB]であり、内蔵キューq#1に設定したいバッファ量が300[KB]であり、内蔵キューq#2に設定したいバッファ量が200[KB]であり、内蔵キューq#3に設定したいバッファ量が100[KB]であるものとする。
【0044】
次に、バッファ設定部220は、上記決定された内蔵キューq#0~内蔵キューq#3にそれぞれ設定したいバッファ量を、内蔵バッファ221での最低収容効率となるデータ長に相当するバッファ量に換算する。ここでいう最低収容効率となるデータ長とは、上りデータが上り送信キューに収容される際にバッファ未使用領域が最も大きくなるデータ長である。バッファ設定部220は、上記換算されたバッファ量を、内蔵キューq#0~内蔵キューq#3にそれぞれ確保する上りデータのバッファ量(以下、単に「確保するバッファ量」ともいう。)として決定する。
【0045】
ここでは、内蔵バッファ221での最低収容効率は、1/1.5であるものとする。したがって、内蔵キューq#0に確保するバッファ量が、900[KB](=600×1.5)となり、内蔵キューq#1に確保するバッファ量が、450[KB](=300×1.5)となり、内蔵キューq#2に確保するバッファ量が、300[KB](=200×1.5)となり、内蔵キューq#3に確保するバッファ量が、150[KB](=100×1.5)となる。
【0046】
次に、バッファ設定部220は、DBA機能の1周期当たりに最低限必要となるバッファ量を算出する。なお、DBA機能の1周期当たりに最低限必要となるバッファ量が算出される理由としては、1周期当たりに上りデータを出力することができるのは、内蔵バッファ221からのみであるというPONチップ上の制約からである。すなわち、バッファ設定部220は、DBA機能の1周期当たりにOLT10によって付与されうる最大の上りデータの送信許可量(Data Grant)分に相当するバッファ量を算出する(なお、上記と同様に、バッファ設定部220は、内蔵バッファ221での最低収容効率となるデータ長に相当するバッファ量に換算する)。
【0047】
ここでは、付与されうる最大の上りデータの送信許可量(Data Grant)分のデータ長に相当するバッファ量が、525[KB]であるものとする。
【0048】
次に、バッファ設定部220は、最も優先度が低い上り送信キューである内蔵キューq#0が最大の上りレートとなるようにバッファ量を割り当てる。具体的には、バッファ設定部220は、上記算出された内蔵キューq#0に確保するバッファ量(以下、「バッファ量A」ともいう。)と、上記算出された付与されうる最大の上りデータの送信許可量(Data Grant)分の内蔵バッファ221での最低収容効率となるデータ長に相当するバッファ量(以下、「バッファ量B」ともいう。)と、を比較する。バッファ設定部220は、バッファ量Aがバッファ量Bより多い場合には、内蔵キューq#0に対し、バッファ量Bを割り当てるように設定する。一方、バッファ設定部220は、バッファ量Aがバッファ量B以下である場合には、内蔵キューq#0に対し、バッファ量Aを割り当てるように設定する。
【0049】
ここでは、上記の通り、バッファ量Aは900[KB]であり、バッファ量Bは525[KB]である。このように、バッファ量Aがバッファ量Bより多いことから、
図3に示されるように、内蔵キューq#0に対し、525[KB]のバッファ量(バッファ量B)が割り当てられる。
【0050】
次に、バッファ設定部220は、外付けキューQ#0に実際に割り当てるバッファ量を算出する。具体的には、上記において内蔵キューq#0に対しバッファ量Bが割り当てられた場合に、バッファ設定部220は、内蔵キューq#0に確保するバッファ量のうち、上記の内蔵キューq#0に対するバッファ量の設定によって設定しきれなかった分のバッファ量を外付けキューQ#0に割り当てる(なお、バッファ設定部220は、外付けバッファ24での最低収容効率となるデータ長に相当するバッファ量に換算する)。
【0051】
ここでは、上記の通り、内蔵キューq#0に対し525[KB]のバッファ量が割り当てられている。この525[KB]のバッファ量は、内蔵バッファ221での最低収容効率となるデータ長に相当するバッファ量であることから、当初の内蔵キューq#0に設定したいバッファ量600[KB]うちの350[KB](=525÷1.5)分のバッファ量が内蔵キューq#0に対して割り当てられたことになる。したがって、外付けキューQ#0には、当初の内蔵キューq#0に設定したいバッファ量600[KB]うちの残りの250[KB](=600-350)分のバッファ量が割り当てられる必要がある。
【0052】
ここでは、外付けバッファ24での最低収容効率は、1/1.2であるものとする。したがって、
図3に示されるように、外付けキューQ#0に対し300[KB](=250×1.2)のバッファ量が割り当てられる。
【0053】
また、バッファ設定部220は、上記算出された、内蔵キューq#1に確保するバッファ量、内蔵キューq#2に確保するバッファ量、及び内蔵キューq#3に確保するバッファ量を、それぞれ内蔵キューq#1、内蔵キューq#2、及び内蔵キューq#3に割り当てる。
【0054】
ここでは、
図3に示されるように、内蔵キューq#1、内蔵キューq#2、及び内蔵キューq#3に対し、それぞれ、450[KB]、300[KB]、及び150[KB]のバッファ量が割り当てられる。
【0055】
次に、バッファ設定部220は、内蔵バッファ221(内蔵キューq#0~内蔵キューq#3)の合計容量に基づいて、内蔵キューq#0~内蔵キューq#3の各々にオーバーサブスクリプションが発生しうるか否かを判定する。例えば、内蔵キューq#0~内蔵キューq#2で内蔵バッファ221の合計容量の全てが使い切られた場合、内蔵キューq#3のバッファ量は0[KB]となる。この場合、内蔵キューq#3の上りデータが取得されたとしても、内蔵キューq#3は当該上りデータを格納することができない。これにより、当該上りデータは、内蔵バッファにてオーバーサブスクリプションが発生し、格納できないデータは外付けバッファへ格納される。バッファ設定部220は、ある内蔵キューにおいてオーバーサブスクリプションが発生しうるか否かを、他の内蔵キューのバッファ量に基づいて判定する。
【0056】
ここでは、
図4に示されるように、内蔵バッファ221(内蔵キューq#0~内蔵キューq#3)の合計容量が1[MB]であるものとする。上記の通り、内蔵キューq#0、内蔵キューq#1、及び内蔵キューq#2に対して、それぞれ、525[KB]、450[KB]、及び300[KB]のバッファ量が割り当てられている。そのため、内蔵キューq#0~内蔵キューq#2のバッファ量の合計は1,275[KB]となり、1[MB](=1,024[KB])を超過する。したがって、内蔵キューq#3においてオーバーサブスクリプションが発生しうると判定される。
【0057】
このようにして、内蔵キューq#0、内蔵キューq#1、及び内蔵キューq#2に割り当てられたバッファ量の合計が1,275[KB](=525+450+300)>1[MB]であることから内蔵キューq#3においてオーバーサブスクリプションが発生しうると判定され、内蔵キューq#0、内蔵キューq#1、及び内蔵キューq#3に割り当てられたバッファ量の合計が1,125[KB](=525+450+150)>1[MB]であることから内蔵キューq#2においてオーバーサブスクリプションが発生しうると判定される。
【0058】
一方、内蔵キューq#0、内蔵キューq#2、及び内蔵キューq#3に割り当てられたバッファ量の合計が975[KB](=525+300+150)≦1[MB]であることから内蔵キューq#1においてオーバーサブスクリプションが発生しないと判定され、内蔵キューq#1、内蔵キューq#2、及び内蔵キューq#3に割り当てられたバッファ量の合計が900[KB](=450+300+150)≦1[MB]であることから内蔵キューq#0においてオーバーサブスクリプションが発生しないと判定される。
【0059】
次に、バッファ設定部220は、上記の判定においてオーバーサブスクリプションが発生しうると判定された内蔵キューに対応する外付けキューに対してバッファ量を割り当てる(なお、バッファ設定部220は、外付けバッファ24での最低収容効率となるデータ長に相当するバッファ量に換算する)。
【0060】
ここでは、上記の通り、内蔵キューq#2及び内蔵キューq#3においてオーバーサブスクリプションが発生しうると判定されたため、外付けキューQ#2及び外付けキューQ#3に対してバッファ量が割り当てられる。上記のとおり、当初の内蔵キューq#2に設定したいバッファ量は200[KB]であるため、
図5に示されるように、外付けキューQ#2には、外付けバッファ24での最低収容効率となるデータ長に相当する240[KB](=200×1.2)のバッファ量が割り当てられる。また、当初の内蔵キューq#3に設定したいバッファ量は100[KB]であるため、
図5に示されるように、外付けキューQ#3には、外付けバッファ24での最低収容効率となるデータ長に相当する120[KB](=100×1.2)のバッファ量が割り当てられる。
【0061】
[ONUの動作]
以下、本実施形態におけるONU20の上り送信バッファの設定処理時における動作について説明する。
図6は、本発明の実施形態におけるONU20の動作の一例を示すフローチャートである。なお、ここでは、内蔵バッファ221及び外付けバッファ24は、n個(nは、1以上の整数)の上り送信キューをそれぞれ備えているものとする。
【0062】
まず、バッファ設定部220は、PHY23から取得した上りデータに基づいて、内蔵キューq#0~内蔵キューq#n-1にそれぞれ設定したいバッファ量を決定する(ステップS01)。
【0063】
次に、バッファ設定部220は、ステップS01において決定された内蔵キューq#0~内蔵キューq#n-1にそれぞれ設定したいバッファ量を、内蔵バッファ221での最低収容効率となるデータ長に相当するバッファ量に換算する(ステップS02)。バッファ設定部220は、上記換算されたバッファ量を、内蔵キューq#0~内蔵キューq#n-1にそれぞれ確保するバッファ量として決定する。
【0064】
次に、バッファ設定部220は、DBA機能の1周期当たりに最低限必要となるバッファ量を算出する(ステップS03)。
【0065】
次に、バッファ設定部220は、最も優先度が低い上り送信キューである内蔵キューq#m(mは、0≦m≦n-1となる整数)が最大の上りレートとなるようにバッファ量を割り当てる。具体的には、バッファ設定部220は、上記算出された内蔵キューq#mに確保するバッファ量(バッファ量A)と、上記算出された付与されうる最大の上りデータの送信許可量(Data Grant)分の内蔵バッファ221での最低収容効率となるデータ長に相当するバッファ量(バッファ量B)とを比較する。バッファ設定部220は、バッファ量Aがバッファ量Bより多い場合には、内蔵キューq#mに対し、バッファ量Bを割り当てるように設定する。一方、バッファ設定部220は、バッファ量Aがバッファ量B以下である場合には、内蔵キューq#mに対し、バッファ量Aを割り当てるように設定する(ステップS04)。
【0066】
次に、バッファ設定部220は、最も優先度が低い上り送信キューである内蔵キューq#mに対応する外付けキューQ#mにバッファ量の割り当てが必要か否かを判定する(ステップS05)。具体的には、バッファ設定部220は、内蔵キューq#mに確保するバッファ量のうち、上記ステップS04における内蔵キューq#mに対するバッファ量の設定によって設定しきれなかった分のバッファ量がある場合(すなわち、内蔵キューq#mに対し、バッファ量Bが割り当てられた場合)に、外付けキューQ#mにバッファ量を割り当てる必要が有ると判定する。
【0067】
外付けキューQ#mにバッファ量の割り当てが必要であると判定された場合(ステップS05・YES)、バッファ設定部220は、内蔵キューq#0に確保するバッファ量のうち、上記の内蔵キューq#0に対するバッファ量の設定によって設定しきれなかった分のバッファ量を外付けキューQ#0に割り当てる(ステップS06)。
【0068】
次に、バッファ設定部220は、最も優先度が低い上り送信キューである内蔵キューq#m以外の内蔵キューに対し、ステップS02において算出された内蔵バッファに確保するバッファ量をそれぞれ割り当てる(ステップS07)。
【0069】
次に、バッファ設定部220は、内蔵バッファ221の合計容量に基づいて、内蔵キューq#0~内蔵キューq#nの各々にオーバーサブスクリプションが発生しうるか否かを判定する(ステップS08)。
【0070】
次に、バッファ設定部220は、上記の判定においてオーバーサブスクリプションが発生しうると判定された内蔵キューに対応する外付けキューに対してバッファ量を割り当てる(ステップS09)。以上で、
図6のフローチャートが示すONU20の動作が終了する。
【0071】
以上説明したように、本実施形態におけるONU20は、上り送信キューごとの設定したいバッファ量に対し、当該バッファ量を内蔵バッファ221で最低収容効率となる場合のバッファ量に換算する。ONU20は、まず優先度が最も低い上り送信キューに内蔵バッファ221を優先的に割り当てる。このとき、ONU20は、設定したいバッファ量がDBA機能の1周期当たりに最低限必要なバッファ量より大きい場合には、当該最低限必要なバッファ量を内蔵バッファ221に割り当て、残りのバッファ量を外付けバッファ24に割り当てる。
【0072】
このような構成を備えることで、本実施形態におけるONU20は、2段構成の上り送信バッファのバッファ量を適切に設定することができる。具体的には、外付けバッファ24は、内蔵バッファ221に収まらない上りデータを格納する。そしてベストエフォートクラスとして想定されたクラスであって、バッファの必要量が最も多いクラスである上り送信キュー#0に、十分なバッファ量を割り当てつつ、帯域保証クラスとして想定されたクラスである上り送信キュー#1~3に、DBA機能の1周期当たりに保証されているデータ量のみを内蔵バッファ221に確保することで、優先度に基づき効率的に上りデータを送信することができる。なお、ここでいうベストエフォートクラスとは、一般的なインターネットと同様の経済性や自由度を優先する通信サービスを提供するための品質クラスである。また、ここでいう帯域補償クラスとは、優先クラスであり、例えば、テレビ電話や、映像配信のようなリアルタイム性が要求される通信サービスの提供に適した品質クラスである。これにより、本実施形態におけるONU20によれば、低価格低容量のバッファを組み合わせて用いることが可能になり、より安価にONU20の必要性能を満たす構成とすることができる。よって、本実施形態におけるONU20によれば、送信データをバッファリングする機器をより低いコストで実装することができる。
【0073】
また、以上説明したように、本実施形態におけるONU20は、優先度が最も低い上り送信キュー以外の上り送信キューに対して、残りのバッファ量を割り当てる。このとき、ONU20は、設定したいバッファ量が内蔵バッファ221の容量を超えるオーバーサブスクリプションが発生しうる場合には、当該オーバーサブスクリプションが発生しうる上り送信キューを外付けバッファ24に設定する。
【0074】
このような構成を備えることで、本実施形態におけるONU20は、オーバーサブスクリプションの発生を防ぐことができ、外付けバッファ24に必要なバッファ量の増大を抑制することができる。
【0075】
上述した実施形態によれば、バッファ割り当て装置は、取得部と、設定部とを備える。
例えば、バッファ割り当て装置は、実施形態におけるONU20あるいはMAC処理部22であり、取得部は、実施形態におけるMAC処理部22の一部であり、設定部は、実施形態におけるバッファ設定部220である。取得部は、複数のキューの各々に対する要求バッファ量を示す情報を取得する。例えば、複数のキューは、実施形態における上り送信キュー#0~上り送信キュー#nであり、要求バッファ量は、実施形態における内蔵キューq#0~内蔵キューq#nにそれぞれ設定したい上りデータのバッファ量である。
【0076】
設定部は、キューごとの要求バッファ量を第1の記憶部で生じうる最も低いデータ収容効率に基づいて第1最低換算バッファ量にそれぞれ換算する。例えば、第1の記憶部は、実施形態における内蔵バッファ221であり、第1最低換算バッファ量は、実施形態における内蔵バッファ221での最低収容効率となるデータ長に相当するバッファ量である。設定部は、第1の記憶部の最も優先度の低いキューに対して、第1最低換算バッファ量と動的帯域割当機能の1周期当たりに最低限必要なバッファ量とに基づいて算出されるバッファ量を割り当てる。例えば、第1の記憶部の最も優先度の低いキューは、実施形態における内蔵キューq#0であり、動的帯域割当機能は、実施形態におけるDBA機能である。設定部は、第1の記憶部に設定されなかった分のバッファ量を第2の記憶部で生じうる最も低いデータ収容効率に基づいて第2最低換算バッファ量に換算し、第2の記憶部の最も優先度の低いキューに対して第2最低換算バッファ量を割り当てる。例えば、第2の記憶部は、実施形態における外付けバッファ24であり、第2最低換算バッファ量は、実施形態における外付けバッファ24での最低収容効率となるデータ長に相当するバッファ量であり、第2の記憶部の最も優先度の低いキューは、実施形態における外付けキューQ#0である。
【0077】
なお、上記のバッファ割り当て装置において、設定部は、第1最低換算バッファ量と動的帯域割当機能の1周期当たりに最低限必要なバッファ量を示す必要バッファ量とを比較し、第1最低換算バッファ量が必要バッファ量より多い場合には第1の記憶部の最も優先度の低いキューに対して必要バッファ量を割り当て、第1最低換算バッファ量が必要バッファ量以下である場合には第1の記憶部の最も優先度の低いキューに対して第1最低換算バッファ量を割り当てるようにしてもよい。例えば、必要バッファ量は、実施形態におけるDBA機能の1周期当たりにOLT10によって付与されうる最大の上りデータの送信許可量(Data Grant)分に相当するデータ長に相当するバッファ量である。
【0078】
なお、上記のバッファ割り当て装置において、設定部は、第1の記憶部の最も優先度の低いキュー以外のキューに対して第1最低換算バッファ量を割り当て、第1の記憶部の合計容量と第1の記憶部のキューごとの第1最低換算バッファ量とに基づいて、オーバーサブスクリプションが発生しうるか否かをキューごとに判定し、オーバーサブスクリプションが発生すると判定された第2の記憶部のキューに所定のバッファ量を割り当てるようにしてもよい。例えば、第1の記憶部の最も優先度の低いキュー以外のキューは、実施形態における内蔵キューq#0以外の内蔵キューq#nである。
【0079】
なお、上記のバッファ割り当て装置において、設定部は、第1の記憶部の特定のキュー以外のキューに割り当てられたバッファ量の合計が第1の記憶部の合計容量より多い場合に、第1の記憶部の特定のキューにおいてオーバーサブスクリプションが発生しうると判定するようにしてもよい。
【0080】
なお、上記のバッファ割り当て装置において、設定部は、第2の記憶部で生じうる最も低いデータ収容効率に基づいて算出される上記所定のバッファ量を割り当てるようにしてもよい。
【0081】
上述した実施形態におけるONU20の一部又は全部をコンピュータで実現するようにしてもよい。その場合、この機能を実現するためのプログラムをコンピュータ読み取り可能な記録媒体に記録して、この記録媒体に記録されたプログラムをコンピュータシステムに読み込ませ、実行することによって実現してもよい。なお、ここでいう「コンピュータシステム」とは、OSや周辺機器のハードウェアを含むものとする。また、「コンピュータ読み取り可能な記録媒体」とは、フレキシブルディスク、光磁気ディスク、ROM、CD-ROM等の可搬媒体、コンピュータシステムに内蔵されるハードディスク等の記録装置のことをいう。さらに「コンピュータ読み取り可能な記録媒体」とは、インターネット等のネットワークや電話回線等の通信回線を介してプログラムを送信する場合の通信線のように、短時間の間、動的にプログラムを保持するもの、その場合のサーバやクライアントとなるコンピュータシステム内部の揮発性メモリのように、一定時間プログラムを保持しているものを含んでもよい。また上記プログラムは、前述した機能の一部を実現するためのものであってもよく、さらに前述した機能をコンピュータシステムにすでに記録されているプログラムとの組み合わせで実現できるものであってもよく、FPGA(Field Programmable Gate Array)等のプログラマブルロジックデバイスを用いて実現されるものであってもよい。
【0082】
以上、この発明の実施形態について図面を参照して詳述してきたが、具体的な構成はこの実施形態に限られるものではなく、この発明の要旨を逸脱しない範囲の設計等も含まれる。
【符号の説明】
【0083】
1・・・PON、10・・・OLT、20・・・ONU、21・・・TRx、22・・・MAC処理部、23・・・PHY、24・・・外付けバッファ、30・・・光ファイバ、40・・・光スプリッタ、220・・・バッファ設定部、221・・・内蔵バッファ