(57)【要約】【課題】厳密優先度重み付けラウンドロビンスケジューリングのシステム、方法、およびコンピュータ可読媒体を提供すること。【解決手段】厳密優先度重み付けラウンドロビンスケジューリングのシステム、方法、およびコンピュータ可読媒体は、受信されたデータパケットにそれぞれが関連付けられた、共通の宛先アドレスを有する帯域幅割り当てテーブルの充たされたエントリのセットを選択することと、初めに優先度で、次いで割り当てられた重みにより、選択されたセットにある各帯域幅割り当てテーブルエントリのスケジューリングの重みを判定することとを含む。【選択図】      図１
2006141028.tif 000002
【特許請求の範囲】
【請求項１】
厳密優先度重み付けラウンドロビンスケジューリングの方法であって、
宛先アドレス、優先度、および初期の重みを含むデータパケットを受信するステップと、
その宛先アドレス、優先度、および初期の重みを含む、受信されたデータパケットに関連付けられた帯域幅割り当てテーブルのエントリを作成するステップと、
関連付けられたデータパケットが受信されると所定の値だけ帯域幅割り当てテーブルのインクリメントを増すステップと、
受信されたデータパケットのバイト数を計数するステップと、
帯域幅割り当てテーブルのブロック数を、関連付けられた受信されたデータパケットの計数されたバイト数に設定するステップと、
受信されたデータパケットにそれぞれが関連付けられた、共通の宛先アドレスを有する帯域幅割り当てテーブルの充たされたエントリのセットを選択するステップと、
関連付けられた受信されたデータパケットのフレームの最後が受信された後に、インクリメントとブロック数を乗算し、その積を、関連付けられた受信されたデータパケットの帯域幅割り当てテーブルの初期の重みに足すことにより、受信されたデータパケットの割り当てられた重みを、計算するステップと
を備える方法。
【請求項２】
初めに優先度で、次いで割り当てられた重みにより、選択されたセットにある各帯域幅割り当てテーブルエントリのスケジューリングの重みを判定するステップを備える請求項１に記載の方法。
【請求項３】
オーバーフローが発生する場合は、同じ宛先アドレスと共通の優先度を有する選択されたエントリの割り当てられた重みをゼロにリセットするステップを備える請求項１に記載の方法。
【請求項４】
データパケットの送信の許可を受け付けるステップを備える請求項１に記載の方法。
【請求項５】
最小のスケジューリングの重みを有するデータパケットを送信するステップを備える請求項１に記載の方法。
【請求項６】
厳密優先度重み付けラウンドロビンスケジューリングを提供するように構成されたシステムであって、
受信ポート識別子からデータパケットが受信される待ち行列と帯域幅割り当てテーブルとを有するメモリであって、帯域幅割り当てテーブルは、インデックス、宛先アドレス、優先度、初期の重み、インクリメント、およびブロック数を有する、受信されたデータパケットに関連付けられたエントリを有する、メモリと、
メモリの待ち行列と帯域幅割り当てテーブルに通信可能に結合されたプロセッサと
を備え、プロセッサは、
共通の宛先アドレスと優先度を有する帯域幅割り当てテーブルエントリのセットを選択し、
データパケットが待ち行列に受信されると所定の値だけ帯域幅割り当てテーブルのインクリメントを増し、
受信されたデータパケットのバイト数を計数し、
帯域幅割り当てテーブルのブロック数を、受信されたデータパケットの計数されたバイト数に設定し、
インクリメントとブロック数を乗算し、その乗算の積を、受信されたデータパケットの初期の重みに加算することにより、受信されたデータパケットの割り当てられた重みを計算し、
初めに優先度で、次いで割り当てられた重みにより、選択されたセットにある各帯域幅割り当てテーブルエントリのスケジューリングの重みを判定する
ように構成されるシステム。
【請求項７】
プロセッサによる割り当てられた重みの計算は、関連付けられた受信されたデータパケットのフレームの最後が待ち行列に受信された後に行われる請求項６に記載のシステム。
【請求項８】
プロセッサは、オーバーフローが発生する場合は、同じ宛先アドレスと共通の優先度を有する選択されたエントリの割り当てられた重みをゼロにリセットする請求項６に記載のシステム。
【請求項９】
プロセッサは、メモリの待ち行列からデータパケットを送信する許可を受け付ける請求項６に記載のシステム。
【請求項１０】
プロセッサは、最小のスケジューリングの重みを有するデータパケットをメモリの待ち行列から送信する請求項６に記載のシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本特許出願は、２００４年１１月１０日に出願された「７３４２ＦＴＴＵ  ＧＰＯＮ  ＯＮＴ  ＳＷＲＲ  ＳＣＨＥＤＵＬＥＲ」という名称の米国仮特許出願第６０／６２６６５２号の関連出願であり、その優先権を請求する。同特許出願の全内容は、参照により本明細書に包含される。
【０００２】
本発明は、一般には、シグナリングサーバのための単一レベルのスケジューリング機構に関し、より詳細には、ギガビット受動光ネットワークの厳密優先度重み付けされたラウンドロビンのスケジューリング機構に関する。
【背景技術】
【０００３】
現在、データパケットネットワークは、サービス品質の要件を満たすためにスケジューリングを必要とする。優先順位と重み付けの両方に対応するスケジューリング機構は、現在、各レベルの優先順位と重みを別々に考慮する複数レベルのスケジューリングを必要とする。スケジューリングの難しさは、指定される優先順位と重みのパーセンテージが様々に異なる点にある。現在のハードウェアの実装は、各レベルが厳密優先度であるか、または重み付けされた、複数レベルのスケジューリング機構を必要とする。
【発明の開示】
【発明が解決しようとする課題】
【０００４】
したがって、柔軟性のある単一レベルのスケジューラが必要とされる。より詳細には、優先度、重み、または優先度と重みの組み合わせに従ってスケジューリングする単一レベルのスケジューリング機構を提供することができる、ソフトウェアとして実施された、厳密優先度重み付けされたラウンドロビンのスケジューラが必要とされる。同じ宛先（ＡｌｌｏｃＩｄで識別される）に基づくスケジューラの多重出力または論理的な分割が、本発明によって提供される主要な柔軟性である。
【課題を解決するための手段】
【０００５】
ギガビットの受動光ネットワークのトラフィック制御は、サービス品質の要件を満たすためにスケジューラの使用を必要とする。データパケットは、論理的な出力ポート（ＡｌｌｏｃＩｄ）、関連付けられた優先度、重み、または優先度と重みの両方を有することができる。現在、ハードウェアで適切なスケジューリングの重みを判定するには、優先度と重みを別個に考慮するための複数レベルのスケジューリングが必要となる。本発明は、論理的出力ポート、優先度、および重みの組み合わせを単一レベルのスケジューラで評価することを可能にする機構を提供する。
【０００６】
スケジュールされ、ルーティングされるデータパケットは、トラフィック制御のために待ち行列に入る。データパケットに関連付けられ、トラフィック制御に必要とされる情報は、帯域幅割り当てテーブル（ＢＡＴ）に記憶される。本発明の単一レベルスケジューラは、帯域幅割り当てテーブルの情報を利用して、スケジューリングの決定を行う。データパケットに関連付けられた帯域幅割り当てテーブルのデータは、データパケットを識別するインデックス、データパケットがルーティングされるＡｌｌｏｃＩｄと称される宛先アドレス、優先度、初期の重み、インクリメントの重み、およびブロック数を含む。
【０００７】
帯域幅割り当てテーブルのインデックスは、データパケットを識別する値である。インデックスは、ＰｏｒｔＩｄと称される着信識別子に関連付けられることができる。
【０００８】
帯域幅割り当てテーブルのデータパケットの宛先アドレスは、データパケットのルーティングを識別するために使用される値である。宛先アドレスは、ＡｌｌｏｃＩｄと称される。２つ以上のデータパケットに同じ宛先アドレスが使用されることができる。２つ以上のデータパケットが同じ宛先アドレスにルーティングされる場合は、トラフィックを制御するためにスケジューリングが必要とされる。
【０００９】
帯域幅割り当てテーブルのデータパケットの優先度は、最も高い優先度である０と、最も低い優先度である７の間の値である。２つ以上のデータパケットが同じ宛先アドレスを有する場合は、その宛先アドレスにルーティングされる各データパケットは、スケジューリングを可能にするために異なる優先度に割り当てられるべきである。
【００１０】
帯域幅割り当てテーブルのデータパケットの初期の重みは、２つ以上のデータパケットが同じアドレスと同じ優先度を有する場合に必要とされる。その場合、各データパケットには、スケジューリングを可能にするために重みが割り当てられるべきである。
【００１１】
帯域幅割り当てテーブルのデータパケットのインクリメントは、データパケットのフレームの最後が待ち行列に受信されると増される。
【００１２】
帯域幅割り当てテーブルのデータパケットのブロック数は、データパケットのフレームの最後が待ち行列に受信された時に、待ち行列にそれまでに受信されたバイト数を累算する。
【００１３】
厳密優先度重み付けラウンドロビンスケジューラによって計算されるデータパケットの割り当てられた重みは、そのデータパケットの初期の重みに、インクリメントとブロック数の積を足した値である。
【００１４】
データパケットの指定された送信順序は、待ち行列の順序と呼ばれる。共通の宛先アドレスに送信されるデータパケットには、初めに厳密優先度に基づいて、次いで同じ優先度を有するパケットの割り当てられた重みに基づいて、待ち行列の順序が割り当てられる。
【００１５】
送信の許可は、待ち行列から宛先アドレスＡｌｌｏｃＩＤにデータパケットを送信する許可である。
【００１６】
一実施形態では、厳密優先度重み付けラウンドロビンスケジューリングの方法は、共通の宛先アドレスを有する、帯域幅割り当てテーブルの充たされたエントリのセットを選択し、充たされた各エントリは、受信されたデータパケットに関連付けられることと、選択されたセットにある各帯域幅割り当てテーブルエントリのスケジューリングの重みを、初めに優先度により、次いで割り当てられた重みにより、求めることとを含む。
【００１７】
一実施形態で、厳密優先度ラウンドロビンスケジューリングの方法は、宛先アドレス、優先度、および初期の重みを含むデータパケットを受信すること、その宛先アドレス、優先度、および初期の重みを含む、受信されたデータパケットに関連付けられた帯域幅割り当てテーブルエントリを作成すること、関連付けられたデータパケットが受信されると所定の値だけ帯域幅割り当てテーブルのインクリメントを増すこと、受信されたデータパケットのバイト数を計数すること、帯域幅割り当てテーブルのブロック数を、関連付けられた受信されたデータパケットの計数されたバイト数に設定すること、関連付けられた受信されたデータパケットの帯域幅割り当てテーブルエントリにインクリメントを加えること、関連付けられた受信されたデータパケットの帯域幅割り当てテーブルエントリにブロック数を加えること、受信されたデータパケットにそれぞれが関連付けられた、共通の宛先アドレスを有する帯域幅割り当てテーブルの充たされたエントリのセットを選択すること、インクリメントとブロック数を乗算し、その積を、関連付けられた受信されたデータパケットの帯域幅割り当てテーブルの初期の重みに足すことにより、受信されたデータパケットの割り当てられた重みを計算することであって、割り当てられた重みの計算は、関連付けられた受信されたデータパケットのフレームの最後の後に行われること、初めに優先度により、次いで割り当てられた重みにより、選択されたセットにある各帯域幅割り当てテーブルエントリのスケジューリングの重みを求めること、オーバーフローが生じる場合は、同じ宛先アドレスと共通の優先度を有する選択されたエントリの割り当てられた重みをゼロにリセットすること、データパケットの送信の許可を受け付け、スケジューリングの重みが最小のデータパケットを送信すること、を含む。
【００１８】
別の実施形態で、厳密優先度重み付けラウンドロビンスケジューリング機構のための命令を備えるコンピュータ可読媒体は、データパケットが受信されると所定の値だけ帯域幅割り当てテーブルのインクリメントを増すこと、受信されたデータパケットのバイト数を計数すること、帯域幅割り当てテーブルのブロック数を、関連付けられた受信されたデータパケットの計数されたバイト数に設定すること、インクリメントとブロック数を乗算し、その積を、関連付けられた受信されたデータパケットの帯域幅割り当てテーブルの初期の重みに足すことにより、受信されたデータパケットの割り当てられた重みを計算すること、初めに優先度により、次いで割り当てられた重みにより、選択されたセットにある各帯域幅割り当てテーブルエントリのスケジューリングの重みを求めること、受信されたデータパケットにそれぞれが関連付けられた、共通の宛先アドレスを有する帯域幅割り当てテーブルの充たされたエントリのセットを選択することであって、割り当てられた重みの計算は、関連付けられた受信されたデータパケットのフレームの最後が受信された後に行われること、オーバーフローが生じる場合は、同じ宛先アドレスと共通の優先度を有する選択されたエントリの割り当てられた重みをゼロにリセットすること、データパケットの送信の許可を受け付け、スケジューリングの重みが最小のデータパケットを送信すること、を含む。
【００１９】
さらなる実施形態で、厳密優先度重み付けラウンドロビンスケジューリング機構は、インデックス、宛先アドレス、優先度、初期の重み、インクリメント、およびブロック数を有する、受信されたデータパケットに関連付けられたエントリを帯域幅割り当てテーブルに作成する命令、帯域幅割り当てテーブルのエントリにインデックスを割り当てる命令、帯域幅割り当てテーブルエントリの優先度を判定する命令、帯域幅割り当てテーブルエントリの初期の重みを割り当てる命令、関連付けられたデータパケットが受信されると所定の値だけ帯域幅割り当てテーブルエントリのインクリメントを増す命令、および、帯域幅割り当てテーブルエントリのブロック数を、関連付けられた受信されたデータパケットのバイト数に設定する命令を含むコンピュータ可読媒体を有する。
【００２０】
さらなる実施形態で、厳密優先度重み付けラウンドロビンスケジューリングを提供するように構成されたシステムは、受信ポート識別子からデータパケットが受信される待ち行列を有するメモリであって、帯域幅割り当てテーブルは、インデックス、宛先アドレス、優先度、初期の重み、インクリメント、およびブロック数を有する、受信されたデータパケットに関連付けられたエントリを有するメモリと、メモリの待ち行列および帯域幅割り当てテーブルに通信可能に結合されたコンピュータプロセッサなどのプロセッサとを含み、プロセッサは、共通の宛先アドレスと優先度を有する帯域幅割り当てテーブルエントリのセットを選択し、プロセッサは、待ち行列にデータパケットが受信されると所定の値だけ帯域幅割り当てテーブルのインクリメントを増し、プロセッサは、受信されたデータパケットのバイト数を計数し、プロセッサは、帯域幅割り当てテーブルのブロック数を、受信されたデータパケットの計数されたバイト数に設定し、プロセッサは、インクリメントとブロック数を乗算し、その積を受信されたデータパケットの初期の重みに足すことにより、受信されたデータパケットの割り当てられた重みを計算し、プロセッサは、初めに優先度で、次いで割り当てられた重みにより、選択されたセットにある各帯域幅割り当てテーブルエントリのスケジューリングの重みを判定し、プロセッサによる割り当てられた重みの計算は、関連付けられた受信されたデータパケットのフレームの最後が待ち行列に受信された後に行われ、プロセッサは、オーバーフローが生じる場合は、同じ宛先アドレスと共通の優先度を有する選択されたエントリの割り当てられた重みをゼロにリセットし、プロセッサは、メモリ中の待ち行列からデータパケットを送信する許可を受け付け、プロセッサは、スケジューリングの重みが最小のデータパケットをメモリの待ち行列から送信する。
【発明を実施するための最良の形態】
【００２１】
次いで図１を参照すると、さらに下記で説明するいくつかのブロックまたはモジュールを備える本発明のシステム１０を介して、厳密優先度重み付けラウンドロビン（ＳＰＷＲＲ）スケジューリングの方法が行われる。それらのブロックまたはモジュールは、ソフトウェア、ハードウェア、ファームウェア、および／またはソフトウェア、ハードウェア、および／またはファームウェアの組み合わせである。スケジューリングされ、ルーティングされるデータパケットのセット２２、２４、２６が、トラフィック制御のために待ち行列またはＳＰＷＲＲスケジューラ１２に入る。それらのデータパケットに関連付けられ、トラフィック制御のために必要とされる情報が、帯域幅割り当てテーブル（ＢＡＴ）１４に記憶される。受信されるデータパケットは、ＰｏｒｔＩｄ１６、１８、２０と称される受信ポート識別子から待ち行列に到着する。これらのデータパケットは、ある優先度を有する。ＳＰＷＲＲスケジューラ１２は、ＢＡＴと連係して（ｉｎｔｅｒｆａｃｅ）、データパケットのスケジューリングの重みを判定する。スケジューリングの重みが計算されると、データパケットは、ＡｌｌｏｃＩＤ２８、３０、３２と称される宛先アドレスにルーティングされる。
【００２２】
次いで図２を参照すると、厳密優先度重み付けラウンドロビン（ＳＰＷＲＲ）スケジューリングのためのより詳細なシステム４０が図示され、このシステムは、いくつかのブロックあるいはモジュールを備える。これらのブロックあるいはモジュールは、ソフトウェア、ハードウェア、ファームウェア、および／またはソフトウェア、ハードウェア、および／またはファームウェアの組み合わせである。本発明は、関連付けられたデータパケット５６、５８、６０、６２、６４のフレームの最後が待ち行列またはＳＰＷＲＲスケジューラ４２で受信されると、所定の値だけ帯域幅割り当てテーブル４４のインクリメントを増す。データパケットのバイト数にブロックの計数が行われ、その値が、関連付けられたデータパケットのＢＡＴに加えられる。着信するデータパケットは、初期の重みを有する。関連付けられたデータパケットの割り当てられた重みは、インクリメントとブロック数の積を初期の重みに足すことによって計算される。
【００２３】
ＳＰＷＲＲスケジューラ４２は、まず優先度により、次いで割り当てられた重みにより、共通の宛先アドレスを有する空でない帯域幅割り当てエントリのセットを選択する。共通の宛先アドレスＡｌｌｏｃＩＤと共通の優先度を有する帯域幅割り当てエントリは、重み付けラウンドロビン（ＷＲＲ）グループ６６と称される。オーバーフロー条件が発生した場合は、共通の宛先アドレスを有する空でない帯域幅割り当てエントリ、すなわちＷＲＲグループの割り当てられた重みが、ゼロに設定される。
【００２４】
厳密優先度重み付けラウンドロビン機構は、優先度と適用された重みの両方に基づいて待ち行列の順序を判定することができる。待ち行列の順序は、まず優先度に基づいて選択され、２つ以上のエントリが同じ優先度を有する場合は、次いで、割り当てられた重みに基づいて待ち行列の順序が選択される。送信の許可が受け取られると、同じ宛先アドレス（ＡｌｌｏｃＩｄ）に割り当てられたテーブルエントリ７２、７８、８０がスキャンされ、優先度と割り当てられた重みに基づいて待ち行列の順序が選択される。優先度と割り当てられた重みが、スケジューリングの重みの計算を可能にする。同じ宛先アドレスグループの中で最も低いスケジューリングの重み値が、次のスケジューリング機会で最も高い優先度を有する。受信ポート識別子（ＰｏｒｔＩｄ）４６、４８、５０、５２、５４にデータパケットが受信されると、バイト数が数えられ、ブロック数として集計される。着信識別子で受信されたデータパケットがフレームの最後を送信すると、ブロック数を乗算したインクリメントを初期の重みに足すことにより、割り当てられた重みが更新される。割り当てられた重みがオーバーフローを発生させる場合は、同じ宛先アドレスについて同じ優先度に割り当てられたすべてのエントリの割り当てられた重みが、ゼロにリセットされる。エントリが厳密優先度として定義される場合は、インクリメントがゼロに設定される。データパケットは、該当する宛先アドレス、すなわちＡｌｌｏｃＩｄにルーティングされる６８、７０、７４、７６である。
【００２５】
本発明のスケジューリングアルゴリズムが以下に記載される。このアルゴリズムは、コンピュータ可読媒体またはソフトウェアとして実施されることが好ましいが、ファームウェアとして実施されてもよく、ハードウェアを介して利用される。
【００２６】
このアルゴリズムは、以下のステップを含む。
１．ＡｌｌｏｃＩｄ＿ｘについての送信許可を待ち、ステップ２に進む。
２．ａ．充たされており、
ｂ．ＡｌｌｏｃＩｄがＡｌｌｏｃＩｄ＿ｘに等しく、
ｃ．（ａおよびｂの条件に一致するエントリの中で）優先度が最も低い
帯域幅割り当てテーブルのエントリを選択する
３．エントリが見つかった場合は、見かけの重みを更新する
ａ．見かけの重みの更新＝初期の重み＋インクリメント
ｂ．オーバーフローが発生する場合は、選択された重み付けラウンドロビングループのすべてのエントリ（同じＡｌｌｏｃｉｄ＿ｘと同じ優先度を有するエントリ）の重みがリセットされる
ｃ．待ち行列からデータパケットを送信する
４．ステップ１に進む
【００２７】
次いで図３を参照すると、ブロックあるいはモジュールは、ソフトウェア、ハードウェア、ファームウェア、および／またはソフトウェア、ハードウェア、および／またはファームウェアの組み合わせである。帯域幅割り当てテーブル９０は、待ち行列の順序とデータパケットのルーティングを判定するのに必要な情報を含む。インデックス９２は、待ち行列の各データパケットを識別する値である。各待ち行列は、受信ポート識別子に関連付けることができる。
【００２８】
ＢＡＴの各エントリは、宛先アドレスＡｌｌｏｃＩｄ９４に関連付けられる。同じ宛先アドレスが２つ以上のエントリに使用されることができる。２つ以上のエントリが同じ宛先アドレスにルーティングされる場合には常に、優先度９６または割り当てられた重みまたはその両方を利用して、データパケット間の帯域幅共有を決定すべきである。関連付けられた宛先アドレスＡｌｌｏｃＩＤ９４がない場合は、２５５のデフォルト値がエントリで使用される。
【００２９】
２つ以上のデータパケットが同じ宛先アドレスにルーティングされる場合は、スケジューリング機構が指定されるべきである。優先度に基づく機構が利用される場合は、各エントリが、異なる優先度に割り当てられるべきである。２つ以上のエントリが同じ優先度を有することを必要とされる場合は、各エントリの割り当てられた重みが同じ優先度で指定されるべきである。最も高い優先度は０（ゼロ）に指定され、最も低い優先度は７であり、デフォルトの優先度はゼロに設定される。
【００３０】
２つ以上のデータパケットが、同じ優先度の同じ宛先アドレスにルーティングされる場合は、そのグループのエントリは、重み付けラウンドロビングループと呼ばれ、厳密優先度重み付けラウンドロビンスケジューリング機構が使用されてスケジューリングを決定する。デフォルトの初期の重み９８の値は、ハードウェアによって０に設定される。この値は、重みの値を表すためにハードウェアによって使用されるので、変更されないことが好ましい。割り当てられる重みは、同じ宛先アドレスと同じ優先度を有する他のデータパケットに割り当てられる重みに相対的である。
【００３１】
帯域幅割り当てテーブルのインクリメント１００は、関連付けられたデータパケットのフレームの最後が待ち行列に受信されると、所定の値だけ増される。ブロック数１０２を使用して、その待ち行列に受信されたブロック数を累算する。ブロックユニットは、その待ち行列に受信された詳細なバイト数を示す。フレームの最後が待ち行列に受信されると、ブロック数とインクリメントが乗算され、その結果が初期の重みに加算されて、割り当てられた重みを求める。割り当てられた重みはフレームの最後まで更新されないので、この計算は、待ち行列がフレーム全体を送信できることを保証する。この計算は、光回線の終端で必要とされる断片化へのサポートの量を減らし、待ち行列の帯域幅重みの要件を満たす。インクリメントとブロック数がともに乗算されるので、ルーティングされるデータパケットのサイズは、それに応じてオーバーフローの量を減らすようなサイズになるはずである。
【００３２】
本発明の厳密優先度重み付けラウンドロビンスケジューリング機構は、受信されるデータパケットに関連付けられた帯域幅割り当てテーブル９０内のエントリを作成する命令を含んだコンピュータ可読媒体を含む。エントリは、インデックス９２、宛先アドレス（ＡｌｌｏｃＩｄ）９４、優先度９６、初期の重み９８、インクリメント１００、およびブロック数１０２を含む。厳密優先度重み付けラウンドロビンスケジューリング機構は、帯域幅割り当てテーブルエントリにインデックスを割り当てる命令、帯域幅割り当てテーブルのエントリの優先度を判定する命令、帯域幅割り当てテーブルエントリの初期の重みを割り当てる命令、関連付けられたデータパケットが受信されると、所定の値だけ帯域幅割り当てテーブルエントリのインクリメントを増す命令、および、帯域幅割り当てテーブルエントリのブロック数を、関連付けられた受信されたデータパケットのバイト数に設定する命令を備える。
【００３３】
次いで図４を参照すると、厳密優先度重み付けラウンドロビンスケジューリングの方法１１０が図示される。厳密優先度重み付けラウンドロビンスケジューラは、宛先アドレス、優先度、および初期の重みを含むデータパケットを１１２で受信する。その宛先アドレス、優先度、および初期の重みを含むエントリでＢＡＴが作成される。データパケットの送信許可が１１４で受け付けられ、共通の宛先アドレスを有する充たされたエントリからＢＡＴのセットが１１６で選択される。関連付けられたデータパケットが受信されると、所定の値だけＢＡＴのインクリメントが１１８で増され、受信されたデータパケットのバイト数が１２０で数えられる。ＢＡＴのブロック数は、関連付けられた受信されたデータパケットの数えられたバイト数に設定され、関連付けられた受信されたデータパケットのＢＡＴエントリにインクリメントが加えられる。関連付けられた受信されたデータパケットの帯域幅割り当てテーブルエントリにブロック数が加えられる。
【００３４】
方法は次いで、インクリメントとブロック数を乗算し、その積を、関連付けられた受信されたデータパケットの帯域幅割り当てテーブルの初期の重みに足すことにより、受信されたデータパケットの割り当てられた重みが１２２で計算される。割り当てられた重みの計算は、関連付けられたデータパケットのフレームの最後が待ち行列に受信された後に行われる。選択されたセットにある帯域幅割り当てテーブルエントリごとに、スケジューリングの重みが判定される。スケジューリングの重みは、初めに優先度で、次いで割り当てられた重みによって１２４で判定される。オーバーフローが発生する場合は、全く同じ宛先アドレスと共通の優先度を有する選択されたエントリの割り当てられた重みが、１２６でゼロにリセットされる。データパケットの送信許可が１１４で受け付けられ、スケジューリングの重みが最小のデータパケットが１２８で送信される。
【００３５】
次いで図５を参照すると、本発明のＳＰＷＲＲスケジューリングシステム１３０は、ソフトウェア、ハードウェア、ファームウェア、および／または、ソフトウェア、ハードウェア、および／またはファームウェアの組み合わせである複数のブロックあるいはモジュールを備える。
【００３６】
メモリ１３４は、トラフィック制御のために待ち行列１３６に入る、スケジューリングされ、ルーティングされるデータパケットのセットを保持する。メモリは、受信ポート識別子からデータパケットを受信する待ち行列を含み、さらに、データパケットに関連付けられ、トラフィック制御に必要とされる情報を含むＢＡＴ１３８を含む。着信データパケットは、ＰｏｒｔＩｄ１４０、１４２、および１４４と称される受信ポート識別子から待ち行列に到着する。データパケットは、優先度を有する。ＳＰＷＲＲスケジューラ１５２は、ＢＡＴと連係して、データパケットのスケジューリングの重みを判定する。スケジューリングの重みが計算されると、データパケットは、宛先アドレスＡｌｌｏｃＩＤ１４６、１４８、１５０にルーティングされる。
【００３７】
プロセッサ１３２は、通信上ＢＡＴおよび待ち行列に結合される。プロセッサは、ＳＰＷＲＲスケジューリングのための命令１５２を実行して、ネットワーク内のデータパケットのトラフィックフローをルーティングし、スケジュールする。
【００３８】
本発明のシステムの例示的実施形態を添付図面に示し、前述の詳細な説明で説明したが、本発明は、ここに開示される実施形態に限定されず、特許請求の範囲で述べられ、定義される本発明の主旨から逸脱することなく、多数の再構成、変更、および置き換えが可能であることは理解されよう。例えば、本発明の機能は、管理プロセッサ、サイトサーバ、またはネットワークプロセッサモジュールの１つまたは複数により、完全かつ／または部分的に行われることができる。また、それらの機能は、現行の方式で、または分散した方式で、またはスケジューリング情報を提供および／または受信することが可能なデバイスで、あるいはそのようなデバイスを介して行われることが可能である。さらに、図には特定の形で示すが、本発明の範囲から逸脱することなく、各種モジュールあるいはブロックが再配置されてよい。例えば、ＢＡＴと待ち行列によって行われる機能を自己充足型にすることができる。さらに、図には特定の形で示すが、図よりも多い、または少ない数の待ち行列、スケジューラ、ＢＡＴ、受信ポート識別子、および宛先アドレスを本発明で利用することができる。さらに、より少ない、または多い数のデータパケットを本発明とともに利用することができ、そのようなデータパケットは、本発明を実現するため、本発明に追加的な知られる機能を提供するため、かつ／または本発明をより効率的にするために、知られる補助的情報を含んでよい。
【図面の簡単な説明】
【００３９】
【図１】本発明の好ましい実施形態による第１の厳密優先度重み付けラウンドロビンスケジューリングシステムの図である。
【図２】本発明の好ましい実施形態による第２の厳密優先度重み付けラウンドロビンスケジューリングシステムの図である。
【図３】本発明の好ましい実施形態による帯域幅割り当てテーブルの図である。
【図４】本発明の好ましい実施形態によるソフトウェアフローブロックの図である。
【図５】本発明の好ましい実施による第３の厳密優先度重み付けラウンドロビンスケジューリングシステムの図である。
【符号の説明】
【００４０】
１３２  プロセッサ
１３４  メモリ
１５２  ＳＰＷＲＲスケジューラ
【図１】
2006141028.tif 000003
【図２】
2006141028.tif 000004
【図３】
2006141028.tif 000005
【図４】
2006141028.tif 000006
【図５】
2006141028.tif 000007
【外国語明細書】
2006141028.tif 000008
2006141028.tif 000009
2006141028.tif 000010
2006141028.tif 000011
2006141028.tif 000012
2006141028.tif 000013
2006141028.tif 000014
2006141028.tif 000015
2006141028.tif 000016
2006141028.tif 000017
2006141028.tif 000018
2006141028.tif 000019
2006141028.tif 000020
2006141028.tif 000021
2006141028.tif 000022
2006141028.tif 000023