データを通信するネットワークとして、データをパケットに分割して転送するパケット通信ネットワークがある。パケット通信ネットワークの中継ノードでは、任意の時刻に受信ポートからデータをパケットの形態で受け取ってバッファリングし、送信ポートが空き次第、そのパケットを送出する。パケット通信ネットワークでは、送信時刻が指定されていないためバースト的なデータ到着が発生するので、それを吸収するために中継ノードには大容量のバッファメモリが必要となる。中継ノードにはルーチング機構も必要となる。
このようにパケット通信ネットワークは、広域で大量のデータを送受信するためには必ずしも適さないので、広域ネットワーク(WAN:Wide Area Network)などではTDMネットワークが広く用いられている。TDMネットワークでは、タイムスロットの形で送信時刻が予約されているため、中継ノードにおけるデータ入力周期と送出周期とが予測可能(例えば、一定周期)であり、そのためバースト的なデータ到着は発生しない。TDMネットワークの中継ノードにはルーチング機能が必要であるが、搭載されるバッファメモリの容量は必要最小限のものでよい。
ところで、中継ノードに設けられるバッファメモリは、高速動作が可能なものである必要があるので、多くの電力を消費する。また、ルーチングを行う際にもルーチングテーブルが必要となるが、ルーチングテーブルも高速かつ大容量のメモリを使用するから、これもまた多くの電力を消費する。ルーチング演算にも電力を消費する。TDMネットワークにおいてもその規模が大きくなるにつれ、中継ノード数も増大し、バッファリングやルーチングに費やされる電力が増大する。
ところで、非特許文献1には、ネットワーク全体で同期された転送スケジュールを用いることで、データの衝突を回避しつつ、目的の宛先へのルーチングを可能とする伝送方式が提案されている。非特許文献1に記載の技術によれば、中継ノードにおいて、バッファメモリと、ヘッダ情報に基づいたルーチング機能とを設ける必要がなくなるので、ネットワーク全体の省コスト化を実現することができる。
またTDMネットワークであって、ネットワーク全体で同期されたTDM転送スケジュールを用いることによって、中継ノードにおけるバッファリングやルーチング機能を不必要にしたバッファレスTDMネットワークが提案されている。バッファレスTDMネットワークの中継ノードは、ネットワークにおける方路切り替えの機能(すなわちスイッチ機能)を有するTDMスイッチノードであって、事前設定された方路切り替えスケジュールにしたがってスイッチ動作を行い、受信ポートから受け取ったデータを、方路切り替えスケジュールによって決定された送信ポートからそのまま出力する。。この方路切り替えスケジュールのことをTDM転送スケジュールと呼ぶ。バッファレスTDMネットワークにおける衝突回避は、全ての中継ノードにおける衝突回避可能な送信時間帯を計算してそれをTDM転送スケジュールに反映させた上で、送信ノードがデータを出力することによって達成される。
図1(a)は、バッファレスTDMネットワークの構成の一例を示している。ここでは、TDMスイッチノード91としてノード1〜ノード5が設けられている。この例では、ノード1からノード3へのデータ伝送のために、時刻t1が割り当てられており、このデータ伝送では、パケットは、ノード1→ノード2→ノード4→ノード3と送られる。同様に、ノード5からノード1へのデータ伝送のために、時刻t4が割り当てられており、パケットは、ノード5→ノード4→ノード3→ノード2→ノード1と送られる。各時刻ごとに設定された送信許容時間の長さが、対応するノードに割り当てられた帯域幅に対応する。バッファレスTDMネットワークでは、ネットワーク全体で同一のTDMスケジュールを共有する必要があり、例えば、図1(a)の例に対応したTDMスケジュールは、図1(b)に示したものとなる。図1(b)は、例として、送信ノードと受信ノードとの組み合わせごとに送信許可時刻が示されている。送信許可時刻は、どの時刻において送信が許可されるかを示すものである。
ノード間のトラヒック量は随時変動し得るものであるから、特許文献1に示されるように、TDMスケジュールを周期的に再計算してその結果を適用するというDBAを実施することによって、時々刻々と変動するトラヒックをより少ないネットワーク資源で収容することができる。
DBAを実施するためには、ネットワークに対し、各TDMスイッチノードからの要求帯域情報を集約してDBAを実行するTDMスケジューラ(帯域制御装置)を設置する。図2に示した例では、TDMスイッチノード91間がユーザデータ伝送用にデータプレーン93により接続している場合に、要求帯域情報の集約用に、制御信号の通路となる制御信号プレーン94を別途設けている。TDMスケジューラ92は、制御信号プレーン94を介し、必要な情報を収集し、決定したTDMスケジュールを各TDMスイッチノード91に配布する。データプレーン93のことをユーザ情報プレーンとも呼ぶ。
DBAは、例えば、各送信ノードの要求帯域情報をTDMスケジューラに集約する帯域情報集約(すなわちトラヒック情報収集)と、TDMスケジューラにおいてTDMスケジュールを計算するスケジュール演算と、演算されたスケジュールを全ノードに通知してスケジュールを更新する新スケジュール配布とを逐次的に実行することによって実施される。図3は、DBAにおける各動作手順の流れを示している。トラヒック変動が発生したとして、トラヒック情報収集とスケジュール演算と新スケジュール配布とをこの順で実行することにより、DBAが完了する。ここで、トラヒック変動が発生してからそのトラヒック変動に対応したTDMスケジュールが生成されて各ノードに設定されるまでの時間(トラヒック変動反応時間すなわち最短DBA周期)は、最短でも、トラヒック情報収集とスケジュール演算と新スケジュール配布の各段階に要する時間の和となる。
図4は、ある1つの通信パス(送信ノードから受信ノードへのデータ流路)に対してDBAを適用する場合の入力帯域幅(実際に送信ノードに流れ込むデータの帯域幅)、割当帯域幅及び出力帯域幅(送信ノードから受信ノードに実際に転送されるデータの帯域幅)の時間変化を示している。図において、ハッチングが施された部分が未使用帯域(その通信パスに割当てられているが、実際には使用されない帯域)となる。割当帯域幅は、DBA周期ごとにしか変化しないので、DBA周期が短いほど、ハッチング部分の面積すなわち、各時刻ごとの未使用帯域×時間で表される面積を小さくすることができ、帯域利用効率(=実行スループット/割当帯域幅)が向上する。したがって、DBA周期が短いほど、同量のトラヒックを収容する際に、総割当帯域幅(ネットワーク資源量)を削減できることになる。言い換えれば、DBA周期が短いほど、帯域幅設定が頻繁に行えるため、柔軟な帯域割り当てスケジューリングが可能となり、少ない設備帯域量を有効活用できるようになる。
バッファレスTDMネットワークにおいてDBAを実現するためには、上述したように、ネットワークにTDMスケジューラを配備する必要がある。このTDMスケジューラの配備形態の一つとしては、ネットワーク内にただ1つのTDMスケジューラを配備してDBAを行うスケジューラ集中配備方式がある。図5はスケジューラ集中配備方式を模式的に示す図である。
ネットワーク内の複数のTDMスイッチノード91に対して、単一のTDMスケジューラ92が設けられており、TDMスケジューラ92内には、各ノードごとのTDMスケジュールを演算して決定するノード単位スケジュール決定部96が設けられる。また、各TDMスイッチノード91は、当該TDMスイッチノード91でのスイッチ動作を制御するスイッチコントローラ97を備えている。
スケジューラ集中配備方式では、まず、TDMスケジューラ92が、各TDMスイッチノード91からの帯域情報を集約し、次に、ノード単位スケジュール決定部96においてスケジュール演算を行う。その後、TDMスケジューラ92は、演算されたスケジュールを各TDMスイッチノード91内のスイッチコントローラ97に配布する。
このようなスケジューラ集中配備方式では、大規模なネットワーク(例えば、ノード数が1000、地理的広がりが数百km四方)を構成した場合、ノード数増加に伴ってスケジュール演算時間が爆発的に増大し、DBA周期が長くなる、という課題が生ずる。そこで非特許文献2には、スケジューリングアルゴリズムを改良することによって演算コストを削減し、スケジュール演算時間を最小で10ms前後にまで削減する方法が提案されている。しかしながらスケジューラ集中配備方式では、スケジュール演算時間を短縮しても、ネットワークの大規模化に伴って、TDMスイッチノード91とTDMスケジューラ92の間の通信遅延が増大するという課題が残っている。通信遅延は、例えば、長さ200kmあたり1msであり、これは通信に用いる物理媒体の物理的性質に依拠するものであるから削減することは不可能である。通信遅延は、帯域情報集約とスケジュール配布の双方に要する時間を増大させるため、DBA周期をこれらの和以下に短くすることはできない。
そこで、ノード群をいくつかのグループに分けてグループごとにスケジューラを設け各グループ内でのスケジューリングを行うとともに、複数のグループの相互間でのスケジューリングも行うことが提案されている。この方式は、複数のスケジューラで制御してDBAを行うことから、スケジューラ分散配備方式と呼ばれる。図6(a)は、スケジューラ分散配備方式を説明する図である。
スケジューラ分散配備方式では、複数のTDMスイッチノード91を複数(図6に示した例では3個)のグループ95にグループ分けする。グループ95ごとにスレイブスケジューラ20が設けられている。そして、これらのグループ95を仮想的なノードとみなし、グループ間でのTDMスケジュールを決定するマスタスケジューラ10が設けられている。マスタスケジューラ10は、グループ間を接続する仮想的なパスに対するTDMスケジュール(グループ単位スケジュール)を決定するグループ単位スケジュール決定部11を備えている。スレイブスケジューラ20は、そのスレイブスケジューラ20が設けられているグループ内のパスのスケジューリングを行うものであって、ノード単位でスケジュールを作成するノード単位スケジュール決定部21を備えている。
マスタスケジューラ10のグループ単位スケジュール決定部11で決定されたグループ単位スケジュールは、スレイブスケジューラ20に送られ、スレイブスケジューラ20のノード単位スケジュール決定部21は、受け取ったグループ単位スケジュールを当該グループに属するノード単位にそのスケジュールを分解してノード単位スケジュールとし、このノード単位スケジュールをそれぞれのTDMスイッチングノード91に通知する。
このような、グループ単位スケジュールを決定し、それに基づいてノード単位スケジュールを決定する処理をグローバルスケジューリングと呼ぶ。
また、スケジューラ分散配備方式においては、グループ単位スケジュールの変更に依存せずに、各グループのスレイブスケジューラ20のノード単位スケジュール決定部21のみを動作させ、当該グループに関連するノード単位スケジュールのみの更新を行うこともできる。このようなノード単位スケジュールのみの更新を伴うスケジューリングをローカルスケジューリングと呼ぶ。
図6(b)に示すように、ノードグループの地理的近傍に、そのノードグループに対応するスレイブスケジューラ20を配備することで、スレイブスケジューラ20と各TDMスイッチノード91との間の通信遅延を小さくすることができて、ノード単位スケジュール更新時の帯域情報集約及びスケジュール配布時間を削減することができる。これにより、ローカルスケジューリングの実行周期をグローバルスケジューリングに比べてさらに高頻度とすることができる。ローカルスケジューリングのみの高頻度化によっても、総ネットワーク資源削減の効果は生ずる。
次に、本発明の好ましい実施形態について、図面を参照して説明する。
本発明の実施の一形態のバッファレスTDMネットワークは、スケジューラ分散配備方式によってDBA(動的帯域割当)を実行する。したがって図6に示したものと同様に、ネットワーク内の複数のTDMスイッチノードが複数のグループに分けられているとともに、グループごとにスレイブスケジューラが設けられ、さらに、全グループを束ねるものとして1つのマスタスケジューラが設けられている。
スケジューラ分散配備方式では、各グループごとに計算したノード単位スケジュールをグループ間で整合し計算結果を共有してグローバルスケジューリングを行うためにスケジュール共有メモリが設けられるが、本実施形態では、図7に示すように、各スレイブスケジューラ20ごとにスケジュール共有メモリ22を設ける。図7は本実施形態のバッファレスTDMネットワークにおけるマスタスケジューラ10とスレイブスケジューラ20との関係を示している。スレイブスケジューラ20ごとすなわちグループごとのスケジュール共有メモリ22は、好ましくは同一の容量を有する。
スレイブスケジューラ20ごとにスケジュール共有メモリ22を設ける場合、グループ間でスケジューリング結果を共有するというその目的から、各スケジュール共有メモリ22に格納されているスケジュールが整合している必要がある。そこで本実施形態では、各グループのスレイブスケジューラ20において、当該グループにおけるノードごとのスケジュール(すなわちローカルスケジュール)を演算するものとして、計算結果が内部状態に依存しないアルゴリズムを用いる内部状態非依存スケジュール決定部55を設けている。また、グループ間での整合を図るために、各グループのスレイブスケジューラ20は、そのスレイブスケジューラのグループ(これを着目グループと呼ぶ)以外のグループに設けられたスレイブスケジューラの内部状態非依存スケジュール決定部が演算するであろうスケジュールのうち、着目グループのスケジュール決定に必要なデータを算出する他グループスケジュール演算部56も備えている。内部状態非依存スケジュール決定部55で計算されたローカルスケジュールは、そのグループのTDMスイッチノード91内のスイッチコントローラ97に送られる。
ここで計算結果が内部状態に依存しないとは、スレイブスケジューラ20の内部状態に依存することなく、一意に結果が得られることを意味する。計算結果が内部状態に依存しないスケジュール演算アルゴリズムの例としては、例えば、ノードID順に、空いているタイムスロットから順にパスを割り当てるという、First Fit法がある。また、ランダム成分に演算に際して同一のシードを用いる擬似乱数を用いる方法の多くも、計算結果が内部状態に依存しないスケジュール演算アルゴリズムとして用いることができる。
本実施形態では、計算状態が内部状態に依存しないスケジュール演算アルゴリズムを用いてローカルスケジュールを演算することにより、グループ間でのスケジュール演算結果の整合が保証され、スケジュール共有メモリ22をスレイブスケジューラ20に配置することが可能になる。
図7に示した構成において、スレイブスケジューラ20とTDMスイッチノード91との間の通信遅延は、グループの地理的近傍にスレイブスケジューラ20を配置できるので、スケジューラ集中配備方式におけるスケジューラとTDMスイッチノードとの間の通信遅延よりも小さくなり、ローカルスケジューリングの周期をスケジューラ集中配備方式でのDBA周期よりも十分に小さくできる。また、グローバルスケジューリングの際のマスタスケジューラ10とスレイブスケジューラ20との間の通信回数は、たかだか1回に抑えることができ、本実施形態におけるグローバルスケジューリングの速度は、スケジューラ集中配備方式での一括スケジューリング速度と同等のものとすることができる。したがって、本実施形態では、ローカルスケジューリングの高速化及び高頻度化と、スケジューラ集中配備方式と同等のグローバルスケジューリング速度とすることとを同時に達成でき、従来のスケジューラ分散配備方式に比べて最小DBA周期を短くすることができる。
以下、本実施形態でのマスタスケジューラ10及びスレイブスケジューラ20について、さらに詳しく説明する。ここでは、バッファレスTDMネットワークが図8(a)に示すようにリング2段ネットワークとして構成されているものとする。図8(a)に示すネットワークでは、いずれもTDMスイッチノードである複数の端点ノード30が設けられており、これらの端点ノード30は、A−1〜A−4と記されて下位リングAに接続する端点ノード30からなる下位リングAノードグループ、B−1〜B−4と記されて下位リングBに接続する端点ノード30からなる下位リングBノードグループ、及び、C−1〜C−4と記されて下位リングCに接続する端点ノード30からなる下位リングCノードグループにグループ分けされている。各ノードグループにはスレイブスケジューラ20が設けられている。また、下位リングA〜Cを収容する上位リングが設けられている。下位リングと上位リングの間は、バッファを廃したTDMスイッチノード(ここではA−1、B−1、C−1)によって接続されているものとする。下位リングAノードグループには、上位リングに対応してグループ間のスケジューリングを行うマスタスケジューラ10も設けられている。下位リングA〜C及び上位リングの各々はユーザ情報プレーンと制御信号プレーンを備えている。ネットワークの各ノード間では、周波数同期、時刻同期が確立しているものとする。図8(a)に示される各端点ノード30は、論理的には、図8(b)に示されるように、フルメッシュネットワーク34に対してスター状に接続しており、ノード間は論理的には全ノードへの到達性を有するものとする。
ここでは、説明の簡単化のために、2段のリングネットワークを想定し、同一のリングに属するノードをグループとしているが、本発明は、任意のトポロジのネットワークにおいて、2階層以上の多階層的なノードのグルーピングを行った場合にも適用できる。n階層(nは2以上の整数)でノードのグルーピングを行う場合には、マスタスケジューラ⇒第1階層のスレイブスケジューラ⇒第2階層のスレイブスケジューラ⇒…⇒第n階層のスレイブスケジューラ⇒ノードと接続する。この場合、スレイブスケジューラの内部構成は変更する必要はないが、中間階層のスレイブスケジューラ(第1から第(n−1)階層のスレイブスケジューラ)では、下位階層でのグループをノードとみなすようにしてスケジュール演算を実行する。例えば、マスタスケジューラは第0階層のスケジューラであると考えると、第(k−1)階層のスケジューラは、k階層目のグループをノードと見なして計算した第k階層グループ間スケジュールを生成して第k階層のスレイブスケジューラに渡し、第k階層のスレイブスケジューラは、受け取った第k階層グループ間スケジュールに基づいて、第(k+1)階層のグループ分けをノードと見なしてスケジュールを計算し、第(k+1)階層スケジューラに渡す。k=nのときはノードに渡す。
また本発明は、TDM以外の多重化技術(例えば、光通信システムにおける波長分割多重(WDM:Wavelength-Division Multiplex)技術など)を同時に用いる場合であっても適用することができる。
図9(a)は、ここで示した例におけるマスタスケジューラ、スレイブスケジューラ及び端点ノード間の階層構成を示している。単一のマスタスケジューラ10の配下に複数のスレイブスケジューラ20が設けられ、各スレイブスケジューラ20には、それぞれ複数の端点ノード30が収容されている。また図9(b)は、下位ノードの構成の一例を示している。ここでは下位リングAノードグループの構成が示されているが、他の下位リングノードグループの構成も同様のものである。ラベルA−1〜A−4によってそれぞれ示される各端点ノード30には、ユーザデータを送受信するホストコンピュータ33が接続している。ノードグループ近傍にはそのノードグループに対するスレイブスケジューラ20が設けられており、このスレイブスケジューラ20に対して各端点ノード30は制御信号プレーンによってアクセス可能である。下位リングAノードグループは、マスタスケジューラ10を備えるノードグループであるので、図9(a)にはマスタスケジューラ10も描かれている。マスタスケジューラ10と各ノードグループのスレイブスケジューラ20とは、制御信号プレーンを介してアクセス可能である。
各端点ノード30は、TDM送受信部31とトラヒック情報報告部32とを備えた通信ノードに自走クロックとクロック同期機能とを備えたTDMスイッチノードである。TDM送受信部31は、それぞれホストコンピュータ33が接続されており、ユーザ情報プレーンを介して他ノードとの間で時分割多重方式によってユーザデータのやりとりを行う。一方、トラヒック情報報告部32は、制御信号プレーンを介し、帯域要求情報などをスレイブスケジューラ20に送り、スレイブスケジューラ20から当該ノードのスケジュールを受け取ってこのスケジュールに応じたスイッチ制御をTDM送受信部31に実行させる。
次に、マスタスケジューラ10の詳細について説明する。マスタスケジューラ10は、グループ集約化された要求帯域量を各スレイブスケジューラ20から受け取ってグループ単位スケジュールを計算し、グループ単位スケジュールを出力して各スレイブスケジューラ20に送信するものである。ここでグループ集約化された要求帯域量とは、グループを仮想的なノードとみなした要求帯域情報のことである。また、グループ単位スケジュールは、グループを仮想的なノードとみなしたスケジュール情報である。また、各スレイブスケジューラ20内の他グループスケジュール演算部を動作させるため、マスタスケジューラ10は、全ノードの要求帯域表を同時に各スレイブスケジューラ20に通知する機能も備える。
このような機能を備えるマスタスケジューラ10は、図10に示すように、報告フレーム数カウンタ41とグループ単位スケジュール保持メモリ42とネットワークトポロジ情報データベース(DB)43とグループ単位スケジュール演算部44と全ノード要求単位表通知フレーム作成部45とグループ単位スケジュール通知フレーム作成部とを備えている。なお、図7では、これらの機能ブロックをまとめてグループ単位スケジュール決定部11として表示している。
報告フレーム数カウンタ41は、スレイブスケジューラ20から報告されてくるグループ化された要求帯域量のフレームの数をカウントし、所定値に達したら、スケジューリングの演算処理を開始するために、スケジューリング開始トリガを発生する。
グループ単位スケジュール保持メモリ42は、グループ単位スケジュール作成のための作業メモリとなるものであり、送信グループと受信グループ(ここでは下位リングとグループとを一致させているので、送信リングと受信リング)との組み合わせごとに、要求された帯域量(要求帯域)、スケジューリングの結果割り当てた帯域量(割当帯域)、WDM技術が使用されているとしてスケジューリングの結果割り当てた波長(送信波長)、スケジューリングの結果割り当てたタイムスロットの開始時刻(送信時刻)、スケジューリングの結果割り当てたタイムスロットの長さ(継続時間)を格納するようになっている。特に、グループ単位スケジュール保持メモリ42の「要求帯域」には、グループ集約化された要求帯域量を受け取るごとに、対応する値が書き込まれる。
ネットワークトポロジ情報データベース43は、ネットワークのトポロジに関する情報が予め格納されたデータベースである。
グループ単位スケジュール演算部44は、スケジューリング開始トリガを受け取ると、グループ単位スケジュール保持メモリ42の内容とネットワークトポロジ情報データベース43とを参照して、グループ単位スケジューリングの演算を開始し、得られたグループ単位スケジュール(すなわち「割当帯域」、「送信波長」、「送信時刻」及び「継続時間」の組)をグループ単位スケジュール保持メモリ42に書き込む。スケジューリングが終了すれば、グループ単位スケジュール演算部44は、スケジューリング完了トリガを出力する。
全ノード要求帯域表通知フレーム作成部45は、スケジューリング完了トリガが発生したときに、グループ単位スケジュール保持メモリ42にアクセスして、全ノードの要求帯域表を示す全ノード要求帯域表通知フレームを作成し、このフレームをスレイブスケジューラ20に送信する。同様に、グループ単位スケジュール通知フレーム作成部46は、スケジューリング完了トリガが発生したときに、グループ単位スケジュール保持メモリ42にアクセスしてグループ単位スケジュールを読み出し、グループ単位スケジュールを示す通知フレームを作成し、このフレームをスレイブスケジューラ20に送信する。なお、以下の説明において、グループ単位スケジュールと全ノード要求帯域表とを合わせてグローバルスケジュールと呼ぶ。また、マスタスケジューラ10からスレイブスケジューラ20には、グローバルスケジュールとともに、スレイブスケジューラ用のスケジューリング開始トリガが送られるようになっている。
図11は、スレイブスケジューラ20の構成を示している。スレイブスケジューラ20は、トラヒック情報収集とスケジューリング配布との2つの動作ステートで動作するものであって、トラヒック情報収集(図示左側の上向き矢印のルート)では、各端点ノード30から入力された要求帯域情報をグループごとに集約してマスタスケジューラ10に出力し、一方、スケジューリング配布(図示右側の下向き矢印のルート)では、マスタスケジューラ10から入力したグループ単位スケジュールをノード単位スケジュールに詳細化して端点ノード30に出力する。このようなスレイブスケジューラ20は、詳細には、図7を用いて説明した内部状態非依存スケジュール決定部55及び他グループスケジュール演算部56の他に、要求帯域情報受取部51とグループ単位要求帯域集約・報告フレーム作成部52とグループ内スケジュール保持メモリ53とネットワークトポロジ情報データベース(DB)54とノード単位スケジュール通知フレーム作成部57とを備えている。ここでグループ内スケジュール保持メモリ53は、上述したスケジュール共有メモリ22に相当するものであるとともに、ノード単位スケジュール作成のための作業メモリとなるものである。
図においてグループ内スケジュール保持メモリ53内に記された[1]、[2]などの番号は、ノードの番号を示している。グループ内スケジュール保持メモリ53は、ネットワークを構成する全ノードを対象として、送信ノードと受信ノードの組み合わせごとに、グループ単位スケジュール保持メモリ42の場合と同様に、「要求帯域」、「割当帯域」、「送信波長」、「送信時刻」及び「継続時間」を保持する。
要求帯域情報受取部51は、端点ノード30から要求帯域量を表す情報(要求帯域情報)を受け取り、これに基づいてグループ内スケジュール保持メモリ53内の「要求帯域」に値を格納する。また要求帯域情報受取部51は、配下の端点ノード30から帯域要求情報が出揃ったときに、集約報告作成トリガを発生する。
グループ単位要求帯域集約・報告フレーム作成部52は、集約報告作成トリガに応じてグループ内スケジュール保持メモリ53にアクセスしてグループ単位に集約した要求帯域量を算出し、これをグループ集約化された要求帯域量としてこの集約化された要求帯域量を報告するフレームを作成し、マスタスケジューラ10に送信する。
ネットワークトポロジ情報データベース54は、ネットワークのトポロジに関する情報が予め格納されたデータベースである。
内部状態非依存スケジュール決定部55は、マスタスケジューラ10からグローバルスケジュールとスケジューリング開始トリガとが入力すると、グループ内スケジュール保持メモリ53の内容とネットワークトポロジ情報データベース54とを参照して、グローバルスケジュールのうちのグループ単位スケジュールをノード単位スケジュールに展開し、結果をグループ内スケジュール保持メモリ53に書き込む。また内部状態非依存スケジュール決定部55は、マスタスケジューラ10からのグループ単位スケジュールの入力がないときであっても、ネットワークトポロジ情報データベース54とグループ内スケジュール保持メモリ53を参照してローカルスケジューリングを実行し、結果をグループ内スケジュール保持メモリ53に書き込む。
他グループスケジュール演算部56は、マスタスケジューラ10からグローバルスケジュールとスケジューリング開始トリガとが入力すると、ネットワークトポロジ情報データベース54を参照して、他グループから自グループへの送信のスケジュールを計算し、その結果をグループ内スケジュール保持メモリ53に書き込む。
ノード単位スケジュール通知フレーム57は、グループ内スケジュール保持メモリ53にアクセスして、配下のノードごとのスケジュールを作成してそれを通知するフレームを作成し、各端点ノード30に送信する。
上述したように、スレイブスケジューラ20は、マスタスケジューラ10からのグループ単位スケジュールの入力がなくても、単独でローカルスケジューリングを行う機能を有する。この機能自体は、従来のスケジューラ分散配備方式におけるスレイブスケジューラに備えられるものであるが、ここで、障害があった場合であってもローカルスケジューリングを行えることを説明する。
図12(a)に示すタイムシーケンスにおいて、スレイブスケジューラ20は、配下の端点ノード30からの帯域要求量に関する報告を待ち、全ての報告が揃ったことをトリガとしてローカルスケジュールの演算を開始する。しかしながら、障害によって一部のノードからの報告がスレイブスケジューラ20に不着となることがある。そのような場合に備えてタイムアウト時間が設定されており、現行のスケジュールからタイムアウト時間が経過すると(図示、スケジューラ側タイムアウト時刻)、報告が揃わなくてもスレイブスケジューラ20は演算を開始する。これにより、ノードの故障やパケット損失があってもスケジュール更新を継続することができる。また、端点ノード30側において次のスケジュール通知を受信できなかった場合(不着の場合)にも、現行のスケジュールの適用開始から一定の時間でタイムアウトしてその時点(図示、端末ノード側タイムアウト時刻)からは空スケジュールを適用することで、正常に更新された次スケジュールの通信に対する干渉を防ぐことができる。ここでいう空スケジュールとは、当該ノードからの送受信を行わない、とするスケジュールのことである。
このようなローカルスケジューリングにおいては、図12(b)に示すように、内部状態非依存スケジュール決定部55のみが、グループ内スケジュール保持メモリ53に対するスケジュールの書込みを実行する。
次に、本実施形態の動作について説明する。
まずローカルスケジューリングを説明する。図13(a)はローカルスケジューリングを説明するシーケンス図であり、図13(b)はローカルスケジューリングにおけるネットワーク内の制御情報の流れを示している。図において“SN”は「スケジュール番号」の略記である。また図14は、端点ノード30、スレイブスケジューラ20及びマスタスケジューラ10の構成をまとめて示したブロック図であるが、この図において、<1>とか<2>の表示は、スケジューリングにおける処理フェーズを示している。すなわち、図14に示す各機能ブロック内に記載された<1>や<2>の表示は、当該機能ブロックが処理フェーズ<1>や<2>の動作に関与することを示している。また機能ブロック間を接続する線に付記された<1>や<2>の表示は、処理フェーズ<1>や<2>に際して当該機能ブロック間でデータが送受信されることを示している。
本実施形態においては、マスタスケジューラ10及びスレイブスケジューラ20のいずれのものから通知されるスケジュールには、そのスケジュールが適用されるべき開始時刻と終了時刻とが設定されている。なお、初回のスケジュール通知は、一般にマスタスケジューラ10を起点にして行われ、その開始時刻はT(0,0)であり終了時刻はT(0,1)である。
現在のスケジュールの適用開始時刻(図示した例では時刻T(0,0))になると同時に、各端点ノード30からの要求帯域情報報告が開始される。これが処理フェーズ<1>であり、図14に示すように、端点ノード30のトラヒック情報報告部32から要求帯域量がスレイブスケジューラ20に送られ、要求帯域受取部51で受け付けられてその要求帯域量がグループ内スケジュール保持メモリ53に書き込まれる。
スレイブスケジューラ20は、この報告を受けてノード単位スケジュールのみを更新し、結果を端点ノード30に通知する。これが処理フェーズ<2>である。処理フェーズ<2>では、内部状態非依存スケジュール決定部55が、ネットワークトポロジ情報データベース54を参照し、グループ内スケジュール保持メモリ53にアクセスしてローカルスケジューリング演算を行い、結果をグループ内スケジュール保持メモリ53に書き込む。ローカルスケジューリング演算では、計算結果が内部状態に依存しないアルゴリズムを用いて、図12(b)に示すように、自グループ内の端点ノード30相互間のパスに関するスケジュールと、自グループ内の端点ノード30から送信されて他グループ内の端点ノード30に受信されるパスに関するスケジュールとを演算する。また複数のスレイブスケジューラ20のそれぞれに設けられる内部状態非依存スケジュール決定部55で用いるスケジュール演算アルゴリズムは、同一のものであるとする。その後、ノード単位スケジュール通知フレーム作成部57が、グループ内スケジュール保持メモリ53にアクセスしてノード単位スケジュールを作成して端点ノード30に通知し、TDM送受信部31にノード単位スケジュールが設定される。ノード単位スケジュールの通知と設定が、図13(b)でのローカルスケジュール割当に対応する。
各端点ノード30は、現行スケジュールの通用期間終了(図示した例では時刻T(0,1))を待って、その後は更新されたスケジュールでの通信を開始する。同様の処理が以下繰り返される。
次に、グローバルスケジュールの更新について説明する。
図15は、グローバルスケジュールの更新での大まかな情報の流れを示している。まず、各下位リングすなわちグループにおいて、端点ノード30からの要求帯域情報がスレイブスケジューラ20に集められ、各グループのスレイブスケジューラ20から、グループごとに集約化された要求帯域がマスタスケジューラ10に送られる。マスタスケジューラ10は、グループ単位スケジュールを演算して各スレイブスケジューラ20に通知し、これを受け取ったスレイブスケジューラ20は、配下の端点ノード30に対してローカルスケジュールを通知する。
図16は、このようなグローバルスケジュールの更新をシーケンス図として示したものである。初回スケジュールの通知についてはローカルスケジューリングの場合と同じである。上述したローカルスケジューリングと並行して、端点ノード30からある要求帯域情報報告は、いったんスレイブスケジューラ20においてグループごとに集約化され、配下の全ノード分の報告の到着をトリガとして、メインスケジューラ10に報告される。これが処理フェーズ<3>である。処理フェーズ<3>では、処理フェーズ<1>での動作に加え、要求帯域情報受取部51が集約報告作成トリガを出力し、このトリガを受けてグループ単位要求帯域集約・報告フレーム作成部52がグループ内スケジュール保持メモリ53にアクセスしてグループ集約化された要求帯域量を示す報告フレームを作成し、この報告フレームをマスタスケジューラ10に送信する。マスタスケジューラ10では、報告フレーム数カウンタ41がグループ集約化された要求帯域量の報告フレーム数をカウントし、また、グループごとの要求帯域量がグループ単位スケジュール保持メモリ42に格納される。
次に、グループ集約化された要求帯域量が全てのスレイブスケジューラ20から到着したことをトリガとして、グループ単位スケジュール演算が実行されてグループ単位スケジュールが計算され、スレイブスケジューラ20に通知される。これが処理フェーズ<4>である。処理フェーズ<4>では、グループ集約化された要求帯域量が全てのスレイブスケジューラ20から到着したことを報告フレーム数カウンタ41が検出すると報告フレーム数カウンタ41がスケジューリング開始トリガを出力し、このスケジューリング開始トリガを受けてグループ単位スケジュール演算部44がネットワークトポロジ情報データベース43を参照してグループ単位スケジュール保持メモリ42にアクセスして、グループ単位スケジュール演算を実行し、その計算結果をグループ単位スケジュール保持メモリ42に書き込む。また、グループ単位スケジュール演算が完了すると、グループ単位スケジュール演算部44は、スケジューリング完了トリガを出力する。スケジューリング完了トリガを受けて、全ノード要求帯域表通知フレーム作成部45及びグループ単位スケジュール通知フレーム作成部46は、それぞれ、グループ単位スケジュール保持メモリ42にアクセスして、全ノードの要求帯域表を示す全ノード要求帯域表通知フレームとグループ単位スケジュールを示す通知フレームを作成し、グローバルスケジュールとしてこれらの通知フレームをスレイブスケジューラ20に送信する。このときスケジューリング開始トリガもスレイブスケジューラ20に送信される。グローバルスケジュールの通知フレームとスケジューリング開始トリガとはスレイブスケジューラ内の内部状態非依存スケジュール決定部55と他グループスケジュール演算部56に受け付けられる。特に内部状態非依存スケジュール決定部55は、グローバルスケジュールのうちグループ単位スケジュールを受け付ける。
次に、各スレイブスケジューラ20が、演算されたグループ単位スケジュールに基づいて、配下の端点ノード30向けにローカルスケジューリングを行う。これが処理フェーズ<5>である。処理フェーズ<5>では、スケジュール開始トリガに応じて内部状態非依存スケジュール決定部55が、ネットワークトポロジ情報データベース54を参照するとともにグループ内スケジュール保持メモリ53にアクセスし、グループ単位スケジュールをグループ内でのスケジュールに展開する形でローカルスケジューリング演算を行い、結果をグループ内スケジュール保持メモリ53に書き込む。ここでのローカルスケジューリング演算は、処理フェーズ<2>でのアルゴリズムと同じアルゴリズムを用いて、自グループ内の端点ノード30相互間のパスに関するスケジュールと、自グループ内の端点ノード30から送信されて他グループ内の端点ノード30に受信されるパスに関するスケジュールとを演算する。また他グループスケジュール演算部56が、スケジュール開始トリガに応じ、ネットワークトポロジ情報データベース54を参照するとともにグループ内スケジュール保持メモリ53にアクセスし、グローバルスケジュールすなわちグループ単位スケジュールと全ノード要求帯域表とに基づいて、他グループの端点ノード30から送信されて自グループの端点ノード30に受信されるパスに関するスケジュールを演算し、その結果をグループ内スケジュール保持メモリ53に書き込む。他グループスケジュール演算部56がスケジュール演算に使用するアルゴリズムは、内部状態非依存スケジュール決定部55で用いるものと同じである。全てのスレイブスケジューラ20の内部状態非依存スケジュール決定部55と他グループスケジュール演算部56とにおいて同一のスケジュール演算アルゴリズムを用いることにより、異なるグループに属する端点ノード30間での送受信のスケジュールに関して、全てのスレイブスケジューラ20のグループ内スケジュール保持メモリ53に格納された内容が相互に整合がとれたものとなる。その後、ノード単位スケジュール通知フレーム作成部57が、グループ内スケジュール保持メモリ53にアクセスしてノード単位スケジュールを作成して端点ノード30に通知し、TDM送受信部31にノード単位スケジュールが設定される。
各端点ノード30は、処理フェーズ<1>,<2>として説明したローカルスケジューリングの場合と同様に、現行スケジュールの通用期間終了(図示した例では時刻T(0,1))を待って、その後は更新されたスケジュールでの通信を開始する。同様の処理が以下繰り返される。
ここで図17を参照して、本実施形態において、内部状態非依存スケジュール決定部55と他グループスケジュール演算部56とを設けることにより、全てのスレイブスケジューラ20間でローカルスケジューリングの計算結果の相互参照を行うことなく、グローバルスケジューリングを行えることを説明する。
ここでは2つのグループ(グループAとグループB)が設けられてグループごとにスレイブスケジューラが設けられているものとする。図中、[1],[2]は、各グループに設けられるノードを示している。マスタスケジューラ10によって計算されたグループ単位スケジュール(例えば、送信開始時刻と送信継続時間の組)と、マスタスケジューラ10が収集した各ノードごとの要求帯域(これは全ノード要求帯域表として表される)とが、図に示したもののようであった場合、グループAのスレイブスケジューラ20の内部状態非依存スケジュール決定部55は、グループA内のノード間のスケジュール(図示、aとd)とグループA内のノードを送信ノードとしてグループB内のノードを受信ノードとするスケジュール(図示、bとcとeとf)とを決定し、グループ内スケジュール保持メモリ53に書き込む。図では全ノード要求帯域表が内部状態非依存スケジュール決定部55にも与えられるように示されているが、グループA内のノードの送信ノードとする要求帯域量は、そもそもグループAのスレイブスケジューラ20がマスタスケジューラ10に送ったものであるので、内部状態非依存スケジュール決定部55は、マスタスケジューラ10から全ノード要求帯域表を受け取ることなく、図示するa〜c,d〜fのスケジュールを決定できる。
一方、グループAの他グループスケジュール演算部56は、グループBのスレイブスケジューラ内に設けられた内部状態非依存スケジュール決定部55が決定するグルーブB内のノードを送信ノードとしグループA内のノードを受信ノードとするスケジュール(図示、gとhとjとk)とを代理で計算する。ここでは、全てのスレイブスケジューラ20にわたって、計算結果が内部状態に依存しない同一のアルゴリズムを用いて内部状態非依存スケジュール決定部55と他グループスケジュール演算部56とがスケジュールを演算するので、同一のグループ単位スケジュールが通知されていれば、グループB内のノードを送信ノードとしグループA内のノードを受信ノードとするスケジュールに関し、グループAの他グループスケジュール演算部56が計算した受信スケジュールと、グループBの内部状態非依存スケジュール決定部55が計算する送信スケジュールとは完全に一致するはずである。同様に、グループA内のノードを送信ノードとしグループB内のノードを受信ノードとする場合に、グループBの他グループスケジュール演算部56が計算する受信スケジュールとグループAの内部状態非依存スケジュール決定部55が計算する送信スケジュールも完全に一致する。
したがって、本実施形態では、スケジューラ分散配備方式を取りつつも、全てのスレイブスケジューラ20での計算結果を相互に参照することなく、グループ間で整合性の取れたグローバルスケジューリングを達成できる。なお、グループAの他グループスケジュール演算部56は、グループB内のノード間のスケジュール(図示、iとlに対応するもの)を決定することができ、これはグル―プBの内部状態非依存スケジュール決定部55が決定するスケジュールと一致するが、グループAのスレイブスケジューラ20としてはグループB内で完結する送受信のスケジュールに関与する必要はないので、図示「不要」と記載するように、グループAの他グループスケジュール演算部56はグループB内のノード間のスケジュールを計算しないでもよい。
以上説明した実施形態において、マスタスケジューラ10及びスレイブスケジューラ20は、いずれも、専用ハードウェアとして構成することもできるが、マイクロプロセッサやメモリ、通信インタフェースなどを備える汎用のコンピュータを利用し、マスタスケジューラ10あるいはスレイブスケジューラ20の機能を実行するコンピュータプログラムをこのコンピュータ上で実行させることによっても実現できる。コンピュータ上でプログラムを実行することによってマスタスケジューラ10を実現する場合、グループ単位スケジュール保持メモリ42及びネットワークトポロジ情報データベース43は、そのコンピュータを構成するメモリ内に記憶され格納される。同様に、コンピュータ上でプログラムを実行することによってスレイブスケジューラ20を実現する場合、グループ内スケジュール保持メモリ53及びネットワークトポロジ情報データベース54は、そのコンピュータを構成するメモリ内に記憶され格納される。
次に、本実施形態による伝送遅延削減の効果を見積もった結果を説明する。
バッファレスTDMネットワークとして、図8(a)に示したようなリング2段ネットワークとして構成されているものを考える。上位リングの数は1個、下位リングの数は30個であるものとする。したがって上位リングでのノード(すなわち下位リングと接続するノード)の数は30個となる。各下位リングにはそれぞれ40個のノードが設けられているものとする。上位リングの1周距離は400kmであり、その伝搬遅延(信号がリングを1周するのに要する時間)は2msであるものとする。一方、各下位リングの1周距離は40kmであり、その遅延時間は0.2msであるものとする。
メインスケジューラ10でのスケジュール演算時間は5msであり、各スレイブスケジューラ20でのスケジュール演算時間も5msであるとする。この数値は、上述した規模のネットワークにおいて一般的に想定し得る値である。
ところで、下位リングのスケジュール更新に要する時間は、そのスケジュール演算の全体に要する時間と、スケジューラまでの往復伝搬遅延との和で表される。リングネットワークにおいては往復伝搬遅延の代わりに1周の遅延時間が用いられる。
本実施形態に基づく場合では、下位リングのスケジュールの更新演算の全体に要する時間は、メインスケジューラでの演算時間と当該下位リングにおけるスレイブスケジューラでの演算時間の和である10msである。また、往復伝搬遅延は、下位リング内のみのものを考えればよいから、0.2msである。したがって達成できる最短DBA周期は10msと0.2msとの和である10.2msとなる。
一方、階層化演算を行うスケジューラ集中配備方式を採用した場合、階層化演算自体は本実施形態でのマスタスケジューラでの処理とスレイブスケジューラでの処理を1台のスケジューラで実行していることと変わらないから、下位リングのスケジュールの更新演算の全体に要する時間は、本実施形態に基づく場合のマスタスケジューラの演算時間とスレイブスケジューラの演算時間との和である10msとなる。また、往復遅延時間については、上位リングにおけるものと下位リングにおけるものとを考慮しなければならないから、それらの和である2.2msとなる。したがってスケジューラ集中配備方式では、最短DBA周期は、10msと2.2msとの和である12.2msとなる。
結局、本実施形態に基づく場合には、階層化演算を行うスケジューラ集中配備方式を用いる場合に比べ、最短DBA周期を16.4%削減できることになる。
本実施形態に基づく場合、グローバルスケジュールの更新には、上位リングでの往復遅延時間も考えなければならないので12.2msが必要である。これに対して図6(b)に示すようにスケジュール共有メモリをマスタスケジューラ内に設けた場合には、上位リンクを経由する複数回のアクセスが発生し、このアクセス1回あたりに2msを要するから、本実施形態に基づく場合に比べてグローバルスケジューリングに要する時間が大幅に長くなってしまう。また、グループが異なるノード間のパスに対するスケジューリングを行うことを考えると、スケジュール共有メモリをマスタスケジューラ内に設けた場合には、グローバルスケジューリングの頻度をある程度以上に小さくすることができず、その分、全体的に見たDBA周期が長くなる。