(57)【特許請求の範囲】
【請求項１】
通信システムにおいて、所与のフレームのタイムスロット中に複数の伝送要素からデータ・ブロックを伝送するためにスケジューリングする方法であって、
各伝送要素を、１つまたは複数のデータ・ブロックを前記所与のフレーム中に伝送するのに適格であると指定するステップと、
前記１つまたは複数のデータ・ブロックを前記所与のフレーム中に伝送するのに適格であると指定された前記伝送要素のうちから、次に利用可能なタイムスロット中にスケジューリングするための少なくとも１つの伝送要素を選択するステップと、
前記選択された少なくとも１つの伝送要素の適格性ステータスを調整するステップであって、前記選択された少なくとも１つの伝送要素を、１つまたは複数の追加のデータ・ブロックを前記所与のフレーム中に伝送するのに不適格であると指定するステップを含むステップと、
前記所与のフレームの残りの１つまたは複数のタイムスロットについて、選択するステップおよび調整するステップを繰り返すステップと、
を含み、
前記指定するステップ、前記選択するステップ及び前記調整するステップが、前記複数の伝送要素に結合されたスケジューラによって行われ、
次に利用可能なタイムスロット中にスケジューリングするための少なくとも１つの伝送要素を選択する前記ステップがさらに、適格であると指定された前記伝送要素のうちから最高のチャネル容量を有する少なくとも１つの伝送要素を選択するステップを含み、
前記最高のチャネル容量が最高の相対チャネル容量を含み、前記最高の相対チャネル容量は、絶対チャネル容量及び平均チャネル容量の比として決定される、
方法。
【請求項２】
所与の選択された伝送要素についての適格性ステータスが、適格状態と不適格状態を有する２値適格性インジケータを含む、請求項１に記載の方法。
【請求項３】
前記選択された伝送要素の適格性ステータスを調整する前記ステップが、前記所与の選択された伝送要素の前記２値適格性インジケータを前記適格状態から前記不適格状態に変更するステップをさらに含む、請求項２に記載の方法。
【請求項４】
所与の選択された伝送要素の適格性ステータスが適格数を含む、請求項１に記載の方法。
【請求項５】
前記各伝送要素を、１つまたは複数のデータ・ブロックを前記所与のフレーム中に伝送するのに適格であると指定する前記ステップが、前記伝送要素のそれぞれの適格数を指定するステップをさらに含む、請求項４に記載の方法。
【請求項６】
前記選択された伝送要素の適格性ステータスを調整する前記ステップが、前記所与の選択された伝送要素の前記適格数を変更するステップをさらに含む、請求項４に記載の方法。
【請求項７】
通信システムにおいて、所与のフレームのタイムスロット中に複数の伝送要素から伝送するためにデータ・ブロックをスケジューリングする装置であって、
前記伝送要素に結合されたスケジューラを備え、
前記スケジューラが、前記各伝送要素を、１つまたは複数のデータ・ブロックを前記所与のフレーム中に伝送するのに適格であると指定し、前記１つまたは複数のデータ・ブロックを前記所与のフレーム中に伝送するのに適格であると指定された前記伝送要素のうちから、次に利用可能なタイムスロット中にスケジューリングするための少なくとも１つの伝送要素を選択し、前記選択された少なくとも１つの伝送要素の適格性ステータスを調整し、前記所与のフレームの残りの１つまたは複数のタイムスロットについて前記選択および調整を繰り返すように適合され、
前記スケジューラが、前記選択された少なくとも１つの伝送要素を、１つまたは複数の追加のデータ・ブロックを前記所与のフレーム中に伝送するのに不適格であると指定することによって前記選択された少なくとも１つの伝送要素の適格性ステータスを調整し、
前記スケジューラが、適格であると指定された前記伝送要素のうちから最高のチャネル容量を有する少なくとも１つの伝送要素を選択することによって次に利用可能なタイムスロット中にスケジューリングするための少なくとも１つの伝送要素を選択し、
前記最高のチャネル容量が最高の相対チャネル容量を含み、前記最高の相対チャネル容量は、絶対チャネル容量及び平均チャネル容量の比として決定される装置。
【請求項８】
所与のフレームのタイムスロット中に複数の伝送要素から伝送するためにデータ・ブロックをスケジュールするように構成されたスケジューラを有する処理装置を備え、
前記スケジューラが、前記伝送要素に結合されており、
前記スケジューラが、前記各伝送要素を、１つまたは複数のデータ・ブロックを前記所与のフレーム中に伝送するのに適格であると指定し、前記１つまたは複数のデータ・ブロックを前記所与のフレーム中に伝送するのに適格であると指定された前記伝送要素のうちから、次に利用可能なタイムスロット中にスケジューリングするための少なくとも１つの伝送要素を選択し、前記選択された少なくとも１つの伝送要素の適格性ステータスを調整し、前記所与のフレームの残りの１つまたは複数のタイムスロットについて前記選択および調整を繰り返すように適合され、
前記スケジューラが、前記選択された少なくとも１つの伝送要素を、１つまたは複数の追加のデータ・ブロックを前記所与のフレーム中に伝送するのに不適格であると指定することによって前記選択された少なくとも１つの伝送要素の適格性ステータスを調整し、
前記スケジューラが、適格であると指定された前記伝送要素のうちから最高のチャネル容量を有する少なくとも１つの伝送要素を選択することによって次に利用可能なタイムスロット中にスケジューリングするための少なくとも１つの伝送要素を選択し、
前記最高のチャネル容量が最高の相対チャネル容量を含み、前記最高の相対チャネル容量は、絶対チャネル容量及び平均チャネル容量の比として決定される集積回路。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、一般に遠隔通信の分野に関し、より詳細には、限られたリソースへのアクセスを制御するために使用されるスケジューラに関する。
【背景技術】
【０００２】
本発明は、本願と同時に出願された米国特許出願（整理番号Ｈａｍｉｌｔｏｎ５−１−３−２）「Ｗｉｒｅｌｅｓｓ  Ｎｅｔｗｏｒｋ  Ｓｃｈｅｄｕｌｉｎｇ  Ｍｅｔｈｏｄｓ  ａｎｄ  Ａｐｐａｒａｔｕｓ  Ｂａｓｅｄ  ｏｎ  Ｂｏｔｈ  Ｗａｉｔｉｎｇ  Ｔｉｍｅ  ａｎｄ  Ｏｃｃｕｐａｎｃｙ」に関し、その開示を参照により本明細書に組み込む。
【０００３】
多くの遠隔通信アプリケーションにおいて、限られたリソースを求めて競合する複数のタスク間のコンテンションを解決するために、スケジューラが使用されている。たとえば、こうしたスケジューラは、特定の伝送帯域幅を介して伝送するように複数のトラフィック・フローをスケジュールするために、ネットワーク・プロセッサで一般に使用されている。
【０００４】
一般に、ネットワーク・プロセッサは、ネットワークの物理層部分などの物理的伝送媒体と、ルータ内のスイッチ構造または他のタイプのスイッチとの間のデータの流れを制御する。ネットワーク・プロセッサの重要な機能は、複数のトラフィック・フローに関連するセル、パケット、または他のデータ・ブロックを、ネットワークの物理的伝送媒体からスイッチ構造へ、およびその逆方向へ伝送するためのスケジューリングに関するものである。ネットワーク・プロセッサ・スケジューラが、この機能を実行する。
【０００５】
複数のスケジューリング・アルゴリズムをサポートできる、効率的でフレキシブルなスケジューラ・アーキテクチャは、本願の譲受人に譲渡され、参照により本明細書に組み込まれる、発明者Ａｓｉｆ  Ｑ．Ｋｈａｎ他の名義で２００３年１１月２６日に出願された米国特許出願第１０／７２２，９３３号「Ｐｒｏｃｅｓｓｏｒ  ｗｉｔｈ  Ｓｃｈｅｄｕｌｅｒ  Ａｒｃｈｉｔｅｃｔｕｒｅ  Ｓｕｐｐｏｒｔｉｎｇ  Ｍｕｌｔｉｐｌｅ  Ｄｉｓｔｉｎｃｔ  Ｓｃｈｅｄｕｌｉｎｇ  Ａｌｇｏｒｉｔｈｍｓ」に開示されている。
【特許文献１】米国特許出願（整理番号Ｈａｍｉｌｔｏｎ５−１−３−２）「Ｗｉｒｅｌｅｓｓ  Ｎｅｔｗｏｒｋ  Ｓｃｈｅｄｕｌｉｎｇ  Ｍｅｔｈｏｄｓ  ａｎｄ  Ａｐｐａｒａｔｕｓ  Ｂａｓｅｄ  ｏｎ  Ｂｏｔｈ  Ｗａｉｔｉｎｇ  Ｔｉｍｅ  ａｎｄ  Ｏｃｃｕｐａｎｃｙ」
【特許文献２】米国特許出願第１０／７２２，９３３号「Ｐｒｏｃｅｓｓｏｒ  ｗｉｔｈ  Ｓｃｈｅｄｕｌｅｒ  Ａｒｃｈｉｔｅｃｔｕｒｅ  Ｓｕｐｐｏｒｔｉｎｇ  Ｍｕｌｔｉｐｌｅ  Ｄｉｓｔｉｎｃｔ  Ｓｃｈｅｄｕｌｉｎｇ  Ａｌｇｏｒｉｔｈｍｓ」
【特許文献３】米国特許出願第１０／９０３，９５４号「Ｆｒａｍｅ  Ｍａｐｐｉｎｇ  Ｓｃｈｅｄｕｌｅｒ」
【特許文献４】米国特許出願第１０／９９８，６８６号「Ｆｒａｍｅ  Ｍａｐｐｉｎｇ  Ｓｃｈｅｄｕｌｅｒ  ｗｉｔｈ  Ｃｏｍｐｒｅｓｓｅｄ  Ｍａｐｐｉｎｇ  Ｔａｂｌｅ」
【非特許文献１】Ａ．Ｊａｌａｌｉ他、「Ｄａｔａ  ｔｈｒｏｕｇｈｐｕｔ  ｏｆ  ＣＤＭＡ−ＨＤＲ  ａ  ｈｉｇｈ  ｅｆｆｉｃｉｅｎｃｙ  ｈｉｇｈ  ｄａｔａ  ｒａｔｅ  ｐｅｒｓｏｎａｌ  ｃｏｍｍｕｎｉｃａｔｉｏｎ  ｗｉｒｅｌｅｓｓ  ｓｙｓｔｅｍ」、Ｐｒｏｃ．ｏｆ  ＩＥＥＥ  ＶＴＣ２０００、１８５４〜１８５８頁、２０００年５月
【発明の開示】
【発明が解決しようとする課題】
【０００６】
ネットワーク・プロセッサまたは他の処理装置中に実装された所与のスケジューリング・アルゴリズムは、単純かつ公平であることがしばしば望ましい。通常、処理装置ハードウェアは、とくに高速データ環境では、所与のスケジューリングを決定するのに余り多くの時間がとれないので、簡潔さが重要である。よいスケジューラはまた公平でなければならない。たとえば、スケジューラは、優先順位の高いユーザが優先順位の低いユーザよりも多くの帯域幅を得るように、ユーザの重みに従って帯域幅を割り当てることができる。
【０００７】
単純かつ公平なスケジューリング・アルゴリズムの一例は、重み付きラウンドロビン（ＷＲＲ）スケジューリング・アルゴリズムである。所与の遠隔通信アプリケーションに、各タイムスロット内で１つのデータ・ブロックを処理することができる１つのリソースを求めて競合する複数のユーザがいると仮定する。スケジューラは、どのユーザが各タイムスロット内で１つのデータ・ブロックをサーバに送信することができるか決定しなければならない。各ユーザは、各自の優先順位を示す重みを有する。より大きな重みをもつユーザが、より高い優先順位を有する。理想的な状態では、ユーザが受けるサービスは、ユーザの重みに比例しているはずである。ＷＲＲスケジューラは、ユーザの重みに比例して、ラウンドロビン形式でユーザにサービスする。Ｎ人のユーザがいると仮定する。ｉ人目のユーザＵｉは、整数であるＷｉの重みを有する。Ｎ人のユーザの重みＷｉの合計を、Ｆとする。Ｆ個のタイムスロットを１つのフレームと定義する。したがって、Ｆはタイムスロットを単位とするフレーム・サイズである。ＷＲＲは、各フレーム中でちょうどＷｉ個のタイムスロットをＵｉにサービスする。その結果、各ユーザは、フレームの公平な割当てを得る。たとえば、Ｕｌ、Ｕ２、Ｕ３、Ｕ４の４人のユーザがおり、それぞれが４、３、２、１の重みを有すると仮定する。その場合、スケジューラは、これらの４人のユーザに、１フレームにつき以下のシーケンスＵ１、Ｕ２、Ｕ３、Ｕ４、Ｕ１、Ｕ２、Ｕ３、Ｕ１、Ｕ２、Ｕ１を繰り返すことによってサービスすることができる。１つのフレーム中に１０個のタイムスロットがあり、Ｕ１は各フレーム中で４つのタイムスロットを得ることができる。
【０００８】
ＷＲＲに伴う問題点は、長時間のバースト状態（ｂｕｒｓｔｉｎｅｓｓ）を引き起こすことがあることである。たとえば、１１人のユーザがおり、Ｕ１の重みが１０で、その他すべてのユーザの重みが１である場合を考えてみる。この場合、重みの合計は２０であり、したがって１フレームにつき２０個のタイムスロットがある。ＷＲＲは以下のようにユーザにサービスする：Ｕ１、Ｕ２、Ｕ３、Ｕ４、Ｕ５、Ｕ６、Ｕ７、Ｕ８、Ｕ９、Ｕ１０、Ｕ１１、Ｕ１、Ｕ１、Ｕ１、Ｕ１、Ｕ１、Ｕ１、Ｕ１、Ｕ１、Ｕ１。Ｕ１が受け取るサービスは非常にバースト性が高い（ｂｕｒｓｔｙ）。これは、長時間のバースト状態がユーザの通信装置のバッファをオーバーフローさせかねないので、遠隔通信システムにおいて明らかに望ましくない。このようなバースト状態は、ユーザの全体数が数百以上になることがある実用的なアプリケーションにおいて、次第に問題となってきている。
【０００９】
ＷＲＲにおけるバースト状態の問題を克服する、代替スケジューリング・アルゴリズムが知られている。このようなアルゴリズムには、たとえば均等化キューイング（ＷＦＱ）およびワーストケース・フェア均等化キューイング（ＷＦ２Ｑ）がある。残念ながら、これらの代替アルゴリズムはＷＲＲより通常かなり複雑であり、したがって高速データ環境で動作するネットワーク・プロセッサおよび他の処理装置に実装するのが難しいことがある。
【００１０】
本願の譲受人に譲渡され、参照により本明細書に組み込まれる、発明者Ｊｉｎｈｕｉ  Ｌｉ他の名義で２００４年７月３０日に出願された米国特許出願第１０／９０３，９５４号「Ｆｒａｍｅ  Ｍａｐｐｉｎｇ  Ｓｃｈｅｄｕｌｅｒ」は、例示的実施形態において、ＷＲＲに匹敵する単純さと公平さを提供するが、ＷＲＲに通常は伴うバースト状態の問題がない、フレーム・マッピング・スケジューラを開示している。より詳細には、それに記載の例示的実施形態におけるフレーム・マッピング・スケジューラは、重み表およびマッピング表を利用するスケジューリング回路を備える。重み表は複数の項目を含み、各項目は伝送要素の特定の１つを識別する。マッピング表は、フレームの特定のタイムスロットと重み表の項目の間のマッピングを指定する、少なくとも１つの項目を含む。スケジューリング回路は、重み表にアクセスするために、対応するマッピング表項目にアクセスし、結果として得られる値を利用することによって、所与のタイムスロット中にスケジュールすべき特定の伝送要素を決定する。マッピング表の項目は、黄金比ポリシーまたは他のタイプのポリシーに従って予め定めてよい。
【００１１】
しかし、黄金比ポリシーを、あるいはより一般的には、格納されたマッピング表を必要とするどのようなポリシーを利用するスケジューラでも、マッピング表が大きく、したがって相当な量のメモリを必要とすることがある。通常、このようなマッピング表メモリは、アクセス時間を短縮するために「オンチップ」、すなわちスケジューラと同じ集積回路上に配置されていることが望ましい。たとえば、このような配置は、データ・ブロックが実質的にリアルタイムで処理されることが必要なことがある、ネットワーク処理アプリケーションで有益である。
【００１２】
発明者Ｊｉｎｈｕｉ  Ｌｉ他の名義で２００４年１１月２９日に出願された米国特許出願第１０／９９８，６８６号「Ｆｒａｍｅ  Ｍａｐｐｉｎｇ  Ｓｃｈｅｄｕｌｅｒ  ｗｉｔｈ  Ｃｏｍｐｒｅｓｓｅｄ  Ｍａｐｐｉｎｇ  Ｔａｂｌｅ」は、マッピング表を格納するのに必要なメモリ量を削減するためにマッピング表を圧縮し、それによってフレーム・マッピング・スケジューラを含むネットワーク・プロセッサ集積回路または他の装置にそのマッピング表を実装するのを容易にする技術を開示している。
【００１３】
上述の周知の構成は、無線ネットワークを使用するアプリケーションを含めて、さまざまな遠隔通信アプリケーションで利用することができる。しかし、無線ネットワーク・コンテキスト中でのスケジューリングは、無線ネットワークにおけるチャネル容量が時間的に変化し予測困難なため、とくに難しい。このような状況では、無線ネットワーク・スケジューラが、公平さだけでなく十分なスループットを提供することが重要である。
【００１４】
無線ネットワーク・コンテキストで利用されるスケジューリング・アルゴリズムの例には、上記のＷＲＲスケジューリング・アルゴリズム、およびその対応物である重みなしラウンドロビン（ＲＲ）、Ｍａｘ  Ｃ／Ｉ（ｍａｘｉｍｕｍ  ｃａｒｒｉｅｒ−ｔｏ−ｉｎｔｅｒｆｅｒｅｎｃｅ  ｒａｔｉｏ）、プロポーショナル・フェアネス（ＰＦ）、およびＭ−ＬＷＤＦ（Ｍｏｄｉｆｉｅｄ  Ｌａｒｇｅｓｔ  Ｗｅｉｇｈｔｅｄ  Ｄｅｌａｙ  Ｆｉｒｓｔ）がある。
【００１５】
ＲＲスケジューリング・アルゴリズムの欠点は、チャネルの状態を考慮しないことである。その代わりに、ＲＲスケジューリング・アルゴリズムは、それぞれのチャネル容量にかかわらず、最初のユーザを最初のタイムスロットに割り当て、２番目のユーザを２番目のタイムスロットに割り当て、以下同様にして、未処理のユーザを１人ずつ単純にスケジュールする。このような手法は、所与のＮ個のタイムスロットのセットにおいて、Ｎ人のユーザがそれぞれサービスされる機会をちょうど１回有するので、公平である。しかし、ＲＲアルゴリズムはスケジューリング決定を下す前にチャネル容量を検査しないので、スループットが低い。ＷＲＲスケジューリング・アルゴリズムも同様に、スケジューリング決定においてチャネル容量を考慮しない。
【００１６】
Ｍａｘ  Ｃ／Ｉスケジューリング・アルゴリズムは、所与のタイムスロットに最適なチャネル容量を有するユーザを選択する。この手法は、最大の全体的スループットを実現することができるが、公平さ性能は非常に低い。たとえば、所与のモバイル・ユーザの無線リンクが常に弱い場合、そのユーザはスケジュールされる可能性が低くなる。
【００１７】
ＰＦスケジューリング・アルゴリズムは、最大のｒｉ／Ｒｉを有するユーザを選択する。ただし、ｒｉはユーザｉのチャネル容量、Ｒｉはユーザｉによって受信される平均レートである。このアルゴリズムは、Ｒｉを適応的に更新する。したがって、無線リンクが弱いモバイル・ユーザもスケジュールされる機会がある。ＰＦスケジューリング・アルゴリズムの更なる詳細は、たとえば、Ｐｒｏｃ．ｏｆ  ＩＥＥＥ  ＶＴＣ２０００、１８５４〜１８５８頁、２０００年５月の、Ａ．Ｊａｌａｌｉ他の「Ｄａｔａ  ｔｈｒｏｕｇｈｐｕｔ  ｏｆ  ＣＤＭＡ−ＨＤＲ  ａ  ｈｉｇｈ  ｅｆｆｉｃｉｅｎｃｙ  ｈｉｇｈ  ｄａｔａ  ｒａｔｅ  ｐｅｒｓｏｎａｌ  ｃｏｍｍｕｎｉｃａｔｉｏｎ  ｗｉｒｅｌｅｓｓ  ｓｙｓｔｅｍ」に出ている。ＰＦスケジューリング・アルゴリズムの公平さは、Ｍａｘ  Ｃ／Ｉスケジューリング・アルゴリズムの公平さよりも優れているが、ＲＲスケジューリング・アルゴリズムやＷＲＲスケジューリング・アルゴリズムの公平さほどは優れていない。また、ＰＦスケジューリング・アルゴリズムは保証された公平さを提供することができない。
【００１８】
Ｍ−ＬＷＤＦスケジューリング・アルゴリズムは、待ち時間がより長いユーザにより高い優先権を与える。しかし、上記のＰＦスケジューリング・アルゴリズムと同様、保証された公平さを提供することはできない。
【００１９】
したがって、Ｍａｘ  Ｃ／Ｉスケジューリング・アルゴリズム、ＰＦスケジューリング・アルゴリズム、およびＭ−ＬＷＤＦスケジューリング・アルゴリズムは、公平さを犠牲にすることによって、無線コンテキスト中でＲＲスケジューリング・アルゴリズムやＷＲＲスケジューリング・アルゴリズムよりも優れたスループットを提供する。必要とされているのは、とくに無線ネットワーク・アプリケーションにおいて、スループットと公平さの間のよりよいバランスを提供することができる、改善されたスケジューリング・アルゴリズムである。
【課題を解決するための手段】
【００２０】
１つまたは複数の例示的な実施形態における本発明は、公平さを犠牲にすることなく、従来のＲＲスケジューリング・アルゴリズムおよびＷＲＲスケジューリング・アルゴリズムのスループットを改善する、無線スケジューリング・アルゴリズムを提供する。
【００２１】
本発明の一態様によれば、スケジューラが、パケットまたは他のデータ・ブロックを、通信システムにおいてフレームのタイムスロット中に複数の伝送要素から伝送するためにスケジュールするように適合される。所与のフレームについてスケジューリングする際には、スケジューラは最初に各伝送要素を、所与のフレーム内の１つまたは複数のデータ・ブロックを伝送するのに適格であると指定し、適格であると指定された伝送要素のうちから少なくとも１つの伝送要素を、所与のフレームの、次に利用可能なタイムスロット中にスケジューリングするために選択する。次いで、スケジューラは、選択された伝送要素の適格性ステータスを調整し、所与のフレームの残りの１つまたは複数のタイムスロットについて、選択動作および調整動作を繰り返す。
【００２２】
所与の選択された伝送要素の適格性ステータスは、たとえば、所与の選択された伝送要素を、追加のどんなデータ・ブロックを所与のフレーム中に伝送するのにも不適格であると指定することによって調整することができる。
【００２３】
第１の例示的な実施形態は、本明細書で無線ＲＲ（ＷｉＲＲ）スケジューリング・アルゴリズムとも呼ばれる、修正ＲＲスケジューリング・アルゴリズムを提供する。この実施形態では、所与の選択された伝送要素の適格性ステータスは、適格状態と不適格状態を有する２値適格性インジケータを含み、その要素の２値適格性インジケータを適格状態から不適格状態に変更することによって適格性ステータスが調整される。したがって、所与の選択された伝送要素が所与のフレームのタイムスロット中で一度サービスされると、その伝送要素は、そのフレームのどの後続タイムスロット中でのサービスにも不適格であると見なされる。この処理が追加のフレームについても繰り返され、新しい各フレームごとに、伝送要素はすべて最初に、１つまたは複数のデータ・ブロックをそのフレーム中に伝送するのに適格なものと指定される。
【００２４】
第２の例示的な実施形態は、ＷｉＲＲスケジューリング・アルゴリズムの重み付き版を提供する。この実施形態では、所与の選択された伝送要素の適格性ステータスは、適格数を含み、所与の選択された伝送要素の適格性ステータスは、自身の適格数を減少させることによって調整される。伝送要素のうちのいずれかの、適格数がゼロに達すると、その伝送要素はそのフレームのどの後続タイムスロット中でのサービスにも不適格であると見なされる。それぞれの伝送要素の、最初に指定される適格数は、たとえば、各伝送要素に割り当てられた重みを含むことができる。
【００２５】
本発明のもう１つの態様によれば、所与のフレームのスケジューリングの進行後、所与のフレーム中に１つまたは複数のデータ・ブロックを伝送するのに適格であると以前に指定された複数の伝送要素に、新しい伝送要素を追加することができる。たとえば、新しい伝送要素が割り当てられた重みｗを有し、所与のフレームのｔ番目のタイムスロットに関連してそれが追加される重み付き構成において、新しい伝送要素の適格数は、ｍ＋ｆ＝ｗ＊（Ｆ−ｔ）／Ｆの計算に基づいて決定することができる。ただし、Ｆはフレームの長さ、ｍは整数、ｆは小数部（０＜＝ｆ＜１）である。より詳細には、新しい伝送要素の適格数は、所与のフレーム中でｍに設定することもでき、あるいは確率ｆでｍに設定し、確率（１−ｆ）でｍ＋１に設定することもできる。
【００２６】
例示的な実施形態におけるスケジューラは、スケジューリング回路の多種多様な異なる構成を使用して、通信システムのネットワーク・プロセッサ集積回路または他の処理装置中に実装することができる。
【発明を実施するための最良の形態】
【００２７】
本発明を、ここでは例示的な無線ネットワークおよび他のタイプの通信システムに関して説明する。例示的なシステムは、本発明の技術を例示するために特定のやり方で構成されたそれぞれのスケジューラを含む。しかし、本発明は、より一般的に、公平さに悪影響を及ぼさずに改善されたスループットを提供することが望ましいどのような通信システム・スケジューラにも適用可能であることを理解すべきである。たとえば、従来のＲＲスケジューリング・アルゴリズムおよびＷＲＲスケジューリング・アルゴリズムに伴うレベルに匹敵する、保証された公平さレベルを提供することができる。
【００２８】
図１は、本発明の例示的な実施形態による通信システム１００の略図である。システム１００は、送信部１０４およびチャネル・ステータス要素１０６に結合されたスケジューラ１０２を含む。スケジューラは、この実施形態ではＮ人のユーザの一人一人に対するそれぞれのキュー１１０−１、１１０−２、・・・１１０−Ｎを含む、伝送要素に結合されている。この例では、Ｎ人のユーザはシステム１００の無線ネットワークのモバイル・ユーザであり、従来方式で送信部１０４と通信するそれぞれのモバイル・ユーザ装置１１２−１、１１２−２、・・・１１２−Ｎに関連付けられている。送信部１０４は、たとえば、無線ネットワークの基地局またはアクセス・ポイントの少なくとも一部分を備えることができる。
【００２９】
無線ネットワークは、送信部１０４とモバイル・ユーザ装置１１２の間の、パケットまたは他のデータ構成を通信するように構成されている。このようなデータ構成はすべて、本明細書で使用する一般用語「データ・ブロック」に包含されることが意図されている。本発明は、データ・ブロックのどのような特定のサイズまたは構成も必要としないことを理解すべきである。図を簡単かつ明瞭にするために、図では送信部１０４とモバイル・ユーザ装置１１２の間のダウンリンク通信しか示していないが、他のタイプの伝送にも同様の技術を使用することができることを理解すべきである。
【００３０】
この実施形態のシステム１００は、各モバイル・ユーザ１１２ごとに１つのキュー１１０を保持するが、他のタイプのキュー構成を使用することもできる。ダウンリンク伝送は、フレームのタイムスロット内で行われると仮定する。各タイムスロット中、スケジューラ１０２は、１人または複数のユーザにサービスする。この実施形態のスケジューラは、各モバイル・ユーザに関連する無線チャネル容量を知っていると仮定する。この知識は、チャネル・ステータス要素１０６によって、あるいは他の技術を使用して、スケジューラに提供することができる。前述のとおり、モバイル・ユーザに関連するチャネル容量は、通常時間的に変化し予測困難である。図３〜図５に関連して以下に詳細に説明するように、スケジューラは、実際に計測したチャネル状態および他のパラメータに基づいてスケジューリングの決定を行う。所与のタイムスロットについて、スケジューラは、ユーザ・キュー１１０のうちの１つまたは複数を選択し、そのユーザ・キューが、それぞれそのタイムスロット中に１つのパケットを伝送するようにスケジュールされる。所与のパケットは、送信部１０４を介してモバイル・ユーザ装置１１２のうちの対応する１つに伝送される。
【００３１】
図１のシステム１００は、たとえば、その他の点では従来型の、通常のユニバーサル移動電話システム（ＵＭＴＳ）または広帯域符号分割多元接続（ＷＣＤＭＡ）無線セルラー通信システムとして実装することができる。このような実装形態では、図２に示したシステム１００’は、図に示すように基地局１２２、１２４、１２６に結合された無線ネットワーク・コントローラ（ＲＮＣ）を含む。基地局１２２、１２４、１２６は、周知のＵＭＴＳおよびＷＣＤＭＡの用語によれば、ノードＢ要素と呼ばれる。これらの要素は、ＵＭＴＳおよびＷＣＤＭＡのコンテキストにおいて移動機（ＵＥ）要素と呼ばれる、モバイル・ユーザ装置１１２と通信する。図１のシステムのスケジューラ１０２およびチャネル・ステータス要素１０６は、ＲＮＣ１２０に組み込むこともでき、各ノードＢ要素１２２、１２４、１２６中に複製することもできる。たとえば、ＵＭＴＳまたはＷＣＤＭＡシステム１００’が高速ダウンリンク・パケット接続（ＨＳＤＰＡ）機能を提供するように構成されている場合、スケジューラは通常、各ノードＢ要素内で高速スケジューリングが可能になるように構成される。
【００３２】
上述のＨＳＤＰＡ機能は、送信時間間隔（ＴＴＩ）と呼ばれるタイムスロットを使用し、各ＴＴＩ中で１人または複数のユーザにサービスすることができる。ＨＳＤＰＡの機能は、周波数分割複信（ＦＤＤ）モードまたは時分割複信（ＴＤＤ）モードで提供することができる。ＦＤＤモードでは、所与のＴＴＩは２ミリ秒（ｍｓ）の持続時間を有するが、ＴＤＤモードでは、所与のＴＴＩは５ｍｓまたは１０ｍｓを有することができる。上記およびその他のＴＴＩは、本明細書で使用される一般用語「タイムスロット」に包含されることが意図されている。
【００３３】
ＵＭＴＳまたはＷＣＤＭＡのコンテキストにおいて、所与のノードＢからＵＥにデータを送信するために通常ＨＳＤＰＡで使用される通信システムチャネルは、ＨＳ−ＤＳＣＨ（ｈｉｇｈ  ｓｐｅｅｄ  ｄｏｗｎｌｉｎｋ  ｓｈａｒｅｄ  ｃｈａｎｎｅｌ）と呼ばれる。
【００３４】
説明を簡単かつ明瞭にするために、後述のスケジューラ１０２は、１タイムスロットにつき単一のユーザにサービスすると仮定するが、記載の技術は、単一のタイムスロット中に複数のユーザをスケジュールすることができるＨＳＤＰＡおよび他の構成に対応できるように、直接的に拡張することができることを理解すべきである。
【００３５】
図１および図２に示した諸要素の特定の構成は、説明のための一例にすぎないことも指摘しておきたい。より詳細には、上述のとおり、本発明はどのようなタイプの無線ネットワークまたは他の通信システム中にも実装することができ、特定のいかなる通信アプリケーションに限定されるものでもない。
【００３６】
スケジューラ１０２は、１つまたは複数のフレームのタイムスロット中にユーザ・キュー１１０からパケットまたは他のデータ・ブロックを伝送するためにスケジュールするように構成される。動作において、スケジューラは最初にキュー１１０のそれぞれを所与のフレーム中にパケットを伝送するのに適格であると指定し、次いで適格と指定されたキューのうちから、次に利用可能なタイムスロット中でスケジューリングするためのキューの特定の１つを選択する。そのキューがスケジュールされた後、キューの適格性ステータスが調整され、所与のフレームの残りのタイムスロットについて選択動作および調整動作が繰り返される。本明細書において修正ＲＲスケジューリング・アルゴリズムまたは無線ＲＲ（ＷｉＲＲ）スケジューリング・アルゴリズムと呼ばれる、このようなスケジューリング・アルゴリズムのより具体的な例は、下記で図３の流れ図、および図４のスケジューリング表に関連して説明する。次いで、一種の修正ＷＲＲスケジューリング・アルゴリズムを表す、ＷｉＲＲスケジューリング・アルゴリズムの対応する重み付き版について、図５の流れ図に関連して説明する。
【００３７】
スケジューラ１０２は、以下に詳細に説明するように、少なくともその一部分を集積回路の形で実装することができる。このような集積回路は、図１のシステムにおける送信部１０４に関連する基地局もしくはアクセス・ポイントまたは図２のシステムにおけるＲＮＣもしくはノードＢ要素などの所与の通信システム要素中に実装された、ネットワーク・プロセッサまたは他のタイプのプロセッサもしくは処理装置を含むことができる。
【００３８】
スケジューラ１０２は、たとえば、上記の米国特許出願第１０／９０３，９５４号、および第１０／９９８，６８６号に記載されたタイプのフレーム・マッピング・スケジューラでよい。これらの技術を使用することにより、黄金比ポリシーまたは格納されたマッピング表を必要とする他の任意のポリシー用のマッピング表を格納するのに必要なメモリ量を、大幅に削減することができる。
【００３９】
本発明のスケジューリング技術は、さらにまたはその代わりに、上記の米国特許出願第１０／７２２，９３３号に開示されたような、複数のスケジューリング・アルゴリズムをサポートできるフレキシブルなスケジューラ・アーキテクチャとともに使用することもできる点に注意すべきである。
【００４０】
次に図３を参照すると、図１のシステム１００におけるスケジューラ１０２によって実装された、ＷｉＲＲスケジューリング・アルゴリズムの動作が示されている。このスケジューリング・アルゴリズムは、前述した従来のＲＲスケジューリング・アルゴリズムと同様の公平さを有するが、大幅に優れたスループットを有する。
【００４１】
ステップ３００で、新しいフレームのスケジューリング処理が開始される。この時点で、Ｎ人のユーザはすべて、最初にそのフレーム中にパケットを伝送するのに適格であると指定される。したがってユーザはそれぞれの適格性ステータスを有し、各適格性ステータスは、たとえば、適格状態および不適格状態を有する２値適格性インジケータを含むことができる。このような２値適格性インジケータを使用する場合、所与のユーザは適格か不適格かのどちらかである。図５に関連して後述するＷｉＲＲスケジューリング・アルゴリズムの重み付き版などの他の実施形態では、他のタイプの適格性ステータスを使用する。
【００４２】
ステップ３０２で、フレームの、次に利用可能なタイムスロットについて、スケジューラ１０２は未処理で適格であるすべてのユーザのうちから最適なチャネル容量を有するユーザを選択する。ユーザは、伝送すべきパケットを少なくとも１つ有している場合、未処理であるとされる。図１に示した図を参照すると、図示した各ユーザ、すなわちユーザ１、２、３およびＮは、それぞれが各自の対応するキュー中に少なくとも１つのパケットを有しているので、未処理であることがわかる。現在のタイムスロット中で未処理でないユーザは、当業者には理解されるように、そのタイムスロットのスケジューリング処理において検討の対象から外すことができる。しかし、現在のタイムスロット中で未処理でないユーザが、次のタイムスロット中で未処理になることがあり、したがってこのようなユーザを現在のタイムスロットのスケジューリングにおいて検討の対象から外すことを、フレームの残りについて検討の対象から外すと解釈してはならない。
【００４３】
ステップ３０２で言及されている「最適の」チャネル容量は、通常、未処理かつ適格であるユーザの最も高いチャネル容量であるとされるが、以下に詳細に説明するように、未処理かつ適格であるユーザのうちから選択するために多種多様な基準を使用することができる。
【００４４】
ステップ３０４で、選択されたユーザは、利用可能なタイムスロット中でサービスされ、次いでそのユーザの適格性ステータスが調整される。選択されたユーザは、この例において、利用可能なタイムスロット中に伝送されるように対応するユーザ・キュー１１０からのパケットをスケジューリングすることにより「サービスされる」。選択されたユーザの適格性ステータスは、そのステータスを不適格に設定することにより調整される。したがって、選択されたユーザは現在のフレーム中では再びサービスされない。下記で図５に関連して説明するように、他の実施形態では他のタイプの適格性ステータス調整を使用することもできる。
【００４５】
ステップ３０６で、まだ他にも未処理で適格なユーザがスケジューリングに利用可能かどうか判定される。そうでない場合、処理はステップ３００に戻り、その時点ですべてのユーザが以前の選択に関係なく再び適格状態に設定され、新しいフレームについて再び処理が開始される。しかし、未処理で適格なユーザがまだいる場合、１人または複数のそのようなユーザを現在のフレームの追加のタイムスロット中にスケジュールするために、処理はステップ３０２に戻る。
【００４６】
Ｎ人のユーザがすべて常に未処理であると仮定すると、１フレームはＮ個のタイムスロットと等しい。前述のとおり、キュー１１０のうちの対応する１つが空でない場合、ユーザは未処理であると見なされる。Ｎ人のユーザのうちの何人かが未処理でない場合、そのフレームの長さはＮ未満である。
【００４７】
前述のとおり、ステップ３０２で選択するための「最適の」チャネル容量を定義する方法には多くの異なる方法がある。たとえば、最適のチャネル容量は、最適な絶対容量でもよく最適な相対容量でもよく、この場合も「最適な」は一般に「最高の」を意味する。絶対容量ｒｉは、１秒あたりのビット数で測定したユーザｉのチャネル容量である。相対容量は、ユーザｉの平均チャネル容量をｒｉ￣として、ｒｉ／ｒｉ￣と定義することができる。あるいは、前述のＰＦスケジューリング・アルゴリズムで使用される定義と同様に、ユーザｉによって受信される平均レートをＲｉとして、相対容量をｒｉ／Ｒｉと定義することもできる。平均のｒｉ￣およびＲｉは、適応的に更新することができる。２人以上のユーザが同じチャネル容量を有する場合、その均衡がランダムに破れることもあり、また指数ｉがより小さい方のユーザが選択されることもある。
【００４８】
上述のＨＳＤＰＡコンテキストあるいは複数のユーザを所与のタイムスロット中でサービスすることができる他のコンテキストでの使用に適した、このような均衡状態に対処するための他の技術は、所与のタイムスロット中でそれらのユーザに同時にサービスすることである。それらのユーザに異なるＨＳＤＰＡコードを割り当てることによって、複数のユーザを所与のタイムスロット中でスケジューリングする技術は、上述の米国特許出願（整理番号Ｈａｍｉｌｔｏｎ５−１−３−２）に記載されている。
【００４９】
図３に示したＷｉＲＲスケジューリング・アルゴリズムは、有利なことに、すべての未処理のユーザが各フレーム中で１回サービスされることを保証することにより、保証された公平さを提供する。したがって、ＷｉＲＲスケジューリング・アルゴリズムの公平さは、従来のＲＲスケジューリング・アルゴリズムによって提供される公平さと同程度に優れている。さらに、スケジューリング決定においてチャネル容量を考慮に入れることにより、ＷｉＲＲスケジューリング・アルゴリズムは従来のＲＲスケジューリング・アルゴリズムより優れたスループットを提供する。
【００５０】
次に、ＷｉＲＲスケジューリング・アルゴリズムの動作の例を、図４に関して説明する。この例では４人のユーザがおり、すなわちＮ＝４である。４人のユーザは、ユーザ１、ユーザ２、ユーザ３、ユーザ４で表される。表中の数字は、フレーム１およびフレーム２で表される２つのフレームのそれぞれにおいて、スロット１、スロット２、スロット３、スロット４で表される４個のタイムスロットのそれぞれにおける、ユーザそれぞれのチャネル容量である。この例では、ユーザの４人すべてが未処理であると仮定する。さまざまなフレームおよびスロットにおけるユーザのチャネル容量の項目は、網掛けなし、薄い網掛け、または濃い網掛けのセル中に示される。所与のフレームおよびスロットにおいて、網掛けのないセルは、適格だが選択されていないユーザがいればそのユーザを示し、選択された適格なユーザは薄い網掛けのセルで示され、不適格なユーザがいればそのユーザは濃い網掛けのセルで示される。
【００５１】
スケジューラ１０２によって実装されたＷｉＲＲスケジューリング・アルゴリズムが、この例で動作を始めるが、フレーム１のスロット１において、４人のユーザはすべて適格であり、チャネル容量９を有するユーザ２がサービスされるために選択される。フレーム１のスロット２では、既に選択されたユーザ２はもはや適格ではなく、適格である３人のユーザのセットからチャネル容量７を有するユーザ３が選択される。フレーム１のスロット３では、既に選択されたユーザ２とユーザ３はもはや適格ではなく、適格である２人のユーザのセットからチャネル容量６を有するユーザ１が選択される。最後に、フレーム１のスロット４で、唯一の適格なユーザはチャネル容量５を有するユーザ４であり、したがってそのユーザが選択される。次いで、処理は次のフレーム、フレーム２のスケジューリングを開始し、４人のユーザがすべてそのフレーム中でスケジューリングするのに適格であると再び指定される。フレーム２のスロット１〜４におけるユーザ選択の順序は、図示したとおり、ユーザ３、ユーザ２、ユーザ１、ユーザ４である。
【００５２】
上記のＷｉＲＲスケジューリング・アルゴリズムで行われたシミュレーションは、そのスループット性能が従来のＭａｘ  Ｃ／Ｉスケジューリング・アルゴリズムのスループット性能に匹敵することを示している。このシミュレーションでは５０人のモバイル・ユーザがおり、すなわちＮ＝５０であった。ユーザのチャネル容量は、一様分布の無相関ランダム処理と想定した。また、ユーザはすべて常に未処理であると想定した。ＷｉＲＲスケジューリング・アルゴリズム、従来のＲＲスケジューリング・アルゴリズム、およびＭａｘ  Ｃ／Ｉスケジューリング・アルゴリズムについてのスループット性能に関するシミュレーション結果を、下記の表１に示す。Ｍａｘ  Ｃ／Ｉスケジューリング・アルゴリズムはスループットが１００％に近いのに対し、ＲＲスケジューリング・アルゴリズムはスループットが５０％にすぎないことがわかる。ＷｉＲＲスケジューリング・アルゴリズムは、９５．６％のスループット性能を有する。これらのシミュレーション結果は、ＷｉＲＲスケジューリング・アルゴリズムが、公平さを犠牲にすることなく非常に高いスループットを実現することを示す。
【表１】
0005164425.tif 000002
【００５３】
次に、ＷｉＲＲスケジューリング・アルゴリズムの重み付き版について、図５の流れ図に関連して説明する。この例では、すべてのユーザは、正の整数の重みを割り当てられているものとするが、他の実施形態では、他のタイプの重みを使用することもできる。ユーザｉに割り当てられた重みをｗｉで示す。また、各ユーザには、ここでは「適格数」と呼ばれる適格性ステータスも関連付けられている。ユーザｉの適格数をｅｉで示す。所与のフレームのスケジューリング処理の初めに、すべてのｉについてｅｉ＝ｗｉと設定する。ユーザがサービスされるたびに、そのユーザの適格数は１つずつ減少する。適格数がゼロに達すると、そのユーザは所与のフレーム中でのさらなる検討では不適格になる。
【００５４】
ステップ５００で、新しいフレームのスケジューリング処理が開始される。この時点で、Ｎ人のユーザはすべて、そのフレーム中にパケットを伝送するのに適格であると最初に指定される。上述のとおり、ユーザの適格性ステータスは、それぞれ最初にすべてのｉについてそれぞれ重みｗｉに設定される適格数ｅｉを含む。
【００５５】
ステップ５０２で、フレームの、次に利用可能なタイムスロットについて、スケジューラ１０２は、未処理であり正の適格数を有するすべてのユーザのうちから、最適のチャネル容量を有するユーザを選択する。
【００５６】
ステップ５０４で、選択されたユーザが利用可能なタイムスロット中でサービスされ、次いでそのユーザの適格性ステータスが調整される。選択されたユーザは、この例では、利用可能なタイムスロット中に対応するユーザ・キュー１１０から伝送されるようにパケットをスケジューリングすることにより「サービスされる」。この実施形態においては、選択されたユーザの適格性ステータスは、選択されたユーザの適格数を１つ減少させることによって調整される。すなわち、ユーザｉはこのスロット中にスケジュールされ、そのユーザの適格数ｅｉは、ｅｉ＝ｅｉ−１を計算することによって更新される。
【００５７】
ステップ５０６で、まだ他にも未処理で適格なユーザがスケジューリングに利用可能かどうか判定される。そうでない場合は、処理はステップ５００に戻り、その時点で、以前の選択にかかわらず、すべてのユーザは再び各自の適格数をそれぞれの割り当てられた重みに設定され、新しいフレームの処理が再び開始される。しかし、未処理で適格なユーザがさらにいる場合、処理はステップ５０２に戻り、１人または複数のそのようなユーザを、現在のフレームの追加のタイムスロット中にスケジュールする。
【００５８】
さらに、選択ステップは、たとえば最高の絶対容量または相対容量を含めて、いくつかの異なる手段のうちのどれを使用することもできる。上述のとおり、ユーザｉの平均チャネル容量をｒｉ￣とし、ユーザｉによって受信される平均レートをＲｉとして、相対容量をｒｉ／ｒｉ￣またはｗｉｒｉ／Ｒｉと定義することができる。
【００５９】
上述のとおり、ＷｉＲＲスケジューリング・アルゴリズムの重み付き版は、従来のＷＲＲスケジューリング・アルゴリズムに匹敵する保証された公平さを提供する。そのスループットの性能は、従来のＷＲＲスケジューリング・アルゴリズムより優れていると予想される。
【００６０】
典型的な無線ネットワークでは、モバイル・ユーザはたびたび、ネットワークあるいはそのネットワークの特定のセルまたは他の通達範囲から除外され、あるいはそこに追加される。スケジューラ１０２は、所与のフレーム中に除外または追加されたユーザを処理するように構成することができる。除外されたユーザについては、スケジューラは単純にそのユーザを不適格であると指定し、またはその他の方法でそのユーザをスケジューリング処理において検討の対象から外すことができる。追加された新しいユーザについては、スケジューラは、たとえば新しいフレームが開始するまで待つか、あるいは新しいユーザの適格数または他の適格性ステータスを、比例により、ランダムに、または他の技術を使用して、設定することができる。
【００６１】
すべてのユーザが常に未処理の場合、フレームの長さはＦ＝Σｗｉによって与えられ、それは大きな数になり得る。したがって、スケジューラが、新しいユーザを追加するために新しいフレームが開始するまで待つ場合、新しいユーザは長時間待つことがあり、そのようなユーザにとって不公平になることがある。上述の第２の代替案が、この問題を解決する。所与のフレームのｔ番目のスロットに、割り当てられた重みｗを有する新しいユーザが追加されたと仮定する。ｍ＋ｆ＝ｗ＊（Ｆ−ｔ）／Ｆとする。ただしｍは整数、ｆは小数部（０＜＝ｆ＜１）である。簡単にするために、新しいユーザの適格数を現在のフレームにおいてｍに設定することができる。よりよい結果を得るには、適格数を確率ｆでｍに設定し、確率（１−ｆ）でｍ＋１に設定することができる。上述のとおり、新しいユーザの適格数または他の適格性ステータスを決定するために、他の技術を使用することもできる。
【００６２】
上記の例示的な実施形態に関連して説明したスケジューリング・アルゴリズムは、公平さを犠牲にせずに、改善されたスループット性能を提供する。シミュレーションは、ＷｉＲＲスケジューリング・アルゴリズムのスループットが非常に高いことを示している。さらに、ＷｉＲＲスケジューリング・アルゴリズムの重み付き版は、従来のＷＲＲスケジューリング・アルゴリズムと比べて改善されたスループットを提供する。その上、ＷｉＲＲスケジューリング・アルゴリズムの重み付き版の公平さ性能は、ＷＲＲスケジューリング・アルゴリズムと同程度に優れ、保証されている。他の諸利点には、従来のＷＲＲスケジューリング・アルゴリズムと比べて、バースト性がより低いことがある。
【００６３】
前述のとおり、本明細書で説明したスケジューリング・アルゴリズムは、他の多くのタイプの通信システム中に実装することができる。次いで、他のシステム例について、図６〜図８に関連して説明する。これらの図では、スケジューリング・アルゴリズムは、ネットワーク・プロセッサのスケジューラ中に実装されている。このようなネットワーク・プロセッサは、図１および図２に示すとおり、無線ネットワークを備えるシステム中で使用することができるが、図６に示した通信システム６００のような他のタイプのシステム中で使用することもできる。
【００６４】
システム６００は、内部記憶装置６０４を有するネットワーク・プロセッサ６０２を含む。ネットワーク・プロセッサ６０２は、図示したとおり外部記憶装置６０６に結合されており、ネットワーク６０８とスイッチ構成６１０の間でパケットまたは他のデータ構成を通信するためのインターフェースを提供するように構成されている。前述のとおり、このようなデータ構成はすべて、本明細書で使用する一般用語「データ・ブロック」に包含されることが意図されている。ネットワーク６０８は、図１および図２のシステムにおける無線ネットワークのいずれかの一部分に対応する無線ネットワークでもよく、ネットワーク・プロセッサ６０２およびスイッチ構成６１０は、基地局、ネットワーク・コントローラ、またはこのようなシステムの他の要素中に実装することができる。
【００６５】
ネットワーク・プロセッサ６０２およびそれに関連する外部記憶装置６０６は、たとえば、ルータ、スイッチまたは他のシステム要素のライン・カードまたはポート・カード上に設置された、１つまたは複数の集積回路として実装することができる。
【００６６】
図７は、図６のシステム６００の一部分の、ライン・カード実施形態の例を示している。この実施形態では、システムは、その上に少なくとも１つの集積回路７０２が設置されたライン・カード７００を含む。集積回路７０２は、内部記憶装置６０４を有するネットワーク・プロセッサ６０２を含む。ネットワーク・プロセッサ６０２は、ライン・カード７００上の外部記憶装置６０６と対話する。外部記憶装置６０６は、たとえば、ネットワーク・プロセッサ集積回路７０２の外部ＳＲＡＭ（ｓｔａｔｉｃ  ｒａｎｄｏｍ  ａｃｃｅｓｓ  ｍｅｍｏｒｙ）またはＤＲＡＭ（ｄｙｎａｍｉｃ  ｒａｎｄｏｍ  ａｃｃｅｓｓ  ｍｅｍｏｒｙ）として働くことができる。このような記憶装置は、従来の方法で構成することができる。適切なホスト・プロセッサをライン・カード７００上に設置し、それを使用して、ライン・カード７００上の１つまたは複数のネットワーク・プロセッサ集積回路の動作をプログラミングし、またはその他の方法で制御することもできる。
【００６７】
通信システムの図６および図７に示した部分は、図を明瞭にするために大幅に簡略化してある。しかし、本システムは、図７に示すような複数のライン・カードを含む、ルータ、スイッチまたは他の要素を備えることができ、各ライン・カードは複数の集積回路を含むことができることを理解すべきである。同様の実施形態を、ポート・カードの形で実装することもできる。しかし、本発明は、ルータ、スイッチまたは他の要素における、このようなカードに基づく実装形態を必ずしも必要としない。
【００６８】
図６および図７に示した諸要素の特定の構成は、説明のための一例にすぎないことも理解すべきである。より詳細には、上述のとおり、本発明は、どのようなタイプのプロセッサまたは他の通信システム処理装置内にも実装することができ、ネットワークに基づくどのような特定の処理アプリケーションにも限定されるものではない。
【００６９】
ここで使用される用語の「プロセッサ」は、限定ではなく、例として示すと、マイクロプロセッサ、中央処理装置（ＣＰＵ）、ディジタル信号プロセッサ（ＤＳＰ）、特定用途向け集積回路（ＡＳＩＣ）、または他のタイプのデータ処理装置に一般に関連する諸要素、ならびにこのような諸要素の一部分および組合せを利用して実装することができる。
【００７０】
また、図６および図７に示したシステム６００およびネットワーク・プロセッサ６０２は、明示したものに加えて、またはそれらの代わりに、このようなシステムおよびネットワーク・プロセッサの従来の実装形態に一般に見られるタイプの１つまたは複数の諸要素を含めて、他の諸要素を含むこともできる。たとえばネットワーク・プロセッサは、分類装置、キューイングおよびディスパッチ・ロジック、１つまたは複数のメモリ・コントローラ、ネットワーク・プロセッサとネットワーク６０８を接続するインターフェース回路、スイッチ構成６１０、ホスト・プロセッサまたは他の外部装置、ならびに図には明示していない通常の他の諸要素を含むことができる。上記および通常のその他の諸要素は、当業者にはよく理解されているため、ここでは詳細に説明しない。
【００７１】
本明細書で説明するネットワーク・プロセッサ６０２の機能は、少なくとも部分的にソフトウェア・プログラム・コードの形で実装することができる。たとえば、ネットワーク・プロセッサにおけるスケジューリング動作の性能に関連する諸要素は、少なくとも部分的に、命令によって、あるいは外部ホスト・プロセッサまたは他の適切な機構を介してネットワーク・プロセッサに提供することができる他のソフトウェアによってプログラム可能な諸要素を利用して、実装することができる。たとえば、特定のスケジューリング・アルゴリズムを特徴付ける情報、または関連するトラフィック・シェーピング情報を、関連するホスト・プロセッサまたは他の適切な機構からネットワーク・プロセッサに提供することができる。
【００７２】
図８は、本発明の例示的な実施形態におけるネットワーク・プロセッサ６０２のより詳細な図である。この実施形態におけるネットワーク・プロセッサ６０２は、スケジューラ８００、送信キュー８０２、トラフィック・シェーパ８０４、重み表８１０、およびマッピング表８１２を含む。動作において、スケジューラ８００は、図には明示していない１つまたは複数の伝送メディアを介して伝送されるように、送信キュー８０２に関連するデータ・ブロックをスケジュールする。このスケジューリングでは、送信キュー８０２に関連するデータ・ブロックを伝送されるようにスケジュールする際に、重み表８１０およびマッピング表８１２を、トラフィック・シェーパ８０４からのトラフィック・シェーピング情報と一緒に、またはこのような情報なしに利用する。
【００７３】
前述のとおり、ネットワーク・プロセッサ６０２は、たとえば、上記の米国特許出願に記載のタイプの、または当業者には公知の従来のタイプの追加の要素を含むことができ、このような要素は他の場所で説明されているので、ここではそれ以上説明しない。
重み表８１０およびマッピング表８１２は、少なくともその一部分をネットワーク・プロセッサ６０２の内部記憶装置６０４に格納することができ、さらにまたはその代わりに、少なくともその一部分をネットワーク・プロセッサ６０２の外部記憶装置６０６に格納することもできる。内部記憶装置を使用して格納する場合、このような記憶装置の少なくとも一部分はスケジューラ８００または他のスケジューリング回路の内部にあってもよい。
【００７４】
表要素８１０および８１２に加えて、スケジューラ８００は、いくつかの追加のタイムスロット表、あるいは上記の米国特許出願に記載のタイプの、または従来の慣行で知られているタイプの、静的または動的な表に基づくスケジューリングでの使用に適した他のタイプの表要素を含むことができまたはその他の方法でそれに関連付けることができる。
【００７５】
送信キュー８０２は、複数の伝送要素を備えると考えることができる。たとえば、送信キューは、各送信キューが伝送要素に対応する、複数の送信キューおよび関連する制御ロジックを備えることができる。ただし、ここで使用される用語「伝送要素」は、１つまたは複数のデータ・ブロックの任意の発信元を、あるいはネットワーク・プロセッサ６０２に伝送されるようにスケジュールできる他の要素を包含できるように、より一般的に解釈すべきものであることに注意すべきである。
【００７６】
パケットおよび他のデータ・ブロックは、図には明示していない、関連するネットワーク・プロセッサ・データ経路から送信キュー８０２の伝送要素中にエンキューすることができる。これは、このようなデータ経路から受信したパケット・エンキュー・メッセージおよび関連するデータ・ブロックに関連して行うことができる。同様に、パケットおよび他のデータ・ブロックは、たとえば、データ経路に送信されるパケット・デキュー・メッセージおよび関連するデータ・ブロックに関連して、伝送時に伝送要素からデータ経路にデキューすることができる。
【００７７】
トラフィック・シェーパ８０４は、たとえば、送信キュー８０２の伝送要素からデータ・ブロックを伝送するための１つまたは複数のトラフィック・シェーピング要件を周知の方法で確定する、その他の点では従来型のトラフィック・シェーピング・エンジンとして実装することができる。トラフィック・シェーパ８０４は、キューおよびスケジューラのステータスに関する情報を、送信キュー８０２からスケジューラ８００を介して受信することができる。トラフィック・シェーパは、１つもしくは複数の伝送要素またはその対応するネットワーク接続のＣｏＳ（ｃｌａｓｓ  ｏｆ  ｓｅｒｖｉｃｅ）または他の所望のサービス・レベルを確定するための、キュー伝送間隔や優先順位付けなどのトラフィック・シェーピング情報を生成することができる。
【００７８】
前述のとおり、ネットワーク・プロセッサのコンテキストにおいて、伝送要素すなわちスケジュールすべきエンティティは、キューを含むことができる。しかし、本発明は、データ・ブロックが伝送されるべきどのようなタイプの要素をスケジュールするためにも、より一般的には、通信システム処理装置内のどのようなタイプのスケジュール可能な要素をスケジュールするためにも、使用することができる。このような要素は、ここで使用されているような一般用語「伝送要素」によって包含されることが意図されており、ここでは「ユーザ」と呼ばれることもある。
【００７９】
図８の実施形態のスケジューラ８００は、上記のＷｉＲＲスケジューリング・アルゴリズムまたはその重み付き版のようなスケジューリング・アルゴリズムを実装するように構成されている。
【００８０】
スケジューラ１０２およびスケジューラ８００は、ここでより一般的に「スケジューリング回路」として呼ばれているものを説明するための例である。他の実施形態では、スケジューリング回路は、１つまたは複数の表、または本明細書で説明したスケジューリング技術を実装することができる１つまたは複数のハードウェア、ソフトウェア、およびファームウェアの他の構成を含むことができる。したがって、図ではスケジューラ８００とは別のものとして示してあるが、重み表８１０およびマッピング表８１２またはそれらの適切な部分を、少なくとも部分的に、本発明によるスケジューリング回路または関連する記憶装置に組み込むことができる。
【００８１】
スケジューラ１０２およびスケジューラ８００は、論理ゲート、処理要素、または本明細書で説明したタイプのスケジューリング機能を提供することができる他の回路のどのような構成も利用することができる。したがって、本発明によるスケジューリング回路は、本発明によるスケジューリング機能の少なくとも一部分を提供するようにソフトウェア制御下で適合可能である、その他の点では従来型の汎用ネットワーク・プロセッサ回路を備えることができる。このような多くの回路構成は当業者には容易に明らかであり、したがってここでは詳細に説明しない。
【００８２】
前述のとおり、本発明の所与の実施形態は、１つまたは複数の集積回路として実装することができる。このような構成では、複数の同一ダイが通常はウエハの表面に繰り返しパターンで形成されている。各ダイは、ここで説明した装置を含むことができ、また他の構造または回路を含むことができる。個々のダイはウエハから切り出されまたはダイスに切り分けられ、次いで集積回路としてパッケージされる。当業者なら、集積回路を製作するためにウエハをダイスに切り分けダイをパッケージする方法を知っているはずである。このように製造された集積回路は、本発明の一部分と見なされる。
【００８３】
本発明の上記の実施形態は例示のためのものにすぎないことを、ここでも強調しておく。たとえば、図８の例示的な実施形態では、関連する１つまたは複数の表とは別になったスケジューラを利用するが、これらの要素またはその一部分を、本発明によるスケジューリング回路に組み込むこともできる。同様に、送信キュー８０２およびトラフィック・シェーパ８０４は図８の実施形態に関してスケジューラ８００とは別であると説明されているが、少なくとも部分的に、関連する機能を本発明によるスケジューリング回路内に実装することもできる。他の実施形態では、記載の機能を実装するために、異なるタイプおよび構成の処理要素を使用することができる。たとえば、内部記憶装置、外部記憶装置、または内部記憶装置と外部記憶装置の組合せ中に、表を実装することができる。内部記憶装置の場合、このような記憶装置の少なくとも一部分はスケジューリング回路の内部にあることができる。修正ＷＲＲスケジューリングの他に、異なるタイプの多様な、重みに基づくスケジューリングを使用することができる。また、多種多様な異なるスケジューリング・ポリシーをサポートすることもできる。これらおよび添付の特許請求の範囲内の他の多くの代替実施形態が、当業者には明らかであろう。
【図面の簡単な説明】
【００８４】
【図１】本発明の例示的な実施形態における無線ネットワークを含む通信システムの、簡略化したブロック図である。
【図２】図１の通信システムの少なくとも一部分の、可能な一実装形態を示す図である。
【図３】本発明の一実施形態における図１の通信システムのスケジューラ中に実装される、修正ＲＲスケジューリング・アルゴリズムの流れ図である。
【図４】図３の修正ＲＲスケジューリング・アルゴリズムの動作例を示す表である。
【図５】本発明のもう１つの実施形態における図１の通信システムのスケジューラ中に実装される、修正ＷＲＲスケジューリング・アルゴリズムの流れ図である。
【図６】図１の通信システムの少なくとも一部分の、もう１つの可能な実装形態を示す図である。
【図７】ルータまたはスイッチのライン・カード上に設置された集積回路として示してある、図６のシステムのネットワーク・プロセッサのブロック図である。
【図８】本発明の技術に従って構成された、図６のシステムのネットワーク・プロセッサのより詳細な図である。
【図１】
0005164425.tif 000003
【図２】
0005164425.tif 000004
【図３】
0005164425.tif 000005
【図４】
0005164425.tif 000006
【図５】
0005164425.tif 000007
【図６】
0005164425.tif 000008
【図７】
0005164425.tif 000009
【図８】
0005164425.tif 000010