特許第6963185号(P6963185)IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ 日本電信電話株式会社の特許一覧

特許6963185帯域割当装置、帯域割当方法及び帯域割当プログラム
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】6963185
(24)【登録日】2021年10月19日
(45)【発行日】2021年11月5日
(54)【発明の名称】帯域割当装置、帯域割当方法及び帯域割当プログラム
(51)【国際特許分類】
   H04L 12/44 20060101AFI20211025BHJP
【FI】
   H04L12/44 B
   H04L12/44 200
【請求項の数】8
【全頁数】33
(21)【出願番号】特願2018-155620(P2018-155620)
(22)【出願日】2018年8月22日
(65)【公開番号】特開2020-31325(P2020-31325A)
(43)【公開日】2020年2月27日
【審査請求日】2020年11月25日
(73)【特許権者】
【識別番号】000004226
【氏名又は名称】日本電信電話株式会社
(74)【代理人】
【識別番号】110001634
【氏名又は名称】特許業務法人 志賀国際特許事務所
(72)【発明者】
【氏名】鵜澤 寛之
(72)【発明者】
【氏名】氏川 裕隆
(72)【発明者】
【氏名】中村 浩崇
【審査官】 中川 幸洋
(56)【参考文献】
【文献】 特開2018−101912(JP,A)
【文献】 国際公開第2018/020559(WO,A1)
【文献】 特開2017−208769(JP,A)
【文献】 国際公開第2014/178375(WO,A1)
(58)【調査した分野】(Int.Cl.,DB名)
H04L 12/44
(57)【特許請求の範囲】
【請求項1】
上りデータを低遅延で転送する必要がある加入者線終端装置である第1加入者線終端装置の上りデータの送信に関するスケジューリング情報を取得する取得部と、
上りデータを低遅延で転送する必要がない加入者線終端装置である第2加入者線終端装置から、第2加入者線終端装置の上りデータの送信に関する要求量を表す情報を、予め定められた最大往復時間以上のサイクルである要求量受信サイクルで受信する要求量受信部と、
前記要求量受信サイクルよりも短い割当量決定サイクルで、前記スケジューリング情報に基づいて第1加入者線終端装置の上りデータに帯域を割り当て、前記割当量決定サイクルで、前記要求量を表す情報に基づいて第2加入者線終端装置の上りデータに帯域を割り当てる割当部と
を備える帯域割当装置。
【請求項2】
前記割当部は、前記要求量を表す情報の送信用に帯域を割り当て、前記要求量を表す情報の送信用に割り当てられずに残った帯域を第1加入者線終端装置の上りデータの送信用に割り当て、第1加入者線終端装置の上りデータの送信用に割り当てられずに残った帯域を第2加入者線終端装置の上りデータの送信用に割り当て、第2加入者線終端装置の上りデータの送信用に割り当てられずに残った帯域を第1加入者線終端装置の上りデータの送信用に割り当てる、請求項1に記載の帯域割当装置。
【請求項3】
前記割当部は、予め定められた最小データ量を表す情報と予め定められた最大データ量を表す情報とを取得し、前記要求量が前記最小データ量未満である場合、第2加入者線終端装置の上りデータの送信用に前記最小データ量の帯域を割り当て、前記要求量が前記最大データ量を超えている場合、第2加入者線終端装置の上りデータの送信用に前記最大データ量の帯域を割り当てる、請求項1又は請求項2に記載の帯域割当装置。
【請求項4】
前記割当部は、第2加入者線終端装置ごとに定められた重み係数と、前記要求量を表す情報とに基づいて、前記要求量のデータ量の帯域を上限として、第2加入者線終端装置の上りデータの送信用に帯域を割り当てる、請求項1から請求項3のいずれか一項に記載の帯域割当装置。
【請求項5】
帯域割当装置が実行する帯域割当方法であって、
上りデータを低遅延で転送する必要がある加入者線終端装置である第1加入者線終端装置の上りデータの送信に関するスケジューリング情報を取得するステップと、
上りデータを低遅延で転送する必要がない加入者線終端装置である第2加入者線終端装置から、第2加入者線終端装置の上りデータの送信に関する要求量を表す情報を、予め定められた最大往復時間以上のサイクルである要求量受信サイクルで受信するステップと、
前記要求量受信サイクルよりも短い割当量決定サイクルで、前記スケジューリング情報に基づいて第1加入者線終端装置の上りデータに帯域を割り当て、前記割当量決定サイクルで、前記要求量を表す情報に基づいて第2加入者線終端装置の上りデータに帯域を割り当てるステップと
を含む帯域割当方法。
【請求項6】
前記割り当てるステップでは、前記要求量を表す情報の送信用に帯域を割り当て、前記要求量を表す情報の送信用に割り当てられずに残った帯域を第1加入者線終端装置の上りデータの送信用に割り当て、第1加入者線終端装置の上りデータの送信用に割り当てられずに残った帯域を第2加入者線終端装置の上りデータの送信用に割り当て、第2加入者線終端装置の上りデータの送信用に割り当てられずに残った帯域を第1加入者線終端装置の上りデータの送信用に割り当てる、請求項5に記載の帯域割当方法。
【請求項7】
前記割り当てるステップは、予め定められた最小データ量を表す情報と予め定められた最大データ量を表す情報とを取得し、前記要求量が前記最小データ量未満である場合、第2加入者線終端装置の上りデータの送信用に前記最小データ量の帯域を割り当て、前記要求量が前記最大データ量を超えている場合、第2加入者線終端装置の上りデータの送信用に前記最大データ量の帯域を割り当てる、請求項5又は請求項6に記載の帯域割当方法。
【請求項8】
請求項1から請求項4のいずれか一項に記載の帯域割当装置としてコンピュータを機能させるための帯域割当プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、帯域割当装置、帯域割当方法及び帯域割当プログラムに関する。
【背景技術】
【0002】
移動体の無線通信システム(モバイルシステム)では、上位層側の機能と下位層側の機能とに、基地局の機能が分割される場合がある。上位装置は、集約配置される装置(中央ユニット)であって、基地局の上位層側の機能を実行する装置である。下位装置は、分散配置される装置(分散ユニット)であって、基地局の下位層側の機能を実行する装置である。
【0003】
上位装置及び下位装置は、光ファイバで接続される。上位装置と下位装置との間は、モバイルフロントホール(MFH: Mobile Fronthaul)と呼ばれる。以下、上位装置及び下位装置との間で基地局の機能が分割される箇所を「機能分割点」という。この機能分割点には、例えば、物理層の内部に分割点を持つLLS(Low Layer Split)と、物理層よりも上位の層に分割点を持つHLS(High Layer Split)とが検討されている。
【0004】
MFHの遅延要件は、機能分割点に応じて異なる。LLSの場合、MFHの遅延要件は片道250μsである。HLSの場合、MFHの遅延要件は1.5〜10msである(非特許文献1参照)。
【0005】
MFHには、NG−PON2(Next Generation - Passive Optical Network 2)に代表されるTDM−PON(Time Division Multiplexing - Passive Optical Network)システムを適用することが検討されている(非特許文献2参照)。
【0006】
TDM−PONでは、OLT(Optical Line Terminal:加入者線端局装置)は、複数のONU(Optical Network Unit:加入者線終端装置)に接続される。OLTは、時分割多重(TDM: Time Division Multiplexing)によってONUと通信する。以下、ONUからOLTへの向きを「上り」という。上りデータの送信(以下「上り送信」という。)に関して、各ONUの間で上り光信号の衝突を避けるために、OLTによって各ONUの上り送信が制御されている。ONUは、自装置のバッファに上りデータを蓄積して上り送信を待たせ、OLTからの指示に従って送信する。
【0007】
MFHにTDM−PONが適用される場合、下位装置はONUに接続される。上位装置はOLTに接続される。
【0008】
LLS用の下位装置をTDM−PONで収容する際において、LLSの遅延要件を満たすために、上位装置におけるスケジューリング処理と連携した、TDM−PONの上り送信の動的帯域割当(以下「連携DBA」という。)方法が、非特許文献2に開示されている。
【0009】
LLSの場合、下位装置に無線接続するユーザ端末の上り送信を上位装置が集中制御するために、上位装置は、無線送信周期(TTI: Transmission Time Interval)ごとに、スケジューリングを実行する。上位装置は、このスケジューリング結果を、ONU及び下位装置を介して各ユーザ端末に送信する。各ユーザ端末は、スケジューリング結果に基づいて、上り送信を実行する。
【0010】
以下、下位装置が各ユーザ端末から受信する上りデータを「モバイルデータ」といい、下位装置が各ユーザ端末からモバイルデータを受信する時刻を「上りデータ受信時刻」という。上記スケジューリング結果のうち、LLS用の下位装置における上りデータ量及び上りデータ受信時刻を特定する情報を含む情報を「スケジューリング情報」という。
【0011】
非特許文献2の方法では、OLTは、スケジューリング情報を、上位装置から予め受信する。OLTは、予め受信されたスケジューリング情報に基づいて、各ONUへの割当量を決定し、各ONUに通知する。これにより、下位装置からONUに上りデータが到着するのに合わせた割当が可能となり、低遅延での上りデータ転送が可能になる。
【0012】
一方で、HLSの場合、上記スケジューリング処理は下位装置で実行される。このため、OLTは、スケジューリング情報を上位装置から受信することができないので、連携DBAを実行することができない。スケジューリング情報を用いずにOLTが上り送信を制御する方法として、各ONUに周期的に固定データ量の帯域を割り当てる帯域割当方法(FBA: Fixed Bandwidth Allocation)が開示されている(非特許文献3及び4参照)。各ユーザ端末からONUへの上りデータの到着の有無に関係なくOLTが固定データ量の帯域を各ONUに割り当てるので、OLTに収容可能であるONUの数は限定される。
【0013】
HLS用の下位装置をTDM−PONで収容する場合における上り送信制御としては、ステータス・レポート(Status-Report)方式の動的帯域割当(以下「SR−DBA」という。)方法が適用可能である(非特許文献5及び6参照)。SR−DBAは、FTTH(Fiber to the home)等に広く採用されている帯域割当方法である。
【0014】
この方法において、OLTは、各ONUに対して、バッファに蓄積されたデータ量(上り送信の要求量)をOLTに通知するための帯域を周期的に割り当て、要求量を表す情報を各ONUから収集する。OLTは、要求量を表す情報に基づいて、上り送信の開始時刻の情報と送信を許可するデータ量の情報とを含む割当量の情報を決定し、決定された割当量を各ONUに通知する。各ONUは、ONUのバッファに蓄積された上りデータを、通知された割当量の情報に基づいてOLTに送信する。
【0015】
この制御において、要求量を表す情報をOLTが各ONUから収集するには、OLT及びONUの間の最大往復時間(RTT: Round Trip Time)(以下「最大RTT」という。)以上の時間が必要である。OLT及びONUの間の最大許容距離が例えば20kmである場合、最大RTTは、例えば200μsである。OLTでの割当量の決定及び通知には、要求量を表す情報を各ONUから収集することが必要であるため、要求量を表す情報をONUが送信した時刻から、ONUのバッファに蓄積された上りデータの送信時刻に達するまでで、最大RTT以上の時間を要する。さらに、伝搬遅延時間(=RTT/2)と、上りデータの送信完了までに要する時間と、他ONUの上り送信のための待ち時間が加わり、結果として、TDM−PONがHLS用の下位装置からの上りデータに印加する遅延は、合計1msから2ms程度となる。このため、SR−DBAは、数ms程度の遅延を許容しないアプリケーションには適さない帯域割当処理であるが、ONUのバッファに蓄積済みのデータに対する割当であることから、帯域利用効率が高く、収容可能なONU数を多くすることができる。HLSでは1.5から10msまでの遅延が許容されるので、SR−DBAはHLSに適用可能である。
【先行技術文献】
【非特許文献】
【0016】
【非特許文献1】中村 武宏、「2020年の5G導入に向けて」、[online]、5G Deployment toward 2020 and Beyond、MPLS Japan 2016、[平成30年7月27日検索]、インターネット〈https://www.mpls.jp/2016/presentations/20161107_MPLS-Japan2016_docomo_Nakamura.pdf〉
【非特許文献2】H. Uzawa et al.,“Practical Mobile-DBA Scheme Considering Data Arrival Period for 5G Mobile Fronthaul with TDM−PON”, 2017 European Conference on Optical Communication (ECOC).
【非特許文献3】D.Hisano et al.,“TDM−PON for Accomodating TDD-Based Fronthaul and Secondary Services”, Journal of lightwave technology, vol.35, NO.14, July 15, 2017.
【非特許文献4】Y.Luo et al.,“Bandwidth Allocation for Multiservice Access on EPONs”, IEEE Optical Communications, February 2005.
【非特許文献5】H. Ou et al.,“Integrated Dynamic Bandwidth Allocation for Low Buffer Aggregated Passive Optical Network Systems”, Journal of optical communication network, vol.7, No.8, August 2015.
【非特許文献6】NTT、「技術基礎講座[GE-PON技術]第3回DBA機能」、NTT技術ジャーナル、2005.10
【発明の概要】
【発明が解決しようとする課題】
【0017】
経済性の観点から、OLTは、遅延要件が互いに異なる複数のMFHを、同一のTDM−PONを用いて収容する場合がある。さらに、FTTHでもTDM−PONが採用されていることから、その経済性を最大限に活用するために、FTTH用のONUもMFHと同一TDM−PON上で収容される場合がある。
【0018】
これらの場合、OLTは、LLS用の下位装置と接続するONU(以下「LLS用のONU」という。)に対して連携DBAを用い、HLS用の下位装置と接続するONU(以下「HLS用のONU」という。)とFTTH用のONUとに対してSR−DBAを用いて、上り送信を制御することが考えられる。しかしながら、上りデータの割当量を算出及び決定するサイクル(以下「DBAサイクル」という。)の時間長は、SR−DBAでは最大RTTの時間長以上である必要がある。
【0019】
このため、従来の帯域割当装置は、DBAサイクルを無線送信周期の時間長以下(低遅延)のサイクルにすることが要求される連携DBAと、DBAサイクルを最大RTTの時間長以上のサイクルにすることが要求されるSR−DBAとを、両立させることができない場合があった。
【0020】
上記事情に鑑み、本発明は、連携DBAとSR−DBAとを両立させることが可能である帯域割当装置、帯域割当方法及び帯域割当プログラムを提供することを目的としている。
【課題を解決するための手段】
【0021】
本発明の一態様は、上りデータを低遅延で転送する必要がある加入者線終端装置である第1加入者線終端装置の上りデータの送信に関するスケジューリング情報を取得する取得部と、上りデータを低遅延で転送する必要がない加入者線終端装置である第2加入者線終端装置から、第2加入者線終端装置の上りデータの送信に関する要求量を表す情報を、予め定められた最大往復時間以上のサイクルである要求量受信サイクルで受信する要求量受信部と、前記要求量受信サイクルよりも短い割当量決定サイクルで、前記スケジューリング情報に基づいて第1加入者線終端装置の上りデータに帯域を割り当て、前記割当量決定サイクルで、前記要求量を表す情報に基づいて第2加入者線終端装置の上りデータに帯域を割り当てる割当部とを備える帯域割当装置である。
【0022】
本発明の一態様は、上記の帯域割当装置であって、前記割当部は、前記要求量を表す情報の送信用に帯域を割り当て、前記要求量を表す情報の送信用に割り当てられずに残った帯域を第1加入者線終端装置の上りデータの送信用に割り当て、第1加入者線終端装置の上りデータの送信用に割り当てられずに残った帯域を第2加入者線終端装置の上りデータの送信用に割り当て、第2加入者線終端装置の上りデータの送信用に割り当てられずに残った帯域を第1加入者線終端装置の上りデータの送信用に割り当てる。
【0023】
本発明の一態様は、上記の帯域割当装置であって、前記割当部は、予め定められた最小データ量を表す情報と予め定められた最大データ量を表す情報とを取得し、前記要求量が前記最小データ量未満である場合、第2加入者線終端装置の上りデータの送信用に前記最小データ量の帯域を割り当て、前記要求量が前記最大データ量を超えている場合、第2加入者線終端装置の上りデータの送信用に前記最大データ量の帯域を割り当てる。
【0024】
本発明の一態様は、上記の帯域割当装置であって、前記割当部は、第2加入者線終端装置ごとに定められた重み係数と、前記要求量を表す情報とに基づいて、前記要求量のデータ量の帯域を上限として、第2加入者線終端装置の上りデータの送信用に帯域を割り当てる。
【0025】
本発明の一態様は、帯域割当装置が実行する帯域割当方法であって、上りデータを低遅延で転送する必要がある加入者線終端装置である第1加入者線終端装置の上りデータの送信に関するスケジューリング情報を取得するステップと、上りデータを低遅延で転送する必要がない加入者線終端装置である第2加入者線終端装置から、第2加入者線終端装置の上りデータの送信に関する要求量を表す情報を、予め定められた最大往復時間以上のサイクルである要求量受信サイクルで受信するステップと、前記要求量受信サイクルよりも短い割当量決定サイクルで、前記スケジューリング情報に基づいて第1加入者線終端装置の上りデータに帯域を割り当て、前記割当量決定サイクルで、前記要求量を表す情報に基づいて第2加入者線終端装置の上りデータに帯域を割り当てるステップとを含む帯域割当方法である。
【0026】
本発明の一態様は、上記の帯域割当方法であって、前記割り当てるステップでは、前記要求量を表す情報の上りデータの送信用に帯域を割り当て、前記要求量を表す情報の上りデータの送信用に割り当てられずに残った帯域を第1加入者線終端装置の上りデータの送信用に割り当て、第1加入者線終端装置の上りデータの送信用に割り当てられずに残った帯域を第2加入者線終端装置の上りデータの送信用に割り当て、第2加入者線終端装置の上りデータの送信用に割り当てられずに残った帯域を第1加入者線終端装置の上りデータの送信用に割り当てる。
【0027】
本発明の一態様は、上記の帯域割当方法であって、前記割り当てるステップは、予め定められた最小データ量を表す情報と予め定められた最大データ量を表す情報とを取得し、前記要求量が前記最小データ量未満である場合、第2加入者線終端装置の上りデータに前記最小データ量の帯域を割り当て、前記要求量が前記最大データ量を超えている場合、第2加入者線終端装置の上りデータに前記最大データ量の帯域を割り当てる。
【0028】
本発明の一態様は、上記の帯域割当装置としてコンピュータを機能させるための帯域割当プログラムである。
【発明の効果】
【0029】
本発明により、連携DBAとSR−DBAとを両立させることが可能である。
【図面の簡単な説明】
【0030】
図1】第1実施形態における、光通信システムの構成例を示す図である。
図2】従来におけるSR−DBA処理と、割当部が実行するSR−DBA処理の例との比較を示す図である。
図3】第1実施形態における、DBA処理のタイミングの例を示す図である。
図4】第1実施形態における、要求量を表す情報を連携処理部から読み出す時刻の例を示す図である。
図5】第1実施形態における、割当量の算出手順の例を示すフローチャートである。
図6】第1実施形態における、LLS用のONUのデータの要求量を取得する手順の例を示すフローチャートである。
図7】第1実施形態における、HLS用のONUのデータの要求量を取得する手順の例を示すフローチャートである。
図8】第1実施形態における、ONUのデータの要求量を更新する手順の例を示すフローチャートである。
図9】第1実施形態における、ONUのデータの要求量を更新するタイミングの例を示す図である。
図10】第1実施形態における、上り送信の固定割当データ量及び追加割当データ量を算出する手順の例を示すフローチャートである。
図11】第1実施形態における、要求量の通知に必要とされるデータ量をHLS用のONUの割り当てる手順の例を示すフローチャートである。
図12】第1実施形態における、LLS用のONUに固定データ量を割り当てる手順の例を示すフローチャートである。
図13】第1実施形態における、HLS用のONUに追加データ量を割り当てる手順の例を示すフローチャートの第1部分である。
図14】第1実施形態における、HLS用のONUに追加データ量を割り当てる手順の例を示すフローチャートの第2部分である。
図15】第1実施形態における、HLS用のONUに追加データ量を割り当てる手順の例を示すフローチャートの第3部分である。
図16】第1実施形態における、LLS用のONUに追加データ量を割り当てる手順の例を示す図である。
図17】第2実施形態における、要求量と割当量との関係の例を示す図である。
図18】第2実施形態における、LLS用のONUの要求量を取得する手順の例を示すフローチャートである。
図19】第2実施形態における、HLS用のONUの要求量を取得する手順の例を示すフローチャートである。
図20】第3実施形態における、HLS用のONUに追加データ量を割り当てる手順の例を示すフローチャートの第1部分である。
図21】第3実施形態における、HLS用のONUに追加データ量を割り当てる手順の例を示すフローチャートの第2部分である。
図22】第3実施形態における、HLS用のONUに追加データ量を割り当てる手順の例を示すフローチャートの第3部分である。
図23】第3実施形態における、HLS用のONUの重み係数を計測する処理を含む、ONUのデータの要求量を取得する手順の例を示すフローチャートである。
図24】第3実施形態における、重み係数と上り遅延との関係の例を示す図である。
【発明を実施するための形態】
【0031】
本発明の実施形態について、図面を参照して詳細に説明する。
(第1実施形態)
図1は、光通信システム1の構成例を示す図である。光通信システム1は、光信号を用いて通信するシステムである。光通信システム1は、上位装置2と、上位装置3と、L2SW4と、OLT5と、1以上のONU6と、1以上のONU7と、1以上の下位装置8と、1以上の下位装置9とを備える。
【0032】
上位装置2は、OLT5に対して上位のLLS用の装置である。上位装置2は、LLS用の下位装置8のスケジューリング情報をOLT5に送信する。上位装置2は、LLS用のONU6が送信した上りデータを、L2SW4を介してOLT5から受信する。
【0033】
上位装置3は、OLT5に対して上位のHLS用の装置である。上位装置3は、HLS用のONU7が上り送信した上りデータを、L2SW4を介してOLT5から受信する。
【0034】
L2SW4は、レイヤ2スイッチである。L2SW4は、上位装置2及びOLT5の間でデータを中継する。L2SW4は、上位装置3及びOLT5の間でデータを中継する。
【0035】
OLT5は、端局装置である。OLT5は、上り送信に関する制御を実行する。OLT5は、連携DBA用割当を実行することによって、LLS用のONU6の上りデータの帯域をONU6に割り当てる。OLT5は、SR−DBA用割当を実行することによって、HLS用のONU7の上りデータの帯域をONU7に割り当てる。
【0036】
ONU6は、LLS用の加入者線終端装置である。ONU6は、下位装置8から受信した上りデータを、OLT5から通知される割当量に基づいて送信する。ONU6の上りデータは、低遅延で転送される必要がある。
【0037】
ONU7は、HLS用の加入者線終端装置である。ONU7は、下位装置9から受信した上りデータを、OLT5から通知される割当量に基づいて送信する。ONU7の上りデータは、低遅延で転送される必要はない。
【0038】
下位装置8は、OLT5に対して下位のLLS用の装置である。下位装置8は、ユーザ端末(不図示)との無線通信を実行する。下位装置8は、ユーザ端末から受信したモバイルデータを、上りデータとしてONU6に送信する。下位装置8の上りデータは、低遅延で転送される必要がある。
【0039】
下位装置9は、OLT5に対して下位のHLS用の装置である。下位装置9は、ユーザ端末(不図示)との無線通信を実行する。下位装置8は、ユーザ端末から受信したモバイルデータを、上りデータとしてONU7に送信する。下位装置9の上りデータは、低遅延で転送される必要はない。
【0040】
次に、OLT5の構成の詳細を説明する。
OLT5は、連携処理部50と、通信部51と、要求量受信部52と、ONU管理部53と、割当部54とを備える。
【0041】
各機能部は、CPU(Central Processing Unit)等のプロセッサが、記憶部に記憶されたプログラムを実行することにより実現される。各機能部は、LSI(Large Scale Integration)やASIC(Application Specific Integrated Circuit)等のハードウェアを用いて実現されてもよい。
【0042】
連携処理部50は、スケジューリング情報を上位装置2から取得する取得部である。連携処理部50は、LLS用の下位装置8に対する、上りデータ受信時刻及び上りデータ量を表す情報を、無線送信周期ごとにスケジューリング情報から抽出する。
【0043】
通信部51は、上りデータの送信に関する要求量の通知を要求する指示を、ONU7に送信する。通信部51は、ONU7の上りデータの送信に関する要求量を表す情報を、ONU7から受信する。通信部51は、ONU7の上りデータの送信に関する要求量を表す情報を、要求量受信部52に出力する。
【0044】
なお、通信部51は、ONU6の上りデータの送信に関する要求量を表す情報を、ONU6から受信してもよい。
【0045】
通信部51は、割当部54によって割り当てられた上りデータの割当量を、例えば割当量算出サイクル(割当量決定サイクル)ごとに、ONU6及びONU7に通知する。すなわち、通信部51は、ONU6の上りデータの割当量を表す情報を、例えば割当量算出サイクルごとに、ONU6に送信する。通信部51は、ONU7の上りデータの割当量を表す情報を、例えば割当量算出サイクルごとに、ONU7に送信する。
【0046】
通信部51は、ONU6から取得された上りデータを、L2SW4を介して上位装置2に送信する。通信部51は、ONU7から取得された上りデータを、L2SW4を介して上位装置3に送信する。
【0047】
要求量受信部52は、上りデータの送信に関する要求量を表す情報を、通信部51から取得する。要求量受信部52は、上りデータの送信に関する要求量を表す情報を、ONUごと記憶する。要求量受信部52は、上りデータの送信に関する要求量を表す情報を通信部51から新たに取得した場合、その上りデータの送信に関する要求量を表す情報を、ONUごとに更新する。要求量受信部52は、割当部54から指定されたONUの上りデータの送信に関する要求量を表す情報を、割当部54に出力する。
【0048】
ONU管理部53は、例えばフラッシュメモリ、HDD(Hard Disk Drive)などの不揮発性の記録媒体(非一時的な記録媒体)を有する。ONU管理部53は、例えば、RAM(Random Access Memory)やレジスタなどの揮発性の記録媒体を有してもよい。
【0049】
ONU管理部53は、例えば、プログラム及びデータテーブルを記憶する。データテーブルでは、OLT5に接続することが可能であるONUの固有識別子と、ONUがLLS用のONUであるか否かを表す設定値(ONU_TYPE)と、論理リンク識別子とが対応づけられている。固有識別子と設定値(ONU_TYPE)とは、外部装置等によってデータテーブルに予め記録される。論理リンク識別子は、OLTとONUとの接続が確立された場合に、そのONUに一意に付与される。
【0050】
なお、OLTに接続された際にONUに付与される論理リンク識別子がONU固有の識別子として扱える場合には、データテーブルでは、固有識別子が記録されずに、論理リンク識別子と設定値(ONU_TYPE)とが記録されていてもよい。
【0051】
ONU管理部53は、OLT5に接続済みであるONUの数を計測する。ONU管理部53は、OLT5に接続済みであるONUの数を、割当部54に通知する。ONU管理部53は、論理リンク識別子を割当部54から通知された場合、通知された論理リンク識別子に対応付けられた設定値(ONU_TYPE)を、データテーブルから読み出して通知する。
【0052】
割当部54は、LLS用のONU6の上りデータの送信に関する要求量を表す情報(上りデータ受信時刻及び上りデータ量から成る情報)を、所定の割当量算出サイクルごとに、連携処理部50から取得する。割当部54は、HLS用のONU7の上りデータの送信に関する要求量を表す情報(バッファ蓄積データ量を表す情報)を、所定の割当量算出サイクルごとに、要求量受信部52から取得する。
【0053】
割当部54は、LLS用のONU6の上りデータの送信に関する要求量を表す情報に基づいて、ONU6の上りデータの割当量を決定する。割当部54は、HLS用のONU7の上りデータの送信に関する要求量を表す情報に基づいて、ONU7の上りデータの割当量を決定する。割当部54は、決定された割当量を表す情報を、通信部51に出力する。
【0054】
上りデータの割当量をONUごとに決定する処理では、HLS用のONU7の上りデータの送信に関する要求量を通知するためのデータ量の割当(要求量通知用割当)以外に関して、割当部54は、LLS用のONU6の上りデータの帯域の割当(連携DBA用割当)を、HLS用のONU7の上りデータの帯域の割当(SR−DBA用割当)よりも優先して実行する。
【0055】
例えば、割当部54は、LLS用の全てのONU6の上りデータの送信に関する要求量が0である期間において、HLS用のONU7の上りデータの送信に関する要求量に基づいて、HLS用のONU7の上りデータの帯域の割当(SR−DBA用割当)を実行する。LLS用のONU6の上りデータの送信に関する要求量とHLS用のONU7の上りデータの送信に関する要求量とがいずれも0である場合には、割当部54は、LLS用のONU6の上りデータの帯域を、LLS用のONU6に対して均等に割り当てる。
【0056】
HLS用のONU7の上りデータの送信に関する要求量を通知するためのデータ量の割当(要求量通知用割当)の割当サイクル番号は、事前に決定される番号である。要求量通知用割当の割当サイクル番号は、式(1)のように表される番号である。
【0057】
【数1】
【0058】
図2は、従来におけるSR−DBA処理と、割当部54が実行するSR−DBA処理の例との比較を示す図である。図2の上段は、従来におけるSR−DBA処理を表す。図2の下段は、割当部54が実行するSR−DBA処理を表す。
【0059】
従来におけるSR−DBA処理では、OLTは、OLTに接続されている全てのONUから要求量を受信した後で、上りデータの割当量の算出を開始する。したがって、OLTは、要求量受信処理と割当量算出処理とを、同一のDBAサイクル内で実行する。従来におけるSR−DBA処理では、OLTは、要求量受信処理の完了を割当量算出処理の起動トリガとする。
【0060】
これに対して、割当部54が実行するSR−DBA処理では、割当部54は、要求量受信処理と割当量算出処理とを、互いに異なるDBAサイクル内で実行する。すなわち、割当部54は、要求量受信サイクルと割当量算出サイクルとを分離して、要求量受信サイクルと割当量算出サイクルとを実行する。
【0061】
要求量受信処理の周期(要求量受信サイクル)である仮想DBAサイクルの時間長は、従来におけるSR−DBA処理のDBAサイクル長と同一である。割当量算出処理の周期(割当量算出サイクル)の時間長は、連携DBAのDBAサイクルの時間長と同一である。このように、割当部54は、SR−DBAの割当量算出サイクルのみを連携DBAのサイクルと同一のサイクルで実行することによって、連携DBAとSR−DBAとを融合する。
【0062】
割当量算出処理では、割当部54は、割当開始時刻(割当量算出サイクルの先頭時刻)と要求量受信完了時刻とを、割当量算出サイクル(実DBAサイクル)ごとに比較する。割当部54は、要求量受信完了時刻よりも割当開始時刻が大きい場合(割当開始時刻が要求量受信完了時刻よりも後である場合)、上りデータの送信に関する要求量を表す情報を取得する。割当部54は、上りデータの送信に関する要求量を表す情報に基づいて、上りデータの割当量を算出する。
【0063】
割当量算出サイクルの時間長が連携DBAのDBAサイクルの時間長と同一であることによって、従来におけるDBAサイクルよりも割当量算出サイクル(実DBAサイクル)が短くなるので、割当部54は、同一の割当量算出サイクルでは帯域を割り当て切れない場合がある。このため、割当部54は、割当量算出処理では、割り当て切れなかった帯域の上りデータ量の情報を保持し、次の割当量算出サイクルにおける上りデータの送信に関する要求量として、上りデータ量を繰り越す。
【0064】
図3は、DBA処理のタイミングの例を示す図である。要求量受信部52は、要求量受信100処理を実行する。要求量受信100の完了時刻以降の割当量算出サイクルの先頭時刻から、要求量受信サイクルの末尾時刻から最大RTTだけ前の時刻までの期間において、割当部54は、連携DBA用割当101によってONU6に割り当てられていない帯域(残余帯域)の有無に関係なく、HLS用のONU7の要求量通知用の割り当て(要求量通知用割当102)を実行する。
【0065】
図3では、割当部54は、同一の割当量算出サイクルにおいて、連携DBA用割当101とSR−DBA用割当103とを実行する。要求量受信サイクルにおいて、割当部54は、要求量通知用割当102によって割り当てられた帯域以外の帯域であって、連携DBA用割当101によってONU6に割り当てられていない帯域(残余帯域)を、SR−DBA用割当103によってONU7に割り当てる。
【0066】
割当部54は、連携DBA用割当101とSR−DBA用割当103との両方で余った帯域を、更なる連携DBA用割当によってLLS用のONU6に割り当てる。連携DBA用割当101とSR−DBA用割当103との両方で余った帯域をLLS用のONU6に割り当てる理由は、連携DBAがSR−DBAよりも低遅延性が求められるからである。
【0067】
図4は、要求量を表す情報を連携処理部50から読み出す時刻の例を示す図である。要求量を連携処理部50から読み出す時刻「ReadTime」は、割当対象とする期間の末尾時刻(割当量算出サイクルの末尾時刻)から、割当サイクル長を減算した結果の時刻(割当サイクル長だけ前の時刻)を表す変数である。
【0068】
割当部54が上りデータの割当対象とする期間の最小単位(以下「割当サイクル」という。)の時間長(以下「割当サイクル長」という。)は、予め定められる。割当サイクルにおいてLLS用のONU6に下位装置8から到着し得る上りデータの上りデータ量の最小値(以下「最小到着量」という。)は、予め定められる。
【0069】
割当サイクル長は、割当量算出サイクルが複数に分割された時間長である。割当量算出サイクルの時間長は、下位装置8の無線送信周期(上位装置2及び下位装置8の間で規定される上り送信スケジューリング周期以下の周期)の時間長と同一である。分割数は、LLS用のONU6の上りデータの割当サイクルの数(以下「LLS割当サイクル数」という。)である。
【0070】
以下、割当サイクル長で要求量受信サイクルを除算して得られる整数を、「HLS割当サイクル数」という。連携DBAのDBAサイクルの時間長は、「割当サイクル長×LLS割当サイクル数」と同値である。SR−DBAのDBAサイクルの時間長は、「割当サイクル長×HLS割当サイクル数」と同値である。
【0071】
次に、光通信システム1の動作を説明する。
図5は、割当量の算出手順の例を示すフローチャートである。割当部54は、図5に示されたフローチャートの動作を、割当量算出サイクルごとに実行する。
【0072】
割当部54は、LLS用のONU6の上りデータの送信に関する要求量を表す情報(上りデータ受信時刻及び上りデータ量)を、連携処理部50から取得する。割当部54は、HLS用のONU7の上りデータの送信に関する要求量を表す情報を、要求量受信部52から取得する(ステップS101)。
【0073】
要求量受信部52及び割当部54は、上りデータの送信に関する要求量(RequestSize)を表す情報を更新する(ステップS102)。割当部54は、上り送信を許可される上りデータ量を、ONUごとに算出する(ステップS103)。割当部54は、各ONUのその上りデータ量に基づいて、例えば非特許文献2に示された処理のように、各ONUの上り送信の開始時刻を算出する(ステップS104)。割当部54は、LLS用の現在の割当サイクル番号(以下「LLS現在割当サイクル番号」という。)をインクリメントする。割当部54は、HLS用の現在の割当サイクル番号(以下「HLS現在割当サイクル番号」という。)をインクリメントする(ステップS105)。
【0074】
割当部54は、HLS現在割当サイクル番号とHLS割当サイクル数とが等しいか否かを判定する(ステップS106)。HLS現在割当サイクル番号とHLS割当サイクル数とが異なる場合(ステップS106:NO)、割当部54は、ステップS108に処理を進める。HLS現在割当サイクル番号とHLS割当サイクル数とが等しい場合(ステップS106:YES)、割当部54は、HLS現在割当サイクル番号を0にする(ステップS107)。なお、HLS現在割当サイクル番号は、本フローの終了に達しても0にクリアされず、保持されることとする。
【0075】
割当部54は、LLS現在割当サイクル番号とLLS割当サイクル数とが等しいか否かを判定する(ステップS108)。LLS現在割当サイクル番号とLLS割当サイクル数とが異なる場合(ステップS108:NO)、割当部54は、ステップS102に処理を戻す。LLS現在割当サイクル番号とLLS割当サイクル数とが等しい場合(ステップS108:YES)、割当部54は、図5に示された処理を終了する。LLS現在割当サイクル番号は、HLS現在割当サイクル番号と異なり、図5に示されたフローチャートの終了に達すると、0にクリアされる。
【0076】
以下、変数「id」は、OLT5に接続されているONUに一意に付与される識別情報を表す。この識別情報は、割当部54における内部IDである。
【0077】
図6は、LLS用のONU6のデータの要求量を取得する手順(図5におけるステップS101)の例を示すフローチャートである。以下のフローチャートの判断処理の進み先に記載された文字又は数字は、同一の文字又は数字が記載されたステップの処理に進むことを示している。例えば、図6のステップS203の判断処理の進み先に記載された文字「A」は、図7において同一の文字である「A」が記載されたステップS301の処理に進むことを示している。
【0078】
割当部54は、変数「id」に0を代入する(ステップS201)。割当部54は、変数「id」とOLT5に接続されているONUの数とが等しいか否かを判定する(ステップS202)。変数「id」とOLT5に接続されているONUの数とが等しい場合(ステップS202:YES)、割当部54は、図6に示された処理を終了する。変数「id」とOLT5に接続されているONUの数とが異なる場合(ステップS202:NO)、割当部54は、論理リンク識別子[id]のONU_TYPEがLLSを表しているか否かを判定する(ステップS203)。
【0079】
論理リンク識別子[id]のONU_TYPEがHLSを表している場合(ステップS203:YES)、割当部54は、図7のステップS301に処理を進める。論理リンク識別子[id]のONU_TYPEがLLSを表している場合(ステップS203:YES)、割当部54は、変数「ReadTime」に、「割当量算出サイクル先頭時刻+(LLS割当サイクル数−1)×割当サイクル長」の結果を代入する(ステップS204)。割当部54は、論理リンク識別子[id]における変数「ReadTime」以降の要求量を表す情報を、連携処理部50から取得する(ステップS205)。
【0080】
上位装置2は、変数「ReadTime」と、対象ONUの論理リンク識別子(論理リンク識別子[id])とを、連携処理部50に通知する。連携処理部50は、時刻「ReadTime」以降の上りデータ受信時刻を表す情報を検索する。連携処理部50は、時刻「ReadTime」以降の上りデータ受信時刻を表す情報が連携処理部50のメモリに存在する場合、その上りデータ受信時刻と上りデータ量とを、要求量を表す情報として割当部54に通知する。重複読み出しを避けるために、連携処理部50は、割当部54にに通知された上りデータ受信時刻を表す情報と上りデータ量を表す情報とを、連携処理部50のメモリから消去する。
【0081】
時刻「ReadTime」以降の上りデータ受信時刻を表す情報が連携処理部50のメモリに存在しない場合、連携処理部50は、その上りデータ受信時刻「0」と上りデータ量「0」とを、要求量を表す情報として割当部54に通知する。
【0082】
割当部54は、変数「RequestSizeTmp[id]」に、取得された要求量の上りデータ量を代入する。割当部54は、変数「RequestTime[id]」に、取得された要求量の上りデータ受信時刻を代入する(ステップS206)。割当部54は、変数「id」をインクリメントする(ステップS207)。割当部54は、ステップS202に処理を戻す。
【0083】
図7は、HLS用のONU7のデータの要求量を取得する手順(図5におけるステップS101)の例を示すフローチャートである。割当部54は、HLS現在割当サイクル番号が0であるか否かを判定する。すなわち、割当部54は、現在時刻がSR−DBAのDBAサイクルの先頭時刻であるか否かを判定する(ステップS301)。HLS現在割当サイクル番号が0でない場合(ステップS301:NO)、割当部54は、図6のステップS207に処理を戻す。
【0084】
HLS現在割当サイクル番号が0である場合(ステップS301:YES)、割当部54は、論理リンク識別子[id]の要求量を、要求量受信部52から取得する(ステップS302)。割当部54は、論理リンク識別子[id]の要求量(上りデータ量)を、変数「RequestSizeTmp[id]」に代入する(ステップS303)。割当部54は、変数「RequestSizeTmp[id]」の値が変数「AllocatedSize[id]」の値よりも大きいか否かを判定する(ステップS304)。
【0085】
変数「RequestSizeTmp[id]」の値が変数「AllocatedSize[id]」の値よりも大きい場合(ステップS304:YES)、割当部54は、論理リンク識別子[id]の要求量(RequestSize)の値から、割り当てられた上りデータ量(AllocatedSize[id])の値を減算する。
【0086】
ここで、論理リンク識別子[id]の要求量の値から、割り当てられたデータ量(AllocatedSize[id])を割当部54が減算する理由は、通知時点においてONUのバッファに蓄積されている上りデータ量をONUが要求量としてOLT5に通知するので、論理リンク識別子[id]の要求量には、既に送信が確定しているデータも含まれているためである(ステップS305)。
【0087】
なお、送信を確定しているデータをONUが除去して要求量としてOLT5に通知している場合、ステップS305において、割当部54は、論理リンク識別子[id]の要求量(RequestSize)の値から、割り当てられたデータ量(AllocatedSize[id])を減算しない。
【0088】
変数「RequestSizeTmp[id]」の値が変数「AllocatedSize[id]」の値以下である場合(ステップS304:NO)、割当部54は、変数「RequestSizeTmp[id]」に0を代入する(ステップS306)。
【0089】
以下、割当サイクルにおいて変数「RequestSize」が0でないLLS用のONUの数を「LLS有効ONU数」という。以下、割当サイクルにおいて変数「RequestSize」が0でないHLS用のONUの数を「HLS有効ONU数」という。変数「RequestSize」の値とは関係なく、OLTに接続されているLLS用のONUの数を「LLS接続ONU数」という。
【0090】
図8は、ONUのデータの要求量を更新する手順(図5におけるステップS102)の例を示すフローチャートである。割当部54は、変数「id」に0を代入し、変数「LLS有効ONU数」に0を代入し、変数「HLS有効ONU数」に0を代入し、変数「LLS接続ONU数」に0を代入する(ステップS401)。
【0091】
割当部54は、変数「id」と接続されているONUの数とが等しいか否かを判定する(ステップS402)。変数「id」と接続されているONUの数とが等しい場合(ステップS401:YES)、割当部54は、図8に示された処理を終了する。変数「id」と接続されているONUの数とが異なる場合(ステップS401:NO)、割当部54は、論理リンク識別子[id]の設定値(ONU_TYPE)がLLSを表すか否かを判定する(ステップS403)。
【0092】
論理リンク識別子[id]の設定値(ONU_TYPE)がLLSを表す場合(ステップS403:YES)、割当部54は、割当サイクル先頭時刻が時刻「RequestTime[id]」よりも前であるか否かを判定する(ステップS404)。割当サイクル先頭時刻が時刻「RequestTime[id]」よりも前である場合(ステップS404:YES)、割当部54は、ステップS407に処理を進める。
【0093】
割当サイクル先頭時刻が時刻「RequestTime[id]」以降である場合(ステップS404:NO)、割当部54は、要求量を表す変数「RequestSize[id]」の値に、変数「RequestSizeTmp[id]」の値を加算する(ステップS405)。割当部54は、変数「RequestSizeTmp[id]」の値を0にする(ステップS406)。
【0094】
割当部54は、変数「RequestSize[id]」の値が0より大きいか否かを判定する(ステップS407)。変数「RequestSize[id]」の値が0以下である場合(ステップS407:NO)、割当部54は、ステップS409に処理を進める。変数「RequestSize[id]」の値が0より大きい場合(ステップS407:YES)、割当部54は、変数「LLS有効ONU数」の値をインクリメントする(ステップS408)。
【0095】
割当部54は、変数「LLS接続ONU数」の値をインクリメントする(ステップS409)。割当部54は、変数「id」の値をインクリメントする(ステップS410)。割当部54は、ステップS402に処理を戻す。
【0096】
論理リンク識別子[id]の設定値(ONU_TYPE)がHLSを表す場合(ステップS403:NO)、割当部54は、変数「HLS現在割り当てサイクル番号」が0と等しいか否かを判定する(ステップS411)。変数「HLS現在割り当てサイクル番号」が0とは異なる場合(ステップS411:NO)、割当部54は、ステップS413に処理を進める。変数「HLS現在割り当てサイクル番号」が0と等しい場合(ステップS411:YES)、割当部54は、変数「RequestSize[id]」の値に、変数「RequestSizeTmp[id]」の値を代入する(ステップS412)。
【0097】
割当部54は、変数「RequestSize[id]」の値が0より大きいか否かを判定する(ステップS413)。変数「RequestSize[id]」の値が0以下である場合(ステップS413:NO)、割当部54は、ステップS410に処理を進める。
【0098】
変数「RequestSize[id]」の値が0より大きい場合(ステップS407:YES)、割当部54は、変数「HLS有効ONU数」の値をインクリメントする(ステップS414)。割当部54は、ステップS410に処理を進める。
【0099】
図9は、ONUのデータの要求量を更新するタイミングの例を示す図である。割当部54は、割当サイクル先頭時刻が時刻「RequestTime」以降となった場合、LLS用のONUの変数「RequestSize」を更新する。割当部54は、HLS現在割当サイクル番号が0である場合、HLS用のONUの変数「RequestSize」の値を更新する。すなわち、割当部54は、SR−DBAのDBAサイクル(要求量受信サイクル)の先頭にて、HLS用のONUの変数「RequestSize」の値を更新する。
【0100】
図10は、上り送信のデータ量固定割当データ量及び追加割当データ量を算出する手順の例を示すフローチャートである。割当部54は、LLS用のONUの残余分(LLS用の全てのONU6の要求量「RequestSize」が0)になった場合、HLS用のONU7の要求量に基づいて、HLS用のONU7に上りデータ量を割り当てる。さらに、両者で余った上りデータ量をLLS用のONU6に均等に割り当てるように、追加割当データ量に関して、HLS用の追加割当処理(図13図14及び図15)を先に実行した後、LLS用の追加割当処理(図16)を実行する。
【0101】
割当部54は、図11を用いて後述されるように、HLS用のONUの要求量の通知に必要とされるデータ量(HLS固定割当データ量)を、HLS用のONUに割り当てる(ステップS501)。割当部54は、図12を用いて後述されるように、LLS用のONUの固定割当データ量(LLS固定割当データ量)を、LLS用のONUに割り当てる(ステップS502)。
【0102】
割当部54は、図13図14及び図15を用いて後述されるように、HLS用のONUの上りデータの送信に関する要求量に応じて適応的に、残った未割当のデータ量をHLS用のONUに追加割当する(ステップS503)。割当部54は、図16を用いて後述されるように、LLS用のONUの上りデータの送信に関する要求量に応じて適応的に、残った未割当のデータ量をLLS用のONUに追加割当する(ステップS504)。
【0103】
なお、図10から図16までまでの各フローチャートにおいて、説明を簡単にするために、誤り訂正のためのパリティビット分を含まない割り当てが記載されている。図10から図16までの各フローチャートは、パリティビットを含む割り当てのフローチャートでもよい。
【0104】
図11は、要求量の通知に必要とされるデータ量をHLS用のONU7に割り当てる手順の例を示すフローチャートである。以下では、要求量の通知に必要とされるデータ量を「要求量通知用割当データ量」と表記する。以下では、割当サイクル内にて割当可能なデータ量のうち、未割当のデータ量を示す値を「rGrantCycleLength」と表記する。以下では、バースト・オーバヘッド(Burst Overhead)を「BOH」と表記する。
【0105】
割当部54は、変数「rGrantCycleLength」に、割当サイクル長において送信できる最大データ量を代入する(ステップS601)。割当部54は、HLS現在割当サイクル番号と要求量通知用割当サイクル番号とが等しいか否かを判定する(ステップS602)。HLS現在割当サイクル番号と要求量通知用割当サイクル番号とが異なる場合(ステップS602:NO)、割当部54は、図11に示された処理を終了する。
【0106】
HLS現在割当サイクル番号と要求量通知用割当サイクル番号とが等しい場合(ステップS602:YES)、割当部54は、変数「id」の値を0にする(ステップS603)。割当部54は、変数「id」の値と変数「接続ONU数」の値とが等しいか否かを判定する(ステップS604)。変数「id」の値と変数「接続ONU数」の値とが等しい場合(ステップS604:YES)、割当部54は、図11に示された処理を終了する。
【0107】
変数「id」の値と変数「接続ONU数」の値とが異なる場合(ステップS604:NO)、割当部54は、論理リンク識別子[id]の設定値(ONU_TYPE)がLLSを表すか否かを判定する(ステップS605)。論理リンク識別子[id]の設定値(ONU_TYPE)がLLSを表す場合(ステップS605:YES)、割当部54は、ステップS604に処理を戻す。論理リンク識別子[id]の設定値(ONU_TYPE)がHLSを表す場合(ステップS605:NO)、割当部54は、変数「割当データ量[論理リンク識別子[id]]」の値に、変数「要求量通知用割当データ量+BOH」の値を代入する。割当部54は、変数「要求量通知要求フラグ[論理リンク識別子[id]]」に1を代入する。要求量通知要求フラグが1であるとは、要求量の通知をONUに指示することを意味する(ステップS606)。
【0108】
割当部54は、変数「rGrantCycleLength」の値から、変数「割り当てデータ量[論理リンク識別子[id]]」の値を減算する。割当部54は、変数「AllocatedSize[id]」の値を0にする(ステップS607)。割当部54は、変数「id」の値をインクリメントする(ステップS608)。割当部54は、ステップS604に処理を戻す。
【0109】
図12は、LLS用のONU6に固定データ量を割り当てる手順の例を示すフローチャートである。要求量「RequestSize」の値とは無関係に、割当サイクルごとにLLS用のONUに割り当てるデータ量を、以下では「LLS最小割当データ量」と表記する。
【0110】
割当部54は、変数「id」の値と変数「接続ONU数」の値とが等しいか否かを判定する(ステップS701)。変数「id」の値と変数「接続ONU数」の値とが等しい場合(ステップS701:YES)、割当部54は、図12に示された処理を終了する。変数「id」の値と変数「接続ONU数」の値とが異なる場合(ステップS701:NO)、割当部54は、論理リンク識別子[id]のONU_TYPEがLLSを表しているか否かを判定する(ステップS702)。論理リンク識別子[id]のONU_TYPEがHLSを表している場合(ステップS702:NO)、割当部54は、図12に示された処理を終了する。
【0111】
論理リンク識別子[id]のONU_TYPEがLLSを表している場合(ステップS702:YES)、割当部54は、変数「割当データ量[論理リンク識別子[id]]」の値に、変数「LLS最小割当データ量+BOH」の値を代入する(ステップS703)。割当部54は、変数「rGrantCycleLength」の値から、変数「割当データ量[論理リンク識別子[id]]の値を減算する(ステップS704)。割当部54は、変数「id」の値をインクリメントする(ステップS705)。割当部54は、ステップS701に処理を戻す。
【0112】
図13は、HLS用のONU7に追加データ量を割り当てる手順の例を示すフローチャートの第1部分である。固定割当データ量計算(図10におけるステップS501及びステップS502)において、バーストオーバヘッドが割当データ量として既に付与されている場合、バーストオーバヘッドが割当データ量として追加付与されないようにするために、割当部54は、未付与のバーストオーバヘッド量「AddBOH」を算出する。
【0113】
図13図14及び図15における追加割当処理では、割当部54は、変数「RequestSize」以上の要求量を割り当てないようにする。割り当ての要求量が変数「RequestSize」よりも小さい場合、割当部54は、割り当てた上りデータ量(要求量)を変数「RequestSize」から減算し、減算された上りデータ量を次の割当サイクルに繰り越す。
【0114】
割当部54は、変数「LLS有効ONU数」の値が0であり、かつ、変数「HLS有効ONU数」の値が0より大きいか否かを判定する(ステップS801)。変数「LLS有効ONU数」の値が0であり、かつ、変数「HLS有効ONU数」の値が0より大きい場合(ステップS801:YES)、割当部54は、変数「HLS現在割り当てサイクル番号」の値と変数「要求量通知用割り当てサイクル番号」の値とが等しいか否かを判定する(ステップS802)。
【0115】
変数「HLS現在割り当てサイクル番号」の値と変数「要求量通知用割り当てサイクル番号」の値とが等しい場合(ステップS802:YES)、割当部54は、未付与のバーストオーバヘッド量の変数「AddBOH」の値を0にする(ステップS803)。割当部54は、ステップS805に処理を進める。
【0116】
変数「HLS現在割り当てサイクル番号」の値と変数「要求量通知用割り当てサイクル番号」の値とが異なる場合(ステップS802:NO)、割当部54は、未付与のバーストオーバヘッド量の変数「AddBOH」の値を、変数「BOH×HLS有効ONU数」の値にする(ステップS804)。割当部54は、ステップS805に処理を進める。
【0117】
割当部54は、変数「rGrantCycleLength」の値が変数「AddBOH」の値よりも大きいか否かを判定する(ステップS805)。変数「rGrantCycleLength」の値が変数「AddBOH」の値よりも大きい場合(ステップS805:YES)、割当部54は、変数「AddGrantSizeHls」に、「(rGrantCycleLength−AddBOH)/HLS有効ONU数」の結果を代入する(ステップS806)。割当部54は、変数「id」の値を0にする(ステップS807)。
【0118】
割当部54は、変数「id」の値と変数「接続ONU数」の値とが等しいか否かを判定する(ステップS808)。変数「id」の値と変数「接続ONU数」の値とが異なる場合(ステップS808:NO)、割当部54は、論理リンク識別子[id]のONU_TYPEがLLSを表しているか否かを判定する(ステップS809)。論理リンク識別子[id]のONU_TYPEがHLSを表している場合(ステップS809:NO)、割当部54は、変数「RequestSize[id]」の値が0よりも大きいか否かを判定する(ステップS810)。変数「RequestSize[id]」の値が0よりも大きい場合(ステップS810:YES)、割当部54は、変数「RequestSize[id]」の値が変数「AddGrantSizeHls」の値より大きいか否かを判定する(ステップS811)。
【0119】
図14は、HLS用のONU7に追加データ量を割り当てる手順の例を示すフローチャートの第2部分である。割当部54は、変数「AddBOH」の値が0より大きいか否かを判定する(ステップS812)。変数「AddBOH」の値が0以下である場合(ステップS812:NO)、割当部54は、変数「割当データ量[論理リンク識別子[id]]」の値に、変数「AddGrantSizeHls」の値を加算する。割当部54は、変数「要求量通知要求フラグ[論理リンク識別子[id]]」の値に0を代入する。割当部54は、変数「AllocatedSizeTmp」の値に、変数「AddGrantSizeHls」の値を代入する。割当部54は、変数「rGrantCycleLength」の値から、変数「AddGrantSizeHls」の値を減算する(ステップS813)。割当部54は、ステップS815に処理を進める。
【0120】
変数「AddBOH」の値が0より大きい場合(ステップS812:YES)、割当部54は、変数「割当データ量[論理リンク識別子[id]]」の値に、変数「AddGrantSizeHls+BOH」の値を代入する。割当部54は、変数「要求量通知要求フラグ[論理リンク識別子[id]]」の値に0を代入する。割当部54は、変数「AllocatedSizeTmp」の値に、変数「AddGrantSizeHls」の値を代入する。割当部54は、変数「rGrantCycleLength」の値から、変数「AddGrantSizeHls+BOH」の値を減算する(ステップS814)。
【0121】
割当部54は、変数「RequestSize[id]」の値から、変数「AddGrantSizeHls」の値を減算する(ステップS815)。割当部54は、変数「HLS現在割り当てサイクル番号」の値が変数「要求量通知用割り当てサイクル番号」の値よりも小さいか否かを判定する(ステップS816)。変数「HLS現在割り当てサイクル番号」の値が変数「要求量通知用割り当てサイクル番号」の値よりも小さい場合(ステップS816:YES)、割当部54は、ステップS818に処理を進める。
【0122】
変数「HLS現在割り当てサイクル番号」の値が変数「要求量通知用割り当てサイクル番号」の値以上である場合(ステップS816:NO)、割当部54は、変数「AllocatedSize[id]」の値に、変数「AllocatedSizeTmpの値を加算する(ステップS817)。割当部54は、変数「id」の値をインクリメントする(ステップS818)。
【0123】
図15は、HLS用のONU7に追加データ量を割り当てる手順の例を示すフローチャートの第3部分である。割当部54は、変数「AddBOH」の値が0より大きいか否かを判定する(ステップS819)。変数「AddBOH」の値が0より大きい場合(ステップS819:YES)、割当部54は、変数「割当データ量[論理リンク識別子[id]]」の値に、変数「RequestSize[id]」の値を代入する。割当部54は、変数「要求量通知要求フラグ[論理リンク識別子[id]]」の値に0を代入する。割当部54は、変数「AllocatedSizeTmp」の値に、変数「RequestSize[id]」の値を代入する。割当部54は、変数「rGrantCycleLength」の値から、変数「RequestSize[id]+BOH」の値を減算する(ステップS820)。
【0124】
変数「AddBOH」の値が0以下である場合(ステップS819:NO)、割当部54は、変数「割当データ量[論理リンク識別子[id]]」の値に、変数「RequestSize[id]」の値を加算する。割当部54は、変数「要求量通知要求フラグ[論理リンク識別子[id]]」の値に0を代入する。割当部54は、変数「AllocatedSizeTmp」の値に、変数「RequestSize[id]」の値を代入する。割当部54は、変数「rGrantCycleLength」の値から、変数「RequestSize[id]」の値を減算する(ステップS821)。割当部54は、変数「RequestSize[id]」の値に0を代入する(ステップS822)。
【0125】
図16は、LLS用のONU6に追加データ量を割り当てる手順の例を示す図である。未割当データ量が存在し、かつ、LLS有効ONU数が0でない場合、割当部54は、要求量を表す変数「RequestSize」が0でないLLS用のONU6のみに対して、未割当データ量を均等に分配する。LLS有効ONU数が0である場合、割当部54は、LLS用の全てのONUに対して、未割当データ量を均等に分配する。
【0126】
割当部54は、変数「rGrantCycleLength」の値が0よりも大きいか否かを判定する(ステップS901)。変数「rGrantCycleLength」の値が0以下である場合(ステップS901:NO)、割当部54は、図16に示された処理を終了する。変数「rGrantCycleLength」の値が0よりも大きい場合(ステップS901:YES)、割当部54は、変数「LLS有効ONU数」の値が0であるか否かを判定する(ステップS902)。
【0127】
変数「LLS有効ONU数」の値が0である場合(ステップS902:YES)、割当部54は、変数「AddGrantSizeHls」に、「rGrantCycleLength/LLS接続ONU数」の結果を代入する(ステップS903)。変数「LLS有効ONU数」の値が0でない場合(ステップS902:NO)、割当部54は、変数「AddGrantSizeHls」に、「rGrantCycleLength/LLS有効ONU数」の結果を代入する(ステップS904)。割当部54は、変数「id」の値を0にする(ステップS905)。
【0128】
割当部54は、変数「id」の値と変数「接続ONU数」の値とが等しいか否かを判定する(ステップS906)。変数「id」の値と変数「接続ONU数」の値とが等しい場合(ステップS906:YES)、割当部54は、図16に示された処理を終了する。変数「id」の値と変数「接続ONU数」の値とが異なる場合(ステップS906:NO)、割当部54は、論理リンク識別子[id]のONU_TYPEがLLSを表しているか否かを判定する(ステップS907)。論理リンク識別子[id]のONU_TYPEがHLSを表している場合(ステップS907:NO)、割当部54は、ステップS913に処理を進める。
【0129】
論理リンク識別子[id]のONU_TYPEがLLSを表している場合(ステップS907:YES)、割当部54は、変数「RequestSize[id]」の値が0よりも大きいか否か、又は、変数「LLS有効ONU数」の値が0であるか否かを判定する(ステップS908)。変数「RequestSize[id]」の値が0以下である、かつ、変数「LLS有効ONU数」の値が0でない場合(ステップS908:NO)、割当部54は、ステップS913に処理を進める。
【0130】
変数「RequestSize[id]」の値が0よりも大きい、又は、変数「LLS有効ONU数」の値が0である場合(ステップS908:YES)、割当部54は、変数「割当データ量[論理リンク識別子[id]]」の値に、変数「AddGrantSizeLls」の値を加算する(ステップS909)。
【0131】
割当部54は、LLS用のONU6に対する上りデータ量について予め定められた最小到着量と変数「AddGrantSizeLls」の値とのうちで小さいほうの値よりも、変数「RequestSize[id]」の値が小さいか否かを判定する(ステップS910)。変数「RequestSize[id]」の値が最小到着量と変数「AddGrantSizeLls」の値とのうちで小さいほうの値以上である場合(ステップS910:NO)、割当部54は、変数「RequestSize[id]」の値から、最小到着量と変数「AddGrantSizeLls」の値とのうちで小さいほうの値を減算する(ステップS911)。
【0132】
最小到着量と変数「AddGrantSizeLls」の値とのうちで小さいほうの値よりも、変数「RequestSize[id]」の値が小さい場合(ステップS910:YES)、割当部54は、変数「RequestSize[id]」に0を代入する(ステップS912)。割当部54は、変数「id」をインクリメントする(ステップS913)。割当部54は、ステップS906に処理を戻す。
【0133】
以上のように、第1実施形態のOLT5(帯域割当装置)は、連携処理部50(取得部)と、要求量受信部52と、割当部54とを備える。連携処理部50は、上りデータを低遅延で転送する必要があるONU6(第1加入者線終端装置)の上りデータの送信に関するスケジューリング情報を取得する。要求量受信部52は、上りデータを低遅延で転送する必要がないONU7(第2加入者線終端装置)から、ONU7の上りデータの送信に関する要求量を表す情報を、最大RTT以上のサイクルである要求量受信サイクルで受信する。割当部54は、要求量受信サイクルよりも短い割当量算出サイクル(割当量決定サイクル)で、スケジューリング情報に基づいてONU6の上りデータに帯域を割り当てる。割当部54は、要求量受信サイクルよりも短い割当量算出サイクル(割当量決定サイクル)で、要求量を表す情報に基づいてONU7の上りデータに帯域を割り当てる。
【0134】
これによって、第1実施形態のOLT5は、連携DBAとSR−DBAとを両立させることが可能である。
【0135】
すなわち、第1実施形態のOLT5は、同一OLT上で、SR−DBAと連携DBAとを仮想的に異なるDBAサイクルで動作させることが可能である。第1実施形態のOLT5は、SR−DBAと連携DBAとの同時運用(融合)による、LLS向けの低遅延とHLS及びFTTH向けの高帯域利用効率とを両立させることが可能である。
【0136】
第1実施形態の割当部54は、要求量通知用割当102において、要求量を表す情報の上りデータの送信用に帯域を割り当ててもよい。割当部54は、要求量を表す情報の上りデータの送信用に割り当てられずに残った帯域を、連携DBA用割当101において、ONU6の上りデータの送信用に割り当ててもよい。割当部54は、ONU6の上りデータに割り当てられずに残った帯域を、SR−DBA用割当103において、ONU7の上りデータの送信用に割り当ててもよい。割当部54は、ONU7の上りデータの送信用に割り当てられずに残った帯域を、ONU6の上りデータに例えば均等に割り当ててもよい。
【0137】
また、第1の実施形態において、ONU7は、HLS用の下位装置9と接続されているが、FTTH用の下位装置と接続されても良い。この場合、上位装置3は同様にFTTH用の装置である。また、FTTH用の上位装置とHLS用の上位装置とは、光通信システム1において混在しても良い。
【0138】
(第2実施形態)
第2実施形態では、HLS用のONU7に対して、最低割当データ量(以下「最小データ量」という。)から最大割当データ量(以下「最大データ量」という。)までの範囲内で割当部54が割り当てる点が、第1実施形態と相違する。第2実施形態では、第1実施形態との相違点を説明する。
【0139】
図17は、要求量と割当量(割当データ量)との関係の例を示す図である。最小データ量は、HLS用のONU7からOLT5に通知された要求量の有無に関係なく、HLS用のONU7に割り当てるデータ量である。最大データ量は、HLS用のONU7に割り当て可能であるデータ量の最大値である。最小データ量及び最大データ量は、HLS用のONU7ごとに、外部装置等によって予め定められた値である。追加割当可能である割当データ量の上限(割当上限)は、LLS用のONU6の残余データ量(LLS用の全てのONU6の要求量「RequestSize」が0であることによって余る帯域))に応じて変化する。すなわち、割当データ量の残余(残余データ量)次第で、追加割当が可能である割当データ量の上限(割当上限)が変化する。最大データ量は、残余データ量が最大データ量よりも大きい場合のみ有効である。最小データ量は、残余データ量が最小データ量よりも大きい場合のみ有効である。
【0140】
図18は、LLS用のONU6の要求量を取得する手順の例を示すフローチャートである。ステップS1001からステップS1007までの動作は、図6におけるステップS201からステップS207までの動作と同様である。
【0141】
図19は、HLS用のONU7の要求量を取得する手順(図5におけるステップS101)の例を示すフローチャートである。割当部54は、HLS現在割当サイクル番号が0であるか否かを判定する。すなわち、割当部54は、現在時刻がSR−DBAのDBAサイクルの先頭時刻であるか否かを判定する(ステップS1101)。HLS現在割当サイクル番号が0でない場合(ステップS1101:NO)、割当部54は、図18のステップS1007に処理を戻す。
【0142】
HLS現在割当サイクル番号が0である場合(ステップS1101:YES)、割当部54は、論理リンク識別子[id]の要求量を、要求量受信部52から取得する(ステップS1102)。割当部54は、論理リンク識別子[id]の要求量(上りデータ量)を、変数「RequestSizeTmp[id]」に代入する(ステップS1103)。割当部54は、変数「RequestSizeTmp[id]」の値が変数「AllocatedSize[id]」の値よりも大きいか否かを判定する(ステップS1104)。
【0143】
変数「RequestSizeTmp[id]」の値が変数「AllocatedSize[id]」の値よりも大きい場合(ステップS1104:YES)、割当部54は、論理リンク識別子[id]の要求量(RequestSize)の値から、割り当てられたデータ量(AllocatedSize[id])の値を減算する(ステップS1105)。
【0144】
変数「RequestSizeTmp[id]」の値が変数「AllocatedSize[id]」の値以下である場合(ステップS1104:NO)、割当部54は、変数「RequestSizeTmp[id]」に0を代入する(ステップS1106)。
【0145】
割当部54は、変数「RequestSizeTmp[id]」の値が変数「最小データ量[論理リンク識別子[id]]」の値よりも大きいか否かを判定する(ステップS1107)。変数「RequestSizeTmp[id]」の値が変数「最小データ量[論理リンク識別子[id]]」の値よりも大きい場合(ステップS1107:YES)、割当部54は、ステップS1109に処理を進める。
【0146】
変数「RequestSizeTmp[id]」の値が変数「最小データ量[論理リンク識別子[id]]」の値以下である場合(ステップS1107:NO)、割当部54は、変数「RequestSizeTmp[id]」に、変数「最小データ量[論理リンク識別子[id]]」の値を代入する(ステップS1108)。割当部54は、変数「RequestSizeTmp[id]」の値が、変数「最大データ量[論理リンク識別子[id]]」の値よりも大きいか否かを判定する(ステップS1109)。
【0147】
変数「RequestSizeTmp[id]」の値が、変数「最大データ量[論理リンク識別子[id]]」の値よりも大きい場合(ステップS1109:YES)、割当部54は、図18に示されているステップS1007に処理を進める。
【0148】
変数「RequestSizeTmp[id]」の値が、変数「最大データ量[論理リンク識別子[id]]」の値以下である場合(ステップS1109:NO)、割当部54は、変数「RequestSizeTmp[id]」に、変数「最大データ量[論理リンク識別子[id]]」の値を代入する(ステップS1110)。割当部54は、図18に示されているステップS1007に処理を進める。
【0149】
以上のように、第2実施形態の割当部54は、予め定められた最小データ量を表す情報と、予め定められた最大データ量を表す情報とを取得する。割当部54は、要求量が最小データ量未満である場合、ONU7の上りデータの送信用に最小データ量の帯域を割り当てる。割当部54は、要求量が最大データ量を超えている場合、ONU7の上りデータの送信用に最大データ量の帯域を割り当てる。
【0150】
これによって、第2実施形態のOLT5は、連携DBAとSR−DBAとを両立させる効率を向上させることが可能である。
【0151】
(第3実施形態)
第3実施形態では、HLS用のONU7の上りデータの追加割当処理において、HLS用のONU7ごとに予め定められた重み係数に応じて割当部54が残余データ量をHLS用のONU7に分配する点が、第1実施形態及び第2実施形態と相違する。第3実施形態では、第1実施形態及び第2実施形態との相違点を説明する。
【0152】
以下、要求量「RequestSize」が0でないHLS用のONUの重み係数(OnuWeight)の和を「OnuWeightSum」と表記する。割当部54は、変数「AddGrantSizeHls」の値を重み係数に応じて算出することによって、HLS用のONU7の割当データ量を決定する。
【0153】
図20は、HLS用のONU7に追加データ量を割り当てる手順の例を示すフローチャートの第1部分である。割当部54は、変数「LLS有効ONU数」の値が0であり、かつ、変数「HLS有効ONU数」の値が0より大きいか否かを判定する(ステップS1201)。変数「LLS有効ONU数」の値が0であり、かつ、変数「HLS有効ONU数」の値が0より大きい場合(ステップS1201:YES)、割当部54は、変数「HLS現在割り当てサイクル番号」の値と変数「要求量通知用割り当てサイクル番号」の値とが等しいか否かを判定する(ステップS1202)。
【0154】
変数「HLS現在割り当てサイクル番号」の値と変数「要求量通知用割り当てサイクル番号」の値とが等しい場合(ステップS1202:YES)、割当部54は、未付与のバーストオーバヘッド量の変数「AddBOH」の値を0にする(ステップS1203)。割当部54は、ステップS1205に処理を進める。
【0155】
変数「HLS現在割り当てサイクル番号」の値と変数「要求量通知用割り当てサイクル番号」の値とが異なる場合(ステップS1202:NO)、割当部54は、未付与のバーストオーバヘッド量の変数「AddBOH」の値を、変数「BOH×HLS有効ONU数」の値にする(ステップS1204)。割当部54は、ステップS1205に処理を進める。
【0156】
割当部54は、変数「rGrantCycleLength」の値が変数「AddBOH」の値よりも大きいか否かを判定する(ステップS1205)。変数「rGrantCycleLength」の値が変数「AddBOH」の値よりも大きい場合(ステップS1205:YES)、割当部54は、変数「AddGrantSizeHls」に、「(rGrantCycleLength−AddBOH)/OnuWeightSum」の結果を代入する(ステップS1206)。割当部54は、変数「id」の値を0にする(ステップS1207)。
【0157】
割当部54は、変数「id」の値と変数「接続ONU数」の値とが等しいか否かを判定する(ステップS1208)。変数「id」の値と変数「接続ONU数」の値とが異なる場合(ステップS1208:NO)、割当部54は、論理リンク識別子[id]のONU_TYPEがLLSを表しているか否かを判定する(ステップS1209)。論理リンク識別子[id]のONU_TYPEがHLSを表している場合(ステップS1209:NO)、割当部54は、変数「AddGrantSizeHls」に、「AddGrantSizeHlsTmp×重み係数[論理リンク識別子[id]]」の結果を代入する(ステップS1210)。
【0158】
割当部54は、変数「RequestSize[id]」の値が0よりも大きいか否かを判定する(ステップS1211)。変数「RequestSize[id]」の値が0よりも大きい場合(ステップS1211:YES)、割当部54は、変数「RequestSize[id]」の値が変数「AddGrantSizeHls」の値より大きいか否かを判定する(ステップS1212)。
【0159】
図21は、HLS用のONU7に追加データ量を割り当てる手順の例を示すフローチャートの第2部分である。割当部54は、変数「AddBOH」の値が0より大きいか否かを判定する(ステップS1213)。変数「AddBOH」の値が0以下である場合(ステップS1213:NO)、割当部54は、変数「割当データ量[論理リンク識別子[id]]」の値に、変数「AddGrantSizeHls」の値を加算する。割当部54は、変数「要求量通知要求フラグ[論理リンク識別子[id]]」の値に0を代入する。割当部54は、変数「AllocatedSizeTmp」の値に、変数「AddGrantSizeHls」の値を代入する。割当部54は、変数「rGrantCycleLength」の値から、変数「AddGrantSizeHls」の値を減算する(ステップS1214)。割当部54は、ステップS1216に処理を進める。
【0160】
変数「AddBOH」の値が0より大きい場合(ステップS1213:YES)、割当部54は、変数「割当データ量[論理リンク識別子[id]]」の値に、変数「AddGrantSizeHls+BOH」の値を代入する。割当部54は、変数「要求量通知要求フラグ[論理リンク識別子[id]]」の値に0を代入する。割当部54は、変数「AllocatedSizeTmp」の値に、変数「AddGrantSizeHls」の値を代入する。割当部54は、変数「rGrantCycleLength」の値から、変数「AddGrantSizeHls+BOH」の値を減算する(ステップS1215)。
【0161】
割当部54は、変数「RequestSize[id]」の値から、変数「AddGrantSizeHls」の値を減算する(ステップS1216)。割当部54は、変数「HLS現在割り当てサイクル番号」の値が変数「要求量通知用割り当てサイクル番号」の値よりも小さいか否かを判定する(ステップS1217)。変数「HLS現在割り当てサイクル番号」の値が変数「要求量通知用割り当てサイクル番号」の値よりも小さい場合(ステップS1217:YES)、割当部54は、ステップS1219に処理を進める。
【0162】
変数「HLS現在割り当てサイクル番号」の値が変数「要求量通知用割り当てサイクル番号」の値以上である場合(ステップS1217:NO)、割当部54は、変数「AllocatedSize[id]」の値に、変数「AllocatedSizeTmpの値を加算する(ステップS1218)。割当部54は、変数「id」の値をインクリメントする(ステップS1219)。
【0163】
図22は、HLS用のONU7に追加データ量を割り当てる手順の例を示すフローチャートの第3部分である。割当部54は、変数「AddBOH」の値が0より大きいか否かを判定する(ステップS1220)。変数「AddBOH」の値が0より大きい場合(ステップS1220:YES)、割当部54は、変数「割当データ量[論理リンク識別子[id]]」の値に、変数「RequestSize[id]」の値を代入する。割当部54は、変数「要求量通知要求フラグ[論理リンク識別子[id]]」の値に0を代入する。割当部54は、変数「AllocatedSizeTmp」の値に、変数「RequestSize[id]」の値を代入する。割当部54は、変数「rGrantCycleLength」の値から、変数「RequestSize[id]+BOH」の値を減算する(ステップS1221)。
【0164】
変数「AddBOH」の値が0以下である場合(ステップS1220:NO)、割当部54は、変数「割当データ量[論理リンク識別子[id]]」の値に、変数「RequestSize[id]」の値を加算する。割当部54は、変数「要求量通知要求フラグ[論理リンク識別子[id]]」の値に0を代入する。割当部54は、変数「AllocatedSizeTmp」の値に、変数「RequestSize[id]」の値を代入する。割当部54は、変数「rGrantCycleLength」の値から、変数「RequestSize[id]」の値を減算する(ステップS1222)。割当部54は、変数「RequestSize[id]」の値に0を代入する(ステップS1223)。
【0165】
図23は、HLS用のONU7の重み係数を計測する処理を含む、ONUのデータの要求量を取得する手順の例(図5におけるステップS102)を示すフローチャートである。割当部54は、変数「id」に0を代入し、変数「LLS有効ONU数」に0を代入し、変数「HLS有効ONU数」に0を代入し、変数「LLS接続ONU数」に0を代入し、変数「OnuWeightSum」に0を代入する(ステップS1301)。
【0166】
割当部54は、変数「id」と接続されているONUの数とが等しいか否かを判定する(ステップS1302)。変数「id」と接続されているONUの数とが等しい場合(ステップS1301:YES)、割当部54は、図8に示された処理を終了する。変数「id」と接続されているONUの数とが異なる場合(ステップS1301:NO)、割当部54は、論理リンク識別子[id]の設定値(ONU_TYPE)がLLSを表すか否かを判定する(ステップS1303)。
【0167】
論理リンク識別子[id]の設定値(ONU_TYPE)がLLSを表す場合(ステップS1303:YES)、割当部54は、割当サイクル先頭時刻が時刻「RequestTime[id]」よりも前であるか否かを判定する(ステップS1304)。割当サイクル先頭時刻が時刻「RequestTime[id]」よりも前である場合(ステップS1304:YES)、割当部54は、ステップS1307に処理を進める。
【0168】
割当サイクル先頭時刻が時刻「RequestTime[id]」以降である場合(ステップS1304:NO)、割当部54は、要求量を表す変数「RequestSize[id]」の値に、変数「RequestSizeTmp[id]」の値を加算する(ステップS1305)。割当部54は、変数「RequestSizeTmp[id]」の値を0にする(ステップS1306)。
【0169】
割当部54は、変数「RequestSize[id]」の値が0より大きいか否かを判定する(ステップS1307)。変数「RequestSize[id]」の値が0以下である場合(ステップS1307:NO)、割当部54は、ステップS1309に処理を進める。変数「RequestSize[id]」の値が0より大きい場合(ステップS1307:YES)、割当部54は、変数「LLS有効ONU数」の値をインクリメントする(ステップS1308)。
【0170】
割当部54は、変数「LLS接続ONU数」の値をインクリメントする(ステップS1309)。割当部54は、変数「id」の値をインクリメントする(ステップS1310)。割当部54は、ステップS1302に処理を戻す。
【0171】
論理リンク識別子[id]の設定値(ONU_TYPE)がHLSを表す場合(ステップS1303:NO)、割当部54は、変数「HLS現在割り当てサイクル番号」が0と等しいか否かを判定する(ステップS1311)。変数「HLS現在割り当てサイクル番号」が0とは異なる場合(ステップS1311:NO)、割当部54は、ステップS1313に処理を進める。変数「HLS現在割り当てサイクル番号」が0と等しい場合(ステップS1311:YES)、割当部54は、変数「RequestSize[id]」の値に、変数「RequestSizeTmp[id]」の値を代入する(ステップS1312)。
【0172】
割当部54は、変数「RequestSize[id]」の値が0より大きいか否かを判定する(ステップS1313)。変数「RequestSize[id]」の値が0以下である場合(ステップS1313:NO)、割当部54は、ステップS1310に処理を進める。
【0173】
変数「RequestSize[id]」の値が0より大きい場合(ステップS1307:YES)、割当部54は、変数「HLS有効ONU数」の値をインクリメントする。割当部54は、変数「OnuWeightSum」の値に、変数「重み係数[論理リンク識別子[id]]」の値を加算する(ステップS1314)。割当部54は、ステップS1310に処理を進める。
【0174】
図24は、重み係数と上り遅延との関係の例を示す図である。HLS用の各ONU7の重み係数が互いに同じである場合、割当部54は、HLS用の各ONU7に同条件で上りデータ量を割り当てる。HLS用の各ONU7の重み係数が互いに同じである場合、HLS用の各ONU7の上り遅延は同等である。HLS用の各ONU7の重み係数が互いに異なる場合、割当部54は、重み係数が大きいHLS用のONU7を優先して、HLS用のONU7の上りデータの送信用に帯域を割り当てる。重み係数が大きいHLS用のONU7の上りデータの上り遅延は、重み係数が小さいHLS用のONU7の上りデータの上り遅延よりも小さい。
【0175】
以上のように、第3実施形態の割当部54は、ONU7ごとに定められた重み係数と、要求量を表す情報とに基づいて、要求量のデータ量の帯域を上限として、ONU7の上りデータの送信用に帯域を割り当てる。
【0176】
これによって、第3実施形態のOLT5は、連携DBAとSR−DBAとを両立させる効率を向上させることが可能である。
【0177】
以上、この発明の実施形態について図面を参照して詳述してきたが、具体的な構成はこの実施形態に限られるものではなく、この発明の要旨を逸脱しない範囲の設計等も含まれる。
【0178】
上述した実施形態における、OLT、ONU、上位装置及び下位装置をコンピュータで実現するようにしてもよい。その場合、この機能を実現するためのプログラムをコンピュータ読み取り可能な記録媒体に記録して、この記録媒体に記録されたプログラムをコンピュータシステムに読み込ませ、実行することによって実現してもよい。なお、ここでいう「コンピュータシステム」とは、OSや周辺機器等のハードウェアを含むものとする。また、「コンピュータ読み取り可能な記録媒体」とは、フレキシブルディスク、光磁気ディスク、ROM、CD−ROM等の可搬媒体、コンピュータシステムに内蔵されるハードディスク等の記憶装置のことをいう。さらに「コンピュータ読み取り可能な記録媒体」とは、インターネット等のネットワークや電話回線等の通信回線を介してプログラムを送信する場合の通信線のように、短時間の間、動的にプログラムを保持するもの、その場合のサーバやクライアントとなるコンピュータシステム内部の揮発性メモリのように、一定時間プログラムを保持しているものも含んでもよい。また上記プログラムは、前述した機能の一部を実現するためのものであってもよく、さらに前述した機能をコンピュータシステムにすでに記録されているプログラムとの組み合わせで実現できるものであってもよく、FPGA(Field Programmable Gate Array)等のプログラマブルロジックデバイスを用いて実現されるものであってもよい。
【産業上の利用可能性】
【0179】
本発明は、光通信システムに適用可能である。
【符号の説明】
【0180】
1…光通信システム、2…上位装置、3…上位装置、4…L2SW、5…OLT、6…ONU、7…ONU、8…下位装置、9…下位装置、50…連携処理部、51…通信部、52…要求量受信部、53…ONU管理部、54…割当部、100…要求量受信、101…連携DBA用割当、102…要求量通知用割当、103…SR−DBA用割当
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12
図13
図14
図15
図16
図17
図18
図19
図20
図21
図22
図23
図24