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