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

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

▶ ミツビシ・エレクトリック・アールアンドディー・センター・ヨーロッパ・ビーヴィの特許一覧

特許6238222パケットベースのネットワークにおいて送信タイムスロットを割り当てる方法、イーサネット受動光ネットワーク光回線終端装置、およびコンピュータプログラム
<>
  • 特許6238222-パケットベースのネットワークにおいて送信タイムスロットを割り当てる方法、イーサネット受動光ネットワーク光回線終端装置、およびコンピュータプログラム 図000007
  • 特許6238222-パケットベースのネットワークにおいて送信タイムスロットを割り当てる方法、イーサネット受動光ネットワーク光回線終端装置、およびコンピュータプログラム 図000008
  • 特許6238222-パケットベースのネットワークにおいて送信タイムスロットを割り当てる方法、イーサネット受動光ネットワーク光回線終端装置、およびコンピュータプログラム 図000009
  • 特許6238222-パケットベースのネットワークにおいて送信タイムスロットを割り当てる方法、イーサネット受動光ネットワーク光回線終端装置、およびコンピュータプログラム 図000010
  • 特許6238222-パケットベースのネットワークにおいて送信タイムスロットを割り当てる方法、イーサネット受動光ネットワーク光回線終端装置、およびコンピュータプログラム 図000011
  • 特許6238222-パケットベースのネットワークにおいて送信タイムスロットを割り当てる方法、イーサネット受動光ネットワーク光回線終端装置、およびコンピュータプログラム 図000012
  • 特許6238222-パケットベースのネットワークにおいて送信タイムスロットを割り当てる方法、イーサネット受動光ネットワーク光回線終端装置、およびコンピュータプログラム 図000013
  • 特許6238222-パケットベースのネットワークにおいて送信タイムスロットを割り当てる方法、イーサネット受動光ネットワーク光回線終端装置、およびコンピュータプログラム 図000014
  • 特許6238222-パケットベースのネットワークにおいて送信タイムスロットを割り当てる方法、イーサネット受動光ネットワーク光回線終端装置、およびコンピュータプログラム 図000015
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】6238222
(24)【登録日】2017年11月10日
(45)【発行日】2017年11月29日
(54)【発明の名称】パケットベースのネットワークにおいて送信タイムスロットを割り当てる方法、イーサネット受動光ネットワーク光回線終端装置、およびコンピュータプログラム
(51)【国際特許分類】
   H04L 12/44 20060101AFI20171120BHJP
【FI】
   H04L12/44 200
   H04L12/44 B
【請求項の数】15
【外国語出願】
【全頁数】25
(21)【出願番号】特願2013-71487(P2013-71487)
(22)【出願日】2013年3月29日
(65)【公開番号】特開2013-211848(P2013-211848A)
(43)【公開日】2013年10月10日
【審査請求日】2016年3月18日
(31)【優先権主張番号】12305370.4
(32)【優先日】2012年3月29日
(33)【優先権主張国】EP
(73)【特許権者】
【識別番号】503163527
【氏名又は名称】ミツビシ・エレクトリック・アールアンドディー・センター・ヨーロッパ・ビーヴィ
【氏名又は名称原語表記】MITSUBISHI ELECTRIC R&D CENTRE EUROPE B.V.
(74)【代理人】
【識別番号】100110423
【弁理士】
【氏名又は名称】曾我 道治
(74)【代理人】
【識別番号】100111648
【弁理士】
【氏名又は名称】梶並 順
(74)【代理人】
【識別番号】100147500
【弁理士】
【氏名又は名称】田口 雅啓
(74)【代理人】
【識別番号】100166235
【弁理士】
【氏名又は名称】大井 一郎
(74)【代理人】
【識別番号】100179914
【弁理士】
【氏名又は名称】光永 和宏
(72)【発明者】
【氏名】ロレット、ロマン
【審査官】 大石 博見
(56)【参考文献】
【文献】 国際公開第2012/107340(WO,A1)
【文献】 特開2004−104794(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
H04L 12/44
(57)【特許請求の範囲】
【請求項1】
パケットベースのネットワークにおいて送信タイムスロットを割り当てる方法であって、
前記ネットワークにおいて、時間がスケジューリングサイクルに分割され、各スケジューリングサイクルは複数のタイムスロット(TQ)に分割され、
前記ネットワークは、端末によって管理される複数の論理リンク(LL)を備え、
前記端末は、各論理リンクに、いくつかの授与されたタイムスロット(GrTQ,i)と、いくつかの要求されるタイムスロット(ReqTQ,i)と、理論的送信時刻(TTT)とを関連付け、
前記いくつかの授与されたタイムスロット(GrTQ,i)は、次スケジューリングサイクル(k+1)内でパケットを送信するためにその論理リンクが使うことを許可された資源を表し、
前記いくつかの要求されるタイムスロット(ReqTQ,i)は、スケジュールされていないパケットを送信するためにその論理リンクが要求する資源を表す
方法において、
アクティブな論理リンクは、少なくとも1つの要求されるタイムスロット(ReqTQ,i)を有し、非アクティブな論理リンクは、要求されるタイムスロットを有さず、
スケジュールされた論理リンクは、少なくとも1つの授与されたタイムスロット(GrTQ,i)を有し、スケジュールされていない論理リンクは、授与されたタイムスロット(GrTQ,i)を有さず、
前記方法は、所定の最大サイズの第1の2進木および所定の最大サイズの第2の2進木を使用し、
前記第1の2進木は、スケジュールされていないアクティブな論理リンクを表すリーフを含み、
前記第2の2進木は、スケジュールされたアクティブな論理リンクを表すリーフを含み、前記第2の2進木に含まれる前記リーフは、ヌルでない要求されるタイムスロット(ReqTQ,i)を持つ、アクティブな論理リンクを表すものであり、
前記方法は、
論理リンクに関連するREPORTメッセージの受信の際に、
その論理リンクが非アクティブである場合、その論理リンクの理論的送信時刻(TTT)を更新し、その論理リンクに関連付けられた新たなリーフを生成し、その論理リンクがスケジュールされていないか又は前記第2の2進木が満杯である場合には前記第1の2進木に前記新たなリーフを追加し、その論理リンクがスケジュールされておりかつ前記第2の2進木が満杯でない場合には前記第2の2進木に前記新たなリーフを追加するステップと、
その論理リンクについて前記要求されるタイムスロット値(ReqTQ,i)を更新するステップと、
各表される論理リンクに関連付けられた理論的送信時刻の値(TTT)に従って前記第1の2進木および前記第2の2進木をソートするステップと、
各スケジューリングサイクル(k)について、
すべての授与されたタイムスロット値(GrTQ,i)をゼロに初期化するステップと、
前記第2の2進木が空でなくかつ前記第1の2進木が空である場合に、または、前記第2の2進木が空でなくかつ前記第2の2進木のルートリーフの理論的送信時刻(TTT)が前記第1の2進木のルートリーフの理論的送信時刻(TTT)よりも小さい場合に、次スケジューリングサイクル(k+1)内でいくつかのタイムスロットを前記第2の2進木のルートリーフに関連付けられた論理リンクに授与するとともに、前記第2の2進木のルートリーフに関連付けられた論理リンクの、前記理論的送信時刻(TTT)、前記授与されたタイムスロット値(GrTQ,i)および前記要求されるタイムスロット値(ReqTQ,i)を更新するステップと、
前記第2の2進木が空でありかつ前記第1の2進木が空でない場合、
前記第1の2進木のルートリーフを除去するとともに関連付けられた論理リンクが依然としてアクティブであればこれを前記第2の2進木に加える前に、
次スケジューリングサイクル(k+1)内でいくつかのタイムスロットを前記第1の2進木のルートリーフに関連付けられた論理リンクに授与するとともに、前記第1の2進木のルートリーフに関連付けられた論理リンクの前記理論的送信時刻(TTT)、前記授与されたタイムスロット値(GrTQ,i)および前記要求されるタイムスロット値(ReqTQ,i)を更新するステップと、
各表される論理リンクに関連付けられた理論的送信時刻の値(TTT)に従って前記第1の2進木および前記第2の2進木をソートするステップと、
前記授与するステップ、前記更新するステップおよび前記ソートするステップを、次スケジューリングサイクル(k+1)内のすべてのタイムスロットが授与されるか、または、もはやアクティブな論理リンクが存在しなくなるまで、繰り返すステップと、
前記第2の2進木に残っているすべてのリーフを前記第1の2進木に転送するステップと
を備える、方法。
【請求項2】
前記要求されるタイムスロット値(ReqTQ、i)が、固定された最大値(S)よりも大きい場合、いくつかのタイムスロットを授与する前記ステップは、現在授与されているタイムスロット値(GrTQ,i)を前記固定された最大値だけインクリメントすることを含み、前記理論的送信時刻(TTT)を更新する前記ステップは、前記理論的送信時刻(TTT)を前記固定された最大値と論理リンクに関連付けられた重み(W)の逆数との積と等価な値だけインクリメントすることを含み、前記要求されるタイムスロット値(ReqTQ,i)を更新する前記ステップは、前記要求されるタイムスロット値(ReqTQ,i)を前記固定された最大値だけデクリメントすることを含み、
前記要求されるタイムスロット値(ReqTQ,i)が固定された最大値(S)よりも大きくない場合、いくつかのタイムスロットを授与する前記ステップは、現在授与されているタイムスロット値(GrTQ,i)を前記要求されるタイムスロット値(ReqTQ,i)だけインクリメントすることを含み、前記理論的送信時刻(TTT)を更新する前記ステップは、前記理論的送信時刻(TTT)を前記要求されるタイムスロット値(ReqTQ,i)と論理リンクに関連付けられた重み(W)の逆数との積と等価な値だけインクリメントすることを含み、前記要求されるタイムスロット値(ReqTQ,i)を更新する前記ステップは、前記要求されるタイムスロット値(ReqTQ,i)をゼロにセットすることを含む、請求項1に記載の方法。
【請求項3】
各論理リンク(LL)に、独立に固定された最大値(SGi)が関連付けられる、請求項2に記載の方法。
【請求項4】
次スケジューリングサイクル(k+1)内でいくつかのタイムスロットを前記第2の2進木のルートリーフに関連付けられた論理リンクに授与する前記ステップは、次サイクル内でスケジュールされた異なる論理リンクの数(nLLID)が異なる論理リンクの目標最大数(NLLID)未満である場合にのみ実行され、
前記方法は、前記第1の2進木および前記第2の2進木をソートする前記ステップより前に、
論理リンクがスケジュールされていない場合に、次サイクル内でスケジュールされた異なる論理リンクの数(nLLID)を1だけインクリメントするステップ
をさらに備える、請求項1〜3のいずれか一項に記載の方法。
【請求項5】
前記第2の2進木が空であり、次サイクル内でスケジュールされた異なる論理リンクの数(nLLID)が異なる論理リンクの目標最大数(NLLID)に達している場合、異なる論理リンクの目標最大数(NLLID)は、所与のサイクル内の異なる論理リンクの所定の初期最大数(N)を、ある比率で乗算した値だけインクリメントされ、
前記比率は、次スケジューリングラウンド(k+1)内のタイムスロット(TQ)の総数に対する、次スケジューリングラウンド(k+1)内でスケジュールされていない残りのタイムスロットの数の比率である、請求項4に記載の方法。
【請求項6】
前記REPORTメッセージの受信に際し、前記非アクティブな論理リンクの理論的送信時刻(TTT)を更新する前記ステップは、
他にアクティブな論理リンクが存在する場合、前記非アクティブな論理リンクの理論的送信時刻(TTT)を、その論理リンクの現在の理論的送信時刻(TTT)の値と、すべてのアクティブな論理リンクのうち最小の理論的送信時刻(TTT)とのうちの最大値にセットすることと、
他にアクティブな論理リンクが存在しない場合、前記非アクティブな論理リンクの理論的送信時刻(TTT)を、その論理リンクの現在の理論的送信時刻(TTT)の値と、すべての論理リンクのうち直近の送信時刻とのうちの最大値にセットすることと
をさらに備える、請求項1〜5のいずれか一項に記載の方法。
【請求項7】
前記授与するステップ、前記更新するステップおよび前記ソートするステップの各繰り返しは、スケジューリングサイクルの間、インターバルによって分離される、請求項1〜6のいずれか一項に記載の方法。
【請求項8】
各繰り返し間の前記インターバルは、直前の前記授与されたタイムスロット値(GrTQ,i)を更新する前記ステップの間に、前記授与されたタイムスロット値(GrTQ,i)に加えられた数のタイムスロットを送信するのに要する時間に等しい、請求項7に記載の方法。
【請求項9】
前記授与するステップ、前記更新するステップおよび前記ソートするステップの各前記繰り返しは、スケジューリングサイクルの終了時点で割り込みなく実行される、請求項1〜6のいずれか一項に記載の方法。
【請求項10】
各論理リンクはメモリコンテキストを備え、
前記メモリコンテキストは、関連付けられた論理リンクID(LLID)と、関連付けられた要求されるタイムスロット値(ReqTQ,i)と、関連付けられた授与されたタイムスロット値(GrTQ,i)と、関連付けられた理論的送信時刻(TTT)値とを含む、請求項1〜9のいずれか一項に記載の方法。
【請求項11】
前記理論的送信時刻(TTT)は、前記第1の2進木および前記第2の2進木のリーフの、最上位ビット(複数)に符号化される、請求項1〜10のいずれか一項に記載の方法。
【請求項12】
前記第1の2進木および前記第2の2進木をソートする前記ステップは、理論的送信時刻(TTT)値の符号付き比較を用いて実行される、請求項1〜11のいずれか一項に記載の方法。
【請求項13】
前記方法は、すべての非アクティブな論理リンクの理論的送信時刻(TTT)を、定期的に、最小の理論的送信時刻(TTT)値を持つアクティブな論理リンクの理論的送信時刻(TTT)値にセットするステップをさらに備える、請求項12に記載の方法。
【請求項14】
請求項1〜13のいずれか一項に記載の方法の各ステップを実行するよう構成された、イーサネット受動光ネットワーク(EPON)光回線終端装置(OLT)。
【請求項15】
データ処理装置のためのコンピュータプログラムであって、
前記コンピュータプログラムは命令の組を備え、
前記命令の組は、前記データ処理装置にロードされたときに、前記データ処理装置に請求項1〜13のいずれか一項に記載の方法の各ステップを実行させる、コンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、広くアクセスネットワークに関し、より正確には、光回線終端装置と、複数の光ネットワークユニットとの間のポイントツーマルチポイント通信のための受動光ネットワーク(PON)に関する。
【0002】
PONは、単一の共有される光ファイバであり、中央局(Central Office)(CO)からの単一のファイバを、個々の加入者に供給を行う個別のストランドに分割するために、廉価な光スプリッタを用いる。このようなネットワークでは、情報はレーザーバーストによって搬送される。アクセスネットワーク内には、加入者エンドポイントおよびCOを除いて能動的な電子機器が存在しないので、PONは「受動」と呼ばれる。この単一の光ファイバは受動スプリッタによって分割される。
【0003】
非同期転送モード(ATM)標準規格に基づく他のPON技術とは異なり、イーサネット(登録商標)受動光ネットワーク(EPON)はイーサネット標準規格(IEEE802.3)に基づいている。EPONはイーサネットの規模の経済を利用し、加入者エンドポイントおよびCOの双方において、イーサネットベースのIP(インターネットプロトコル)機器に、簡素で管理しやすい接続性を提供する。
【0004】
このようなネットワークでは、層間においてパケット単位で情報が交換される。ある層において受信された各パケットは、その層に固有の符号化パラメータセットを用いて符号化される。これらのパラメータは、ネットワーク管理手段を介して与えられる。データリンク層は、加入者エンドポイントとCOとの間の物理的資源を共有する役割を果たす。データリンク層は、2つのサブ層、すなわち論理リンク(LL)層および媒体アクセス制御(MAC)層からなる。物理層は、データリンク層からの論理通信要求を、電子的信号の送受信に影響を及ぼすハードウェア固有の動作に変換する。
【0005】
IEEE802.3ah EPON仕様書は、ギガビットEPON(GEPON)とも呼ばれ、1ギガビットEPONについて、マルチポイント制御プロトコル(MPCP)、ポイントツーポイントエミュレーション(P2PE)および物理層を定義する。IEEE802.3av仕様書は、10ギガビットEPONについての拡張(主に物理層に関するもの)を定義する。とりわけ、イーサネット受動光ネットワークにおけるサービス相互運用性のための標準規格(the Standard for Service Interoperability in Ethernet(登録商標) Passive Optical Networks)(SIEPON)グループ(P1904.1とも呼ばれる)は、EPON機器のサービスレベルマルチベンダー相互運用性を確保するのに必要なシステムレベル要件を記述している。これらの仕様書は、物理層およびデータリンク層における相互運用性を確保する既存のIEEE標準規格802.3およびIEEE標準規格802.1を補完する。
【0006】
EPONネットワークは、通常、光回線終端装置(「OLT」。COに含めることができるもの)と、1つ以上の光ネットワークユニット(「ONU」。EPONの1人以上の加入者を受け持つもの)とを含む。各OLTによって管理されるONUの数は、現在の配備では典型的には4〜64であるが、将来の配備では1024まで拡張可能である。
【0007】
ポイントツーマルチポイント(P2MP)ファイバネットワークを制御するために、EPONはMPCPを用いる。MPCPは、帯域幅割当て、帯域幅ポーリング、自動発見及び測距を実行する。MPCPはMAC層内に実装され、2種類の64バイトイーサネット制御メッセージを導入する。帯域幅の割り当ておよび要求にGATEメッセージおよびREPORTメッセージが用いられ、自動発見処理を制御するためにREGISTERメッセージが用いられる。
【0008】
MAC層は、送信調停(transmission arbitration)の役割を果たす。送信調停により、あるONUが所定時間区間(送信窓またはタイムスロットとも呼ばれる)だけそのピアから送信できるようになる。各ONUに専用の送信窓の始点および長さは、各OLTに備わる動的帯域幅割当て(DBA)スケジューラによって定義される。
【0009】
GATEメッセージはOLTから1つのONUに送信され、そのONUに1つまたはいくつかの送信窓を割り当てるために用いられる。一方、REPORTメッセージは、ONUによって、そのONUのバッファ占有率(すなわち、そのONUからOLTに対して送信すべき待機中のデータパケットのキューの長さ)を示すために用いられるフィードバック機構であり、これによってDBAスケジューラはそのONUのバッファ占有率に適合した送信窓を定義できる。
【0010】
送信窓の始点および長さ(すなわち割り当てられる資源の量)およびREPORTメッセージ中のキューの長さは、時量子(Time Quantum)(TQ)で表される。時量子(TQ)はたとえば16ns(ナノ秒)の時間区間として定義される。すなわち、1ギガビット毎秒のスピードにおいて2バイトを送信するのに要する時間である。
【0011】
IEEE802アーキテクチャに準拠するため、PONに接続される装置は、論理トポロジエミュレーション(LTE)機能を実装する。この機能は共有媒体またはポイントツーポイント媒体をエミュレートすることができる。後者の方式では、ONUとOLTとの間に能動的なスプリッタが用いられるスイッチ式ローカルエリアネットワーク(LAN)と同じ物理的接続性を達成することが目的である。このOLT(レガシーOLTとも呼ばれる)は、ある数N個のMACポート(またはインタフェース)を、各ONUについて1つずつ持つことができる。各ポートは、登録手順の間に各ONUに割り当てられる論理リンク識別子(LLID)を用いて識別される。
【0012】
下り方向(すなわちOLTからONUへ)では、OLTが送信したイーサネットパケットは1*N受動スプリッタを通過して各ONUに到達する。各イーサネットパケットは、そのパケットが宛てられたポートのLLIDを格納するフレームプリアンブルを備える。このような機能は、共有媒体ネットワークに類似している(イーサネットはEPONアーキテクチャと完全に互換し、イーサネットは性質上ブロードキャストする)。このようにして、イーサネットパケットはOLTによってブロードキャストされ、イーサネットフレームプリアンブルに挿入されたLLIDを用いてONUによって選択的に抽出される。OLTにおける下り処理は、主に、入来パケットを正しいLLIDでタグ付けすることと、それらを対応する論理リンクに転送することとからなるので、非常に単純である。
【0013】
上り方向では、ONUは、専用のGATEメッセージにおいて示された送信窓の間だけ送信可能となるよう許可される。この機構によりデータ衝突が回避され、ONU間でチャネル容量が公平に(fairly)共有される。上りイーサネットフレームは、イーサネットフレームプリアンブルにおいてONUに割り当てられたLLIDを用いてタグ付けされる。このEPON多重化方式は、LLIDの数が増加すると重要となり得る上りオーバヘッドを生じる。実際に、EPON上りオーバヘッドは、主に制御メッセージオーバヘッドおよびガード帯オーバヘッドによるものである。制御メッセージオーバヘッドの主な原因は、ONUによってバッファ占有率を示すために送信されるREPORTメッセージである。ガード帯は、レーザのON/OFFを切り替え、必要なキャリブレーションを行うために、2つの上りバーストの間で空白のままにされる時間である。オーバヘッドの他の原因(たとえば発見オーバヘッドやフレーム描画)は無視できると考えられる。
下の表1は、1msDBAサイクルの1GビットEPON(各ONUは各サイクルでOLTにデータを送信する機会を持つ)における、様々な数のONUに対する上りオーバヘッドのまとめである。
【0014】
【表1】
【0015】
表1に含まれる結果を見ると、DBAサイクルあたり32ONUを超える数を管理するのは妥当でない。実際に、DBAサイクルあたり32ONUを超えると、オーバヘッドが10%を超え、また、バイト数で表した送信ウィンドウの長さが2000バイトより小さくなるので、送信ウィンドウは1500バイトのフレームをただ1つ送信できるのみとなる。
【0016】
この問題を解決するために、2011年2月9日に出願された欧州特許出願第11305131号明細書では、各DBAサイクル(一般的に1ms)においてスケジュールされる論理リンク(LL)の数を低減することにより、DBAサイクルあたりの上りバーストの数を制限する方法が提案されている。以下、この方法を概説する。この方法は、EPONがサポートするLLの合計数を制限することなく、レガシーの制的割り当ての代わりにLL送信機会の動的割り当てを含む。それはたとえばイーサネット受動光ネットワーク(G. Krammer、2005年、ISBN 0−07−144562−5)において提案されるようなものである。
【0017】
このような解決策は、オーバヘッドの低減にはつながるが、一方で、ONUが送信機会を得るまでに数サイクル待つ場合があるので、上り送信時間の増加をもたらす。このスケジューリングアルゴリズムは、バースト数制限をサポートするよう変更された自己クロック型公平キューイング(Self-Clocked Fair Queuing)(SCFQ)アルゴリズムに基づく。
【0018】
上述の方法の効率的な実装に関し、いくつかの技術的問題が存在する。これらの問題は、いくつかのプロセッサ間で資源を共有するプロセッサ上のネットワーキング機器の信頼性と複合する。
【0019】
本発明は、下記の方法を提供することによって、これらの問題に対する解決策を提供する。この方法は、
パケットベースのネットワークにおいて送信タイムスロットを割り当てる方法であって、
前記ネットワークにおいて、時間がスケジューリングサイクルに分割され、各スケジューリングサイクルは複数のタイムスロットに分割され、
前記ネットワークは、端末によって管理される複数の論理リンクを備え、
前記端末は、各論理リンクに、いくつかの授与されたタイムスロットと、いくつかの要求されるタイムスロットと、理論的送信時刻とを関連付け、
前記いくつかの授与されたタイムスロットは、次スケジューリングサイクル内でパケットを送信するためにその論理リンクが使うことを許可された資源を表し、
前記いくつかの要求されるタイムスロットは、スケジュールされていないパケットを送信するためにその論理リンクが要求する資源を表す
方法において、
アクティブな論理リンクは、少なくとも1つの要求されるタイムスロットを有し、非アクティブな論理リンクは、要求されるタイムスロットを有さず、
スケジュールされた論理リンクは、少なくとも1つの授与されたタイムスロットを有し、スケジュールされていない論理リンクは、授与されたタイムスロットを有さず、
前記方法は、所定の最大サイズの第1の2進木および所定の最大サイズの第2の2進木を使用し、
前記第1の2進木は、スケジュールされていないアクティブな論理リンクを表すリーフを含み、
前記第2の2進木は、スケジュールされたアクティブな論理リンク(ただし、ヌルでない要求されるタイムスロット(ReqTQ,i)を持つもの)を表すリーフを含み、
前記方法は、
論理リンクに関連するREPORTメッセージの受信の際に、
その論理リンクが非アクティブである場合、その論理リンクの理論的送信時刻を更新し、その論理リンクに関連付けられた新たなリーフを生成し、その論理リンクがスケジュールされていないか又は前記第2の2進木が満杯である場合には前記第1の2進木に前記新たなリーフを追加し、その論理リンクがスケジュールされておりかつ前記第2の2進木が満杯でない場合には前記第2の2進木に前記新たなリーフを追加するステップと、
その論理リンクについて前記要求されるタイムスロット値を更新するステップと、
各表される論理リンクに関連付けられた理論的送信時刻の値に従って前記第1の2進木および前記第2の2進木をソートするステップと、
各スケジューリングサイクルについて、
すべての授与されたタイムスロット値をゼロに初期化するステップと、
前記第2の2進木が空でなくかつ前記第1の2進木が空である場合に、または、是木第2の2進木が空でなくかつ前記第2の2進木のルートリーフの理論的送信時刻が前記第1の2進木のルートリーフの理論的送信時刻よりも小さい場合に、次スケジューリングサイクル内でいくつかのタイムスロットを前記第2の2進木のルートリーフに関連付けられた論理リンクに授与するとともに、前記第2の2進木のルートリーフに関連付けられた論理リンクの、前記理論的送信時刻、前記授与されたタイムスロット値および前記要求されるタイムスロット値を更新するステップと、
前記第2の2進木が空でありかつ前記第1の2進木が空でない場合、
前記第1の2進木のルートリーフを除去するとともに関連付けられた論理リンクが依然としてアクティブであればこれを前記第2の2進木に加える前に、
次スケジューリングサイクル内でいくつかのタイムスロットを前記第1の2進木のルートリーフに関連付けられた論理リンクに授与するとともに、前記第1の2進木のルートリーフに関連付けられた論理リンクの前記理論的送信時刻、前記授与されたタイムスロット値および前記要求されるタイムスロット値を更新するステップと、
各表される論理リンクに関連付けられた理論的送信時刻の値に従って前記第1の2進木および前記第2の2進木をソートするステップと、
前記授与するステップ、前記更新するステップおよび前記ソートするステップを、次スケジューリングサイクル内のすべてのタイムスロットが授与されるか、または、もはやアクティブな論理リンクが存在しなくなるまで、繰り返すステップと、
前記第2の2進木に残っているすべてのリーフを前記第1の2進木に転送するステップと
を備える。
【0020】
好ましくは、
前記要求されるタイムスロット値が、固定された最大値よりも大きい場合、いくつかのタイムスロットを授与する前記ステップは、現在授与されているタイムスロット値を前記固定された最大値だけインクリメントすることを含み、前記理論的送信時刻を更新する前記ステップは、前記理論的送信時刻を前記固定された最大値と論理リンクに関連付けられた重みの逆数との積と等価な値だけインクリメントすることを含み、前記要求されるタイムスロット値を更新する前記ステップは、前記要求されるタイムスロット値を前記固定された最大値だけデクリメントすることを含み、
前記要求されるタイムスロット値が固定された最大値よりも大きくない場合、いくつかのタイムスロットを授与する前記ステップは、現在授与されているタイムスロット値を前記要求されるタイムスロット値だけインクリメントすることを含み、前記理論的送信時刻を更新する前記ステップは、前記理論的送信時刻を前記要求されるタイムスロット値と論理リンクに関連付けられた重みの逆数との積と等価な値だけインクリメントすることを含み、前記要求されるタイムスロット値を更新する前記ステップは、前記要求されるタイムスロット値をゼロにセットすることを含む。
【0021】
好ましくは、各論理リンクに、独立に固定された最大値が関連付けられる。
【0022】
好ましくは、次スケジューリングサイクル内でいくつかのタイムスロットを前記第2の2進木のルートリーフに関連付けられた論理リンクに授与する前記ステップは、次サイクル内でスケジュールされた異なる論理リンクの数が、所与のサイクル内の異なる論理リンクの目標最大数未満である場合にのみ実行され、
前記方法は、前記第1の2進木および前記第2の2進木をソートする前記ステップより前に、
論理リンクがスケジュールされていない場合に、次サイクル内でスケジュールされた異なる論理リンクの数を1だけインクリメントするステップ
をさらに備える。
【0023】
好ましくは、前記第2の2進木が空であり、次サイクル内でスケジュールされた異なる論理リンクの数が異なる論理リンクの目標最大数に達している場合、異なる論理リンクの目標最大数は、所与のサイクル内の異なる論理リンクの所定の初期最大数を、ある比率で乗算した値だけインクリメントされ、
前記比率は、次スケジューリングラウンド内のタイムスロットの総数に対する、次スケジューリングラウンド内でスケジュールされていない残りのタイムスロットの数の比率である。
【0024】
好ましくは、前記REPORTメッセージの受信に際し、前記非アクティブな論理リンクの理論的送信時刻を更新する前記ステップは、
他にアクティブな論理リンクが存在する場合、前記非アクティブな論理リンクの理論的送信時刻を、その論理リンクの現在の理論的送信時刻の値と、すべてのアクティブな論理リンクのうち最小の理論的送信時刻とのうちの最大値にセットすることと、
他にアクティブな論理リンクが存在しない場合、前記非アクティブな論理リンクの理論的送信時刻を、その論理リンクの現在の理論的送信時刻の値と、すべての論理リンクのうち直近の送信時刻とのうちの最大値にセットすることと
をさらに備える。
【0025】
一実施形態では、前記授与するステップ、前記更新するステップおよび前記ソートするステップの各繰り返しは、スケジューリングサイクルの間、インターバルによって分離される。
【0026】
好ましくは、各繰り返し間の前記インターバルは、直前の前記授与されたタイムスロット値を更新する前記ステップの間に、前記授与されたタイムスロット値に加えられた数のタイムスロットを送信するのに要する時間に等しい。
【0027】
別の実施形態では、前記授与するステップ、前記更新するステップおよび前記ソートするステップの各前記繰り返しは、スケジューリングサイクルの終了時点で割り込みなく実行される。
【0028】
好ましくは、各論理リンクはメモリコンテキストを備え、
前記メモリコンテキストは、関連付けられた論理リンクIDと、関連付けられた要求されるタイムスロット値と、関連付けられた授与されたタイムスロット値と、関連付けられた理論的送信時刻値とを含む。
【0029】
好ましくは、前記理論的送信時刻(TTT)は、前記第1の2進木および前記第2の2進木のリーフの、最上位ビット(複数)に符号化される。
【0030】
好ましくは、前記第1の2進木および前記第2の2進木をソートする前記ステップは、理論的送信時刻値の符号付き比較を用いて実行される。
【0031】
好ましくは、前記方法は、すべての非アクティブな論理リンクの理論的送信時刻を、定期的に、最小の理論的送信時刻値を持つアクティブな論理リンクの理論的送信時刻値にセットするステップをさらに備える。
【0032】
また、本発明は、上述の方法を実行するために構成されたイーサネット受動光ネットワーク(EPON)光回線終端装置(OLT)を提供する。
【0033】
また、本発明は、データ処理装置のためのコンピュータプログラム製品を提供する。このコンピュータプログラム製品は、データ処理装置にロードされたときに、装置に上記方法の各ステップを実行させる命令の組を含む。
【0034】
当業者には理解されるように、本発明は従来技術に対していくつかの利益を提供する。たとえば、本発明は、いくつかの処理間で資源が共有されるプロセッサ上の進歩したスケジューリングアルゴリズムを効率的に実装する方法を提供する。本発明の第1の態様では、上りリンク上でサイクルが開始される前に各サイクルのスケジューリングが終了しなければならないので、スケジューリング処理はリアルタイムで実行される。このために、各動作は時間的に拘束され、進行中に(on the fly)実行される。要求される動作を効率的に実行するために、2つの2進木に基づくよく適合されたメモリ構造が用いられる。この構造は、エンベッドされたプラットフォームとともに用いられるときに有利である(メモリ使用量を低減するからである)。
【0035】
本発明の第2の態様によれば、スケジューリング処理自体を実行可能とするために2つの異なる実施形態が提案される。第1のものでは、スケジューリング処理は、他のタスクが割り込み可能なバックグラウンドタスクとして実行可能である。第2の実施形態では、スケジューリング処理は、各サイクルの終了直前に全体が実行される。この場合、他の処理の割り込みは不可である。
【0036】
マルチプロセッサ環境では、スケジューリング処理専用のプロセッサ資源は変動し得る。したがって、本発明の第3の態様では、提案される方法は、サービス品質や、上り論理リンクに対する全利用可能帯域幅に影響を与えることなく、資源利用可能性の変動に方法自体を適合させることができる。
【0037】
本発明は任意のOLTに実装することができ、既存のIEEE標準規格にいかなる修正も要しない。これは、様々なQoS制約を持つサービスの共存を許容することにより、上りリンク上でユーザが経験するQoSを改善するのに役立つ。利用可能なCPU資源に動的に適合する能力は、装置のコストを低減するために特に有利である。実際に、それは、他のタスク(制御、管理)と共有されるハードウェア上に実装することができ、専用ハードウェアに実装する必要がない。このため、超高速ネットワーク(10G−EPON標準規格等)にとくによく適合する。
【0038】
本発明の他の利益および恩恵は、以下の記載および添付の図面を考慮することで明白となる。
【図面の簡単な説明】
【0039】
図1】本発明の一実施形態によって用いることができるシステムを表すブロック図である。
図2】本発明の一実施形態によるキュー更新方法を表すフローチャートである。
図3】本発明の一実施形態によるキューサービスサブルーチンを表すフローチャートである。
図4】本発明の一実施形態によるキューサービス方法を表すフローチャートである。
図5図1のシステム上で実行される、いくつかのキューサービスラウンドの結果を示す図である。
図6】本発明の一実施形態によるTTTメンテナンスアルゴリズムの比較結果を表す図である。
図7】本発明の一実施形態によるTTTメンテナンスアルゴリズムの比較結果を表す図である。
図8】本発明の一実施形態によるスケジューリングのランタイムを示す図である。
図9】本発明の別の実施形態によるスケジューリングのランタイムを示す図である。
【発明を実施するための形態】
【0040】
図1は、本発明の一実施形態によって用いられるシステムを表す機能ブロック図である。システムは、本発明による方法を実装するよう適合したOLT1を備える。OLT1は複数のONU2.1、2.2および2.3に接続され、各ONUはそれぞれのユーザ4.1、4.2および4.3に関連付けられる。理解されるように、1つのONUが複数のユーザのサービスを担当することができる。
【0041】
OLT1は、受動スプリッタ5を備えるEPONを介してONU2.1、2.2および2.3に接続される。受動スプリッタ5はOLT1からの光ファイバを複数の光ファイバに分割するためのものである。この複数の光ファイバのそれぞれは、論理リンク3.11、3.12、3.21および3.31に関連付けられる。たとえば、各論理リンクはあるサービスに関連付けることができる。本実施形態では、ONU2.1が論理リンク3.11および3.12の両方を管理し、ONU2.2が論理リンク3.21を管理し、ONU2.3が論理リンク3.31を管理する。ONUは、論理リンクを介してタイムスロット内でデータパケットを送信するよう適合している。タイムスロットは、後述の方法で、OLT1によってGATEメッセージを介して定義される。ONUは、それぞれの送信タイムスロットの間にOLT1にREPORTメッセージを送信することができる。
【0042】
この目的のために、OLT1は、スケジューラ6と、サイクルビルダ7と、ネットワークインタフェース8とを備える。スケジューラ6およびサイクルビルダ7は、OLTからREPORTメッセージを受信している間、サイクルを構築するために前述のアルゴリズムを実行するよう適合している。サイクルにおいて、異なる論理リンク3.11、3.12、3.21および3.31内のデータパケットの送信のために、ONU2.1、2.2および2.3に対してタイムスロットが公平な(fair)方法で割り当てられる。インタフェース8は、GATEメッセージのヘッドに論理リンクの識別子を含めるためにGATEメッセージを構築し、またONUからREPORTメッセージを受信するよう適合している。
【0043】
REPORTメッセージおよびガード帯に起因するオーバヘッドを低減するための解決策は、各DBAサイクル内でスケジュールされまたはサーブされる論理リンクLLの数を低減することである。EPON内でサポートされる論理リンクLLの総数を制限することなく、本方法は、従来技術の静的割り当て方法の代わりに、論理リンク送信機会の動的割り当て(または所与のDBAサイクル内でのタイムスロット割り当て)を含む。このような解決策がオーバヘッドの全体的な低減をもたらす。
【0044】
不公平なキュー方式を得ることを避けるために、この解決策では上り送信時間を増加させ、ONUがタイムスロットを割り当てられる前に数サイクル待つという前提のもとで、本発明は、各論理リンクLLに次時刻発信値(next time emission value)を導入する。次時刻発信値は、異なる論理リンクLLの間で公平さを保証する。
【0045】
本発明の動作は、3つの基本的メモリ構造に依存する。第1の2進木(または主木)、第2の2進木(または副木)、および論理リンクコンテキスト(LLIDコンテキスト)である。2進木は、高速なTTT順序付けに用いられるデータ構造であり、複数のリーフ(葉)(またはノード)を持ち、各「親」リーフは2個またはそれ以下の「子」リーフに接続される。「ルート」リーフは、子リーフではない親リーフである。上記の構造の組合せを用いることの主な利点のひとつは、大量のキャッシュメモリを要求することなく、広範な高速計算機能を許容することである。
【0046】
2進木によって要求されるメモリの他に、管理されるLLIDそれぞれについてLLIDコンテキストが要求される。LLIDコンテキストは、いくつかのフィールドを含むメモリのセクションである。各LLIDコンテキストは、要求されるTQの数すなわちReqTQ,i(すなわちREPORTメッセージの受信に際してセット可能であるもの)の数と、次のDBAサイクルについてそのLLに現在割り当てられているTQの数(すなわちGrTQ,iの数)と、そのLLに対するTTTの現在の値と、割り当てられた重みWから導出される時間区間T(すなわち1/W)とを含む。Wは、論理リンクLLに授与される最小ビットレートbを反映しており、時間区間TはTTTをインクリメントするために用いられる。W(したがってT)は、管理者によって、論理リンク登録の際に静的にセットされるということに留意すべきである。このように、管理されるLLのそれぞれは、少なくとも上記のフィールドを含むLLIDメモリコンテキストを含む。他の実施形態では、他のフィールドが追加されてもよい。
【0047】
第1の2進木の各リーフは、アクティブLLID(すなわちバックログされるLL)と、それが関連付けられた次のTTTとを表す。理解されるように、第1の2進木に対する基本的操作は、木の初期化、ルートリーフ(すなわち最小のTTTを持つリーフ)の取得、木からのルートリーフの削除(これに木の再順序付けが続く)、木への新たなリーフの挿入(これにも木の再順序付けが続く)、あるリーフの他のリーフによる置換(これはTTT更新に有利に用いられ、これにも木の再順序付けが続く)である。2進木に対するこれらの操作の実行は、当業者により明確に理解される。
【0048】
本実施形態によれば、第1の木の各リーフは、32ビット符号なし整数によって表され、最下位10ビットがLLIDを符号化し(これによって1024個のLLIDをサポートし)、残る22ビットがLLIDのTTTを符号化する。この符号化方式の結果、2進木アルゴリズムは、リーフの各部をマスクすることなく、直接的にリーフに対して作用することができる。また、2つのLLが同一のTTTを持つ場合、本アルゴリズムはより小さいLLIDを持つLLを優先する。理解されるように、リーフを符号化する他の方法を用いてもよい。
【0049】
REPORTメッセージが受信されるたびに、本発明は、LLIDコンテキストおよび第1の2進木の双方において、TTTおよびReqTQ,iの値を更新し、これに従って木を再順序付けする。
【0050】
所与のDBAサイクル内でスケジュールされるLLIDの数を制限するために、第2の2進木は、現在スケジュールされているLLIDを記憶する必要がある。第2の2進木の各リーフのメモリ構成は、上述の第1の2進木のものと同様である。第2の2進木の許容可能なサイズは、1つのDBAフレームにおいてスケジュールされるLLIDの最大目標数に等しい。
【0051】
スケジューリング処理は、主に、完全に独立かつ非同期の2つのステップに分割される。第1のステップは「キュー更新」と呼ばれ、REPORTメッセージの到着の際に発生するものであり、OLTにおける上りLLIDキューの状態を更新することを担当する。第2のものは「キューサービス」と呼ばれ、次のサイクルの構成を決定する(すなわち、選択されたLLIDごとに授与される資源の量を決定する)責任を負う。
【0052】
図2は、本発明の一実施形態による方法のキュー更新ステップのフローチャートを表す。
【0053】
ステップS201において、OLTが管理するONUのひとつからそのOLTがREPORTメッセージを受信した場合(このREPORTメッセージは論理リンクLLに関するものである)、スケジューラが次のアルゴリズムを実行する。REPORTメッセージは更新されたキュー長さを含むことができ、これは論理リンクLL上のデータパケットの送信のために必要なTQの数Mに対応してもよい。OLTは、所与の論理リンクLLにおいて送信すべきデータパケットに対応する各キューのイメージを記憶する。イメージキュー長はReqTQ,iと表記され、TQで表される。
【0054】
次に、スケジューラは、下記表2の動作を実行する。
【0055】
【表2】
【0056】
ただし、TTT−1は、EPON内の論理リンクの1つによって直近のデータパケットが送信された時刻であり、MはREPORTメッセージにおいてLLが要求しているTQの数であり、GrTQ,iは、次サイクルk+1の間のデータパケットの送信のために、論理リンクLLに対して現サイクルkの間に授与されたTQの数に対応する。サイクルk+1の開始時に、GrTQ,iはゼロに初期化される。
【0057】
キュー更新の動作は図2に見ることができる。ステップS201において、REPORTメッセージが、M(そのREPORTメッセージにおいてLLが要求しているTQの数)を含んで受信される。ステップS202において、LLがアクティブである場合(すなわちReqTQ,i≠0である場合)、ステップS206が実行され、ReqTQ,iが、Mの値からGrTQ,i(次サイクルk+1の間のデータパケットの送信ために論理リンクLLに対して現サイクルkの間に授与されたTQの数)を減算することによって更新される。
【0058】
一方、LLが非アクティブである場合(すなわちReqTQ,i=0である場合)、ステップS203において新たなリーフが作成される。その後、ステップS204において、GrTQ,iがヌルであるか否か、および、副木が満杯である(full)か否かについての判定が行われる。副木が満杯であるか、または、GrTQ,iがヌルである場合、ステップS205においてそのリーフは主2進木に注入される。一方、GrTQ,iがヌルではなく、副木に存在しているリーフの数がその木の最大サイズから1を減じた値を超えない場合には、ステップS206においてそのリーフは副2進木に注入される。
【0059】
ステップS207において、そのLLが非アクティブであり、かつ少なくとも1つの他のLLがアクティブである場合、ステップS208が実行され、TTTは、現LLの現TTTと、残るアクティブLLのTTTの最小値とのうちの最大値に更新される。一方、ステップS207において他のLLがいずれもアクティブでないと判明した場合、ステップS209が実行され、現LLのTTT値は、現LLの現TTT値と、すべてのLLのうち直近の送信時刻(すなわちTTT−1)とのうちの最大値にセットされる。
【0060】
その後、別のアクティブなLLが存在するか否かに関わらず、ステップS210において、ReqTQ,iが、Mの値からGrTQ,i(次サイクルk+1の間のデータパケットの送信ために論理リンクLLに対して現サイクルkの間に授与されたTQの数)を減算することによって更新される。
【0061】
したがって、イメージキュー長ReqTQ,iは、データパケットをM個のTQだけ送信できるように、論理リンクLLに割り当てるべき残りのタイムスロットの数を表す。いくつかの実施形態では、TTTは絶対値であり、たとえば各論理リンクLLに対してゼロに初期化される。または、いくつかの実施形態では、論理リンクLLに対するTTTはTに初期化される。
【0062】
理解されるように、上述のアルゴリズムは、REPORTメッセージの受信前に非アクティブであり、かつデータパケットの送信にM個のTQを要求する論理リンクLLに対するTQの割り当てを優先する。実際に、EPONの少なくとも1つの論理リンクLLがアクティブである場合、その論理リンクLLに割り当てられるTTTは、それに割り当てられた最後のTTTと、残るアクティブな論理リンクLLのうち最小のTTT値とのうちの最大値に等しい。実際に、キューイング方式の公平さを尊重するため、非アクティブな論理リンクがデータを長時間転送しておらず、TQが非常に高速にそれらに割り当てられるということが可能である。そうでない場合、その論理リンクLLに割り当てられるTTTは、それに割り当てられた最後のTTTと、EPON内の論理リンクの1つによって直近のデータパケットが送信された時刻(すなわちTTT−1)とのうちの最大値に等しい。
【0063】
REPORTメッセージを送信している論理リンクLLがすでにアクティブである場合、イメージキュー長ReqTQ,iは、単純に、論理リンクLLによって要求されているTQの数Mから、現在スケジュールされているサイクルkについて授与された資源の数GrTQ,iを減算したものに等しい。論理リンクLLが非アクティブである場合、GrTQ,iはゼロであり、ReqTQ,i=Mである。スケジューラは、イメージキュー長ReqTQ,iを更新した後、サイクルkの間に受信される新たなREPORTメッセージを待つ(これはサイクルk−1の間にタイムスロット割り当てがスケジュールされたものである)。
【0064】
提案する方法によれば、1つのDBAフレーム内でスケジュールされるLLの数が制限されるので、1つのDBAサイクル内で発生するキュー更新の数もまた限定され、したがってシステム性能の観点においてクリティカルなものとはならない。
【0065】
本発明によれば、上述のアルゴリズムは、第1の2進木を、高速TTT順序付けおよびLLIDコンテキストに関して更新することによって実施される。
【0066】
本発明によって実施される第2の処理は、キューサービス動作であり、次サイクルの構成を準備するために、DBAサイクルの間に、継続的に実行され得る処理である。したがって、図3、4および5に示すように、1つのDBAサイクルのスケジューリングが、1DBAサイクル先行して準備される。1つのDBAサイクルの終了時点で、次のDBAのスケジューリングが終了する。各キューサービスは独立したラウンドであり、ラウンドは、1つのLLIDを選択すること、要求されるTQの数(すなわちReqTQ,i)と、割り当てられまたは授与されたTQの数(すなわちGrTQ,i)とを更新すること、TTTを更新すること、ならびに、これらに従って第1の2進木および第2の2進木の値およびLLIDコンテキストを更新すること、からなる。
【0067】
本発明の一実施形態によれば、各キューサービスラウンドはバックグラウンド処理として実装され、各ラウンドの実行に要する時間の長さが、そのラウンドの間に授与された数のTQを発信するのに要する時間に整合するように、各ラウンドの間に遅延が導入される。
【0068】
1つのDBAサイクル内のキューサービスラウンドの数は、サービス細分性値(service granularity value)に依存する。サービス細分性値は、各キューサービスラウンドで選択されたLLIDに対して授与されるバイト数の最大値である。1つのラウンドの間に授与されるTQの最大数をSと表す。いくつかの実施形態では、各LLが個別のSの値(SGiと表す)を持つことができる(図示しない)。1つのDBAサイクル内のスケジューリングキューサービスラウンドの数は、[リンク速度*TDBA/8]/SGにほぼ等しくすることができる。ただしTDBAはDBAサイクル長である。理解されるように、DBAサイクル内のいくつかのLLについてReqTQ,i<Sである場合には、より多くのキューサービスラウンドが可能である。
【0069】
資源(すなわちTQ)の数は各DBAサイクルにおいて固定されているので、現サービスラウンド内で授与されたTQを発信するのに要する時間の後に次のキューサービスラウンドが発生するよう、スケジュールすることができる。本実施形態では、次のキューサービスラウンドの時間(TQで表される)は、次のように計算可能である。
tk+1 = t0 + tk + min(SG,ReqTQi)
ただし、tは、そのDBAサイクルの開始時点(したがって、現DBAサイクルに対する最初のキューサービスラウンドの時)として定義される。
【0070】
各キューサービスラウンドについて、選択されたLLIDに授与されるバイト数を決定するために、次のサブルーチン(図3に示す)が適用される。このサブルーチンは、TTT、GrTQ,iおよびReqTQ,iの値を更新するためにも用いられる。
【0071】
【表3】
【0072】
図3のアルゴリズムはステップS301で開始され、そこでは、要求される資源の量(すなわち要求されるTQの数、またはReqTQ,i)が1ラウンドで授与され得るTQの最大数(すなわちS)より大きいか否かに関する判定が行われる。ReqTQ,iがSよりも大きいと判定された場合、本方法はステップS303に進む。ステップS303では、そのLLのTTTが、
‐TTTの現在の値、および
‐そのLLのT値と、1ラウンド内で授与され得るTQの最大数(すなわちS)との積
の和にセットされる。その後、DBAサイクルk+1に対して授与されたTQの数(すなわちGrTQ,i)が、現在授与されているTQの数(すなわちGrTQ,i)と、1ラウンド内で授与され得るTQの最大数(すなわちS)との和に更新される。最後に、1ラウンド内で授与され得るTQの最大数(すなわちS)が、現在要求されているTQの量(すなわちReqTQ,i)から除去される。
【0073】
ステップS301において、ReqTQ,iがS以下であると判明した場合、本方法はステップS302に進む。ステップS302において、そのLLのTTTは、
‐TTTの現在の値、および
‐そのLLのT値と、現在要求されているTQの量(すなわちReqTQ,i)との積
の和にセットされる。その後、DBAサイクルk+1に対して授与されたTQの数(すなわちGrTQ,i)が、現在授与されているTQの数(すなわちGrTQ,i)と、現在要求されているTQの数(すなわちReqTQ,i)との和に更新される。最後に、ReqTQ,iがゼロにセットされる。ステップS302またはS303が完了した後、サブルーチンは終了する。
【0074】
図3のアルゴリズムの結果は、図5に見ることができる。図5では、DBAサイクルkにおいて入来するREPORTメッセージの内容に照らして、DBAサイクルk+1を構築するために8つのキューサービスサイクルが実行される。キュー更新情報は図の上部にあり、キューサ−ビス情報は図の下部にある。
【0075】
見られるように、DBAサイクルkでは、3つのLLIDが資源を授与される。各送信の終了時点で、上述の方法に従ってキュー更新処理が実行される。この例では、LLID#1はM=0を含むレポートメッセージを送信する。したがって、これにはDBAラウンドk+1においていかなる資源も割り当てられない。しかしながら、LLID#2は8000TQを要求し、LLID#3000は3000TQを要求する。新たなレポートメッセージを受信するたびに、当該LLIDに対するTTT値およびReqTQ,i値が、図3の方法に従って更新される。たとえば、図5に見られるように、LLID#2に対して実行される第2のキューサービスラウンド(すなわちR2)の結果として、LLID#2は500TQを授与され(GrTQ,2=1500+500=2000)、要求されるTQの数は500から0に減少する。しかしながら、その後、8000TQを要求するLLID#2の送信の後にREPORTメッセージが到着したときには、要求されるTQの数は、上述のキュー更新アルゴリズムを用いて6000にセットされる。実際に、REPORTの到着時点でGrTQ,2は2000に等しいので、キュー更新アルゴリズムを適用することにより、ReqTQ2は(8000−2000)に等しくなる。このReqTQ,iの増加は、キューサービスラウンドR3の開始時点におけるReqTQ,iの初期値によって裏付けられる(evidenced)。この時点で、ReqTQ,iは6000TQから4500TQに変化する。理解されるように、図5の例ではSの値は1500TQである。
【0076】
従来技術による自己クロック型公平キューイング(Self-Clocked Fair Queuing)(SCFQ)アルゴリズムに記載されるように、スケジュールされたLLIDはTTTの値に従って選択される。従来技術によれば、最小のTTTを持つバックログされるLLIDが選択される。
【0077】
本発明によるDBAサイクルごとのLLID制限を適用するために、現在スケジュールされているLLIDのTTTを記憶および順序付けするために、副木が用いられる。スケジュールされたLLIDを選択して木を更新するための動作は、図4を参照して以下に記述される。TTTを順序付けするために2進木を用い、ルートリーフは最小のTTTを持つLLIDを含む。キューサービスが実行されると、キューサービスの後に、木が新たに計算されたTTTで更新されるか(リーフ置換)、または、LLIDがバックログされなくなる(すなわち非アクティブになる)場合にルートリーフが除去される。
【0078】
下記に説明されるとともに図4に示されるアルゴリズムを参照して、変数nLLIDは、次DBAサイクル内でスケジュールされた異なるLLIDの数を表し、NLLIDはDBAサイクルあたりの目標最大LLID数を表す。各DBAサイクルの開始時点でNLLIDはNの値にセットされる。NはDBAサイクルに対する初期目標NLLIDを表し、システム管理者により固定される。
【0079】
【表4】
【0080】
この処理は、ステップS401において、副2進木が空であるか否かに関する判定をもって開始される。第2の2進木が空でない場合、処理はステップS402、S403およびS404へと継続される。これらのステップでは、主2進木が空であるか否か(S402)、DBAサイクルk+1内の異なるLLIDの数(nLLID)が、1DBAラウンド内で許容される異なるLLIDの最大数以上であるか否か(S403)、および、副2進木のルートリーフが主2進木のルートリーフより小さいか否か(S404)に関する判定が行われる。S402、S403およびS404のいずれかが肯定的に回答された場合、処理はステップS405へと継続し、操作のために副木のルートリーフが選択される。
【0081】
その後、ステップS406において、GrTQ,iがゼロより大きいか否か(すなわち、LLがDBAサイクルk+1内ですでに割り当てられている資源を有するか否か)に関する判定が行われる。LLが次サイクル内で割り当てられた資源(すなわちTQ)を有しない場合、それはサイクルk+1内の新たなLLを表し、ステップS407においてnLLIDが1だけインクリメントされ、その後ステップS408に進む。一方、LLが次DBAラウンド内ですでに割り当てられている資源を有する場合には、nLLIDをインクリメントすることなく、処理は単にS408に進む。S408では、副木のルートリーフが図3のサブルーチンを実行するための基礎として用いられる(すなわち、そのLLについて、TTT、GrTQ,iおよびReqTQ,Iの値を更新する)。
【0082】
サブルーチンが完了すると、ステップS409において、要求されるTQの現在の量(すなわちReqTQ,i)がゼロより大きいか否か(言い換えると、LLが、サブルーチン内である量の資源を授与された後に、さらに資源を要求しているか否か)に関する判定が行われる。さらなる資源が要求されている場合(すなわちReqTQ,I>0である場合)、ステップS411において、副木のルートリーフが新たなTTTで置換され、その後処理が終了する。一方、さらなるTQが要求されていない場合、副木のルートリーフはもはやアクティブではないので、ステップS420において単に除去され、その後処理が終了する。
【0083】
ステップS401に戻る。副2進木が空である場合、処理はS412において継続する。同様に、ステップS402、S403およびS404のすべてにおいて回答が否定的である場合、処理はステップS412へと継続し、主木が空であるか否かに関する判定が行われる。主木が空である場合には、ステップS401において副木も空であると判定されているので、アクティブなリンクが存在しないという点において処理は終了する。
【0084】
一方、主木が空でない場合、ステップS413において、将来の操作のために主木のルートリーフが選択される。その後、ステップS414において、GrTQ,iがゼロより大きいか否か(すなわちLLがDBAサイクルk+1内ですでに割り当てられた資源を有しているか)に関する判定が行われる。LLが次サイクル内で割り当てられた資源(すなわちTQ)を有していない場合、それはサイクルk+1内の新たなLLを表し、ステップS415においてnLLIDが1だけインクリメントされ、その後ステップS416に進む。一方、LLが次DBAラウンド内ですでに割り当てられている資源を有する場合には、nLLIDをインクリメントすることなく、処理は単にS416に進む。S416では、主木のルートリーフが図3のサブルーチンを実行するための基礎として用いられる(すなわち、そのLLについて、TTT、GrTQ,iおよびReqTQ,Iの値を更新する)。
【0085】
サブルーチンが完了すると、処理はステップS417において継続し、主木のルートリーフが除去される。その後、ステップS418において、LLが将来のさらなるTQを要求している(すなわちReqTQ,i>0である)という判定が行われ、その後、ステップS419においてそのLLIDは副木に挿入される。言い換えると、ステップS417で主木のルートリーフが除去されたとき、それがさらなる資源を要求している場合には副木に挿入され、そうでなければ単に破棄される。
【0086】
共有すべき資源がもはやなくなったとき(すなわち次サイクルが満杯である場合)、または、すべてのLLIDキューが空である場合(すなわちすべてのLLID要求に対する授与がなされた場合)には、スケジューリングは終点に到達する。前者のケースでは、その後、副木に残るすべてのリーフを主木に注入する必要がある。その後、システムは、満杯でないGrTQ,iを持つすべてのLLIDに対して、その値に基づいていくつかのGATEメッセージを生成する。その後、すべてのLLIDに対するGrTQ,i値がリセットされる。
【0087】
副木の最大深さはlog(NLLID)に等しく、これは、log(LLID最大値)に等しい主木の深さよりも小さい。結果として、副木に対する操作は、主木に対するものよりも高速である。このふるまいにより、単一2進木策に比べてスケジューリングサービス処理が加速される。ただし、資源要求をほとんど持たないLLIDが多数ある場合を除く。実際に、そのような場合には、各LLIDは1つのスケジューリングサービスによりサービスされ、副木に入らない。
【0088】
このアルゴリズムは、1つのDBAフレーム内でスケジュールされるLLIDの最終的な数がNLLIDより小さくなることを保証しない。しかしながら、このアルゴリズムは、NLLIDと、DBAサイクルの充填率(利用可能な資源をすべて使おうとする)と、LLID間の公平性(スケジュールされるLLIDの数がNLLIDよりも小さい間は、より小さいTTTを持つLLIDが常に優先される)との間のトレードオフを実行する。上述のように、変数nLLIDは次DBAサイクル内でスケジュールされた異なるLLIDの数を表し、NLLIDはDBAサイクルあたりの目標最大LLID数を表す。各DBAサイクルの開始時点でNLLIDはNの値にセットされる。NはDBAサイクルに対する初期目標NLLIDであり、システム管理者により固定される。
【0089】
あるDBAサイクルの間にnLLIDが目標値(NLLID)に達し、副木が空である場合、NLLIDが次式を用いて増加される。
NLLID = NLLID + シーリング[N*(RemainingResource)/(ResourcePerDBACycle)]
ただし、RemainingResourceの値はDBAラウンド(k+1)内でスケジュールされていないTQの数に等しく、ResourcePerDBACycleは1DBAサイクル内のTQの合計数である。
【0090】
正当なリーフ値比較を保証するため、本発明の有利な一実施形態による2進木アルゴリズムは、ラップアップコヒーレンシー(wrap-up coherency)を確保するために、符号付き比較(signed comparison)を用いる。図6および図7は特定の値Aに対する比較結果を示す。符号付き比較を用いることにより、陰付きでない半円内に位置するすべての値はAより小さく、一方で、陰付きの半円内に位置するすべての値はより大きい。
【0091】
Aが、minNB(TTT)に、すなわちバックログされないLLに対するTTTの最小値に等しい場合には、それらのバッグログされないLLはすべて陰付きの半円に含まれなければならない。アクティブなLLIDは定期的に選択され、それらのTTTはmin(TTT)から開始して増加するので、アクティブなLLIDについてはこの想定は常に正しい。逆に、非アクティブなLLIDは更新されず、それらのTTTが陰付きでない半円に該当し、長期の非アクティブ状態の後に、陰付きの半円に位置する場合がある。これは、符号付き比較が誤った結果を与えるので正当ではない。
【0092】
これが、非アクティブなLLIDのTTTを定期的にチェックし、アクティブなLLIDの最小TTT値に更新するためにバックグラウンド処理が要求される理由である。実際に、非アクティブなLLIDがアクティブになるときには、少なくともminNB(TTT)に等しいTTTをもって木に挿入される。したがって、このTTTの変更は、本発明によるSCFQアルゴリズムに影響を及ぼさず、実装は非常に効率的である。主な制約は、バックグラウンド処理によりすべての非アクティブ接続がスキャンされるスキャニング期間TScanを定義することである。
【0093】
重み付き公平キューイングアルゴリズム(Weighted Fair Queuing algorithms)において、TTTおよびTは、EPON時量子(Time Quantum)(TQ)単位(1TQ=2バイト)で表現可能な、または、Nu個(複数)のTQとして表現可能な時間値である。この定義を用いて、あるLLIDにkバイトが授与されるたびに、それに関連付けられたTTTは次式を用いて更新されなければならない:
TTTi = TTTi + シーリング[k/2Nu] * Ti
Scan期間にわたって、min(TTT)の最大増加は [TScan.リンク速度/8]/2Nu に等しい(TScan期間の間、ただ1つのLLIDのみがアクティブである場合)。
【0094】
がTTTを符号化するために用いられるビット数である場合、TScan期間にわたってすべての非アクティブなLLIDがチェックされる(2Nb−1バイトが授与されるまで)。そして、Nu ≧ [TScan.リンク速度/8]/ 2Nb である。
【0095】
実装を便利にするため(除算をビットシフトで置き換える)、Nは2の累乗として選択することができる。たとえば、TScanが512msにセットされている場合(1msごとに1LLIDがポーリングされる)、10ギガビットEPONに対してはN=256である。大きいN値を用いると、公平キューイング割り当てアルゴリズムにいくらかのジッタが生じる。しかしながら、このジッタは、DBAフレームあたりのLLIDの制限によって生じるジッタと比較して無視できると考えられる。
【0096】
図8に示すように、本発明の第1の実施形態では、スケジューリングキューサービス処理は、前章で開示したように、t法計算を用いてサイクル全体に定間隔で分散するバックグラウンド処理として実行される。この場合、各スケジューリングラウンドは原子的(atomic)かつ短い動作であり、CPUによって実行される他のタスクと容易にインタレース可能である。このような実施形態の主な利点は、他の処理を実行するために誘起されるジッタが1つのスケジューリングラウンドを実行するのに要する最大時間に限定されることである。たとえば、ある処理がシステムの他の部分からなんらかのデータを受信するとき(たとえばREPORTメッセージ)、そのような小さい遅延は、FIFO長を低減するためにリアルタイムオペレーティングシステムにとって非常に重要となる可能性がある。しかしながら、スケジューリングラウンドが発生するたびに実行コンテキストがリロードされ、これがオーバヘッドにつながる(キャッシュリローディング等)。
【0097】
図9に示す第2の実施形態では、スケジューリングキューサービス処理はワンバーストで実行される。すなわち、すべてのスケジューリングサービスラウンドが、他のタスクによって割り込まれることなくCPUによって実行される。この場合、スケジューリングサービスタスク全体を実行するのに要する時間ははるかに長くなり、他の処理を開始するためにより長いジッタを生じる。
【0098】
しかしながら、タスクコンテキストのリローディングは必要ではなく、コードがCPUの一次キャッシュに留まるので、より高速に実行される。さらに、REPORTメッセージの受信に際しキュー更新が実行されるとき、いくつかの最適化を行うことができる。実際に、CPUによってREPORTメッセージが処理されるとき、スケジューリングサービス処理はいまだ開始されておらず、要求者LLIDに対してなんらかの資源を直接割り当てることがより単純である。
【0099】
1DBAサイクルの間に実行可能なスケジューリングラウンドの最大数は、利用可能なプロセッサ資源と、各ラウンドを実行するのに要する時間とに依存する。tSchRound,kをk番目のスケジューリングサービスラウンドを実行するのに要する時間とし、cSchRound,kを対応するCPUサイクルの数とする(cSchRound,k = tSchRound,k * CPUSpeed)。cSchRound,kはmax(cSchRound,k)によって抑制する(bound)ことができ、その平均値はmean(cSchRound,k)と表すことができる。RSchRoundを、スケジューリングサービス処理専用のCPU資源の割合(たとえば50%)とする。そうすると、持続時間TDBAのDBAサイクル1つ内の最大スケジューリングラウンド数は、TDBA * CPUSpeed * RSchRound/max(cSchRound,k) に等しい。上述のように、これは[リンク速度*TDBA/8]/SGで近似することができる。そうすると、スケジューリングサービス細分性値を、次式で求めることができる。
【0100】
【数1】
【0101】
ここで、細分性は、RSchRoundによって表される利用可能なプロセッサ資源に動的に適合させることができる。これはRSchRoundに反比例するので、適合はリアルタイムで容易に実行可能である。細分性の変動は、光リンク上でより長いデータバーストを作成するので、ジッタを増加させる。しかしながら、これは他のQoSパラメータ(平均遅延、帯域幅)には影響しない。さらに、これは大域スケジューリングを変更しない(すなわち、利用可能な帯域の全体が、バックログされる論理リンク間で共有され続ける)。
【0102】
理解されるように、本発明はコンピュータプログラム製品に埋め込むことも可能である。このコンピュータプログラム製品は、本明細書に記載される方法の実装を可能にするすべての機能を備えており、情報処理システムにロードされると、その情報処理システムを動作させる。本明細書のコンテキストにおけるコンピュータプログラム手段またはコンピュータプログラムとは、情報処理能力を有するシステムに対し、(直接的に、または他の言語に変換された後に)特定の機能を実行させることを意図する命令の組の、いかなる表現(いかなる言語、コードまたは表記法におけるものも)をも意味する。
【0103】
このようなコンピュータプログラムは、コンピュータ可読媒体または機械可読媒体(それらの媒体から読み出されるべきデータ、命令、メッセージまたはメッセージパケットおよび他の機械可読情報を許容するもの)上に記憶することができる。このコンピュータ可読媒体または機械可読媒体は、不揮発性メモリ(ROM、フラッシュメモリ、ディスクドライブメモリ、CD−ROMおよび他の恒久的記憶装置等)を含むことができる。さらに、コンピュータ可読媒体または機械可読媒体は、たとえば揮発性記憶装置(RAM、バッファ、キャッシュメモリおよびネットワーク回路)を含むことができる。さらに、このコンピュータ可読媒体または機械可読媒体は、一時的状態媒体(ネットワークリンクおよび/またはネットワークインタフェース(デバイスがそのようなコンピュータまたは機械可読情報を読み出すことを許容する有線ネットワークまたは無線ネットワークを含む))内のコンピュータまたは機械可読情報を含んでもよい。
【0104】
図面に示す要素の機能は、専用ハードウェアおよび/またはソフトウェアを用いて提供することができる。「処理」「処理手段」および「処理モジュール」という表現は、いかなるデジタル信号プロセッサ(DSP)ハードウェア、ネットワークプロセッサ、アプリケーション専用集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)、ソフトウェアを記憶する読み出し専用メモリ(ROM)、ランダムアクセスメモリ(RAM)および不揮発性記憶装置をも含むことができるが、これらに限定されない。
図1
図2
図3
図4
図5
図6
図7
図8
図9