(57)【要約】通信システムにおいてタイムスロット中に複数の伝送要素から伝送するためのパケットまたは他のデータ・ブロックをスケジュールするための、スループットを向上したスケジューラを開示する。このスケジューラは、伝送要素についてそれぞれのチャネル容量を測定し、対応する伝送要素において伝送することができるデータ量に基づいてチャネル容量の１つまたは複数を調整する。スケジューラは次に、この１つまたは複数の調整したチャネル容量に基づいて、タイムスロットの所与の１つ中にスケジュールする伝送要素の１つまたは複数を選択する。例示的実施形態のスケジューラは、通信システムのネットワーク・プロセッサ集積回路または他の処理装置に実装することができる。
2010503275.tif 000002
【特許請求の範囲】
【請求項１】
通信システムにおいて複数の伝送要素から伝送するデータ・ブロックをタイムスロット中にスケジュールする方法であって、
前記伝送要素に対してそれぞれのチャネル容量を測定するステップと、
前記対応する伝送要素において伝送することができるデータ量に基づいて前記チャネル容量の１つまたは複数を調整するステップと、
前記１つまたは複数の調整したチャネル容量に基づいて、前記タイムスロットの所与の１つ中にスケジュールする前記伝送要素の１つまたは複数を選択するステップと
を含む方法。
【請求項２】
前記伝送要素が、それぞれのキューを含む、請求項１に記載の方法。
【請求項３】
前記調整するステップが、前記対応するキューの長さに基づいて、前記チャネル容量の１つまたは複数を調整することをさらに含む、請求項２に記載の方法。
【請求項４】
前記測定するステップ、調整するステップ、および選択するステップが、１つまたは複数のさらなるタイムスロットに対して繰り返される、請求項１に記載の方法。
【請求項５】
前記選択するステップが、前記それぞれの伝送要素の調整したチャネル容量のうちの最高の調整したチャネル容量を有する前記伝送要素の特定の１つを、前記所与のタイムスロット中にスケジュールするよう選択することを含む、請求項１に記載の方法。
【請求項６】
前記対応する伝送要素において伝送することができる前記データ量が、それぞれのキュー長によって指定される、請求項１に記載の方法。
【請求項７】
前記チャネル容量の所与の１つが、前記チャネル容量を、前記所与のチャネル容量および対応するキューに基づく大きさのうちの最小値をとることによって決定される等価チャネル容量に設定することによって調整される、請求項１に記載の方法。
【請求項８】
前記キューに基づく大きさが、キュー長を含む、請求項７に記載の方法。
【請求項９】
前記キューに基づく大きさが、タイムスロットあたりのキュー長を含む、請求項７に記載の方法。
【請求項１０】
前記キューに基づく大きさが、前記対応するキューの中のパケットの整数から決定され、前記パケットの整数の合計サイズが前記対応するチャネル容量より小さい、請求項７に記載の方法。
【請求項１１】
前記伝送要素の所与の１つが対応するチャネル容量より小さいキュー長を有する場合、その調整チャネル容量は、前記キュー長に等しく設定される、請求項１に記載の方法。
【請求項１２】
前記伝送要素の所与の１つが対応するチャネル容量より大きいキュー長を有する場合、その調整チャネル容量は、前記チャネル容量およびエンキューされたパケットの整数の合計サイズのうちのより小さい方に等しく設定される、請求項１に記載の方法。
【請求項１３】
前記選択するステップが、最大搬送波対干渉比スケジューリング・アルゴリズム、プロポーショナル・フェアネス・スケジューリング・アルゴリズム、および改良型最大重み付け遅延優先スケジューリング・アルゴリズムのうちの１つを利用する、請求項１に記載の方法。
【請求項１４】
実質的に同じ調整したチャネル容量を有することに基づいて、前記伝送要素の２つ以上が、前記所与のタイムスロット中にスケジュールするために選択され、前記選択された伝送要素の異なる要素に利用できるコードのセットの異なるサブセットを割り当てることにより、前記選択された伝送要素がすべて、前記所与のタイムスロット中にスケジュールされる、請求項１に記載の方法。
【請求項１５】
前記コードが、ＨＳＤＰＡコードを含む、請求項１４に記載の方法。
【請求項１６】
通信システムにおいて複数の伝送要素から伝送するためのデータ・ブロックをタイムスロット中にスケジュールする装置であって、
前記伝送要素に連結されたスケジューラを備え、
前記スケジューラが、前記伝送要素についてそれぞれのチャネル容量を測定し、前記対応する伝送要素において伝送することができるデータ量に基づいて前記チャネル容量の１つまたは複数を調整し、前記１つまたは複数の調整したチャネル容量に基づいて前記タイムスロットの所与の１つ中にスケジュールする前記伝送要素の１つまたは複数を選択するように構成された、装置。
【請求項１７】
前記スケジューラが、前記通信システムの処理装置に実装されたスケジューリング回路を含む、請求項１６に記載の装置。
【請求項１８】
前記処理装置が、ネットワーク・プロセッサ集積回路を含む、請求項１６に記載の装置。
【請求項１９】
通信システムにおいて複数の伝送要素から伝送するデータ・ブロックをタイムスロット中にスケジュールするように構成されたスケジューラを有する処理装置
を備え、
前記スケジューラが、前記伝送要素に連結され、
前記スケジューラが、前記伝送要素についてそれぞれのチャネル容量を測定し、前記対応する伝送要素において伝送することができるデータ量に基づいて前記チャネル容量の１つまたは複数を調整し、前記１つまたは複数の調整したチャネル容量に基づいて前記タイムスロットの所与の１つ中にスケジュールする前記伝送要素の１つまたは複数を選択するように構成された、集積回路。
【請求項２０】
前記処理装置が、ネットワーク・プロセッサ含む、請求項１９に記載の集積回路。
【請求項２１】
前記処理装置と関連付けられ、かつ前記１つまたは複数の調整したチャネル容量を格納するように構成された記憶回路をさらに含む、請求項１９に記載の集積回路。
【請求項２２】
前記スケジューラが、少なくとも部分的に前記処理装置上で作動するソフトウェアの形態で実装される、請求項１９に記載の集積回路。
【請求項２３】
複数の伝送要素および前記伝送要素に結合されたスケジューラを備える基地局と、
前記基地局と通信するように構成された複数のモバイル・ユーザの装置と
を含み、
前記基地局の前記スケジュールが、前記伝送要素から前記モバイル・ユーザの装置へ伝送するデータ・ブロックをタイムスロット中にスケジュールするように構成され、
前記基地局の前記スケジューラが、前記伝送要素についてそれぞれのチャネル容量を測定し、前記対応する伝送要素において伝送することができるデータ量に基づいて前記チャネル容量の１つまたは複数を調整し、前記１つまたは複数の調整したチャネル容量に基づいて前記タイムスロットの所与の１つ中にスケジュールする前記伝送要素の１つまたは複数を選択するように構成された、通信システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本出願は、２００６年５月１日に出願した「Wireless Network Scheduling Methods and Apparatus Based on Both Waiting Time and Occupancy」という名称の米国特許出願第１１／４１５，８３１号、２００６年５月１日に出願した「High-Throughput Scheduler with Guaranteed Fairness for Wireless Networks and Other Applications」という名称の第１１／４１５，５４６号、２００６年６月２９日に出願した「Credit-Based Wireless Network Scheduling」という名称の第１１／４２７，４７６号、および２００６年７月３１日に出願した「High-Throughput Scheduler with Integer-Based Eligible Number Initialization」という名称の第１１／４６１，１８１号と関連するものであり、これらの開示は参照により本明細書に組み込まれている。
本発明は、一般に電気通信の分野に関し、より詳細には限られたリソースへのアクセスを制御するために使用するスケジューラに関する。
【背景技術】
【０００２】
多くの電気通信の用途では、限られたリソースを求めて競合する複数のタスク間のコンテンションを解決するために、スケジューラを使用する。例えば、かかるスケジューラは、一般にネットワーク・プロセッサで使用されて、特定の伝送帯域幅での伝送のために複数のトラフィック・フローをスケジュールする。
【０００３】
ネットワーク・プロセッサは通常、ネットワークの物理層部分のような物理伝送媒体と、ルータのスイッチ・ファブリックまたは他のタイプのスイッチとの間のデータのフローを制御する。ネットワーク・プロセッサの重要な機能には、ネットワークの物理伝送媒体からスイッチ・ファブリックへの、およびその逆の伝送のための、複数のトラフィック・フローと関連した、セル、パケット、または他のデータ・ブロックのスケジューリングがある。ネットワーク・プロセッサのスケジューラがこの機能を行う。
【０００４】
複数のスケジューリング・アルゴリズムをサポートすることができる効率的かつ順応性のあるスケジューラのアーキテクチャが、発明者名Ａｓｉｆ  Ｑ．Ｋｈａｎ他で２００３年１１月２６日に出願された、「Processor with Scheduler Architecture Supporting Multiple Distinct Scheduling Algorithms」という名称の米国特許出願第１０／７２２，９３３号に開示されており、これは同一出願人によるものであって参照により本明細書に組み込まれている。
【０００５】
多くの場合、ネットワーク・プロセッサまたは他の処理装置に実装される所与のスケジューリング・アルゴリズムは、簡潔かつ公平であることが望ましい。処理装置のハードウェアは、特に高データ・レート環境では、通常は所与のスケジューリングの決定を行う時間があまりないため、簡潔であることが重要である。また優れたスケジューラは、公平でなければならない。例えばスケジューラは、ユーザの重みにより、優先度の高いユーザが優先度の低いユーザより多くの帯域幅を獲得するようにして、帯域幅を割り当てることができる。
【０００６】
簡潔で公平なスケジューリング・アルゴリズムの一例は、重み付きラウンドロビン（ＷＲＲ）スケジューリング・アルゴリズムである。所与の電気通信の用途において、各タイムスロット中に１つのデータ・ブロックを処理することができる１つのリソースを求めて競合する数人のユーザがいると仮定する。スケジューラは、各タイムスロット中にどのユーザが１つのデータ・ブロックをサーバに送ることができるかを決定しなければならない。各ユーザは、その優先度を示す重みを有する。より大きな重みを有するユーザが、より高い優先度を持つ。理想的な状態の下では、ユーザが受けるサービスは、ユーザの重みに比例するものとなる。ＷＲＲスケジューラは、ラウンドロビン式にユーザの重みに比例してユーザにサービスする。
【０００７】
ＷＲＲに伴う問題は、長時間のバーストを引き起こす可能性があることである。長いバーストは、ユーザの通信装置のバッファをオーバーフローさせる可能性があるため、これは通信システムでは明らかに望ましくない。かかるバーストは、ユーザの総数が数百以上となることがある実際の用途において次第に問題となってきている。
【０００８】
ＷＲＲのバーストの問題を克服する代替のスケジューリング・アルゴリズムが知られている。このような例として、重み付け均等化キューイング（ＷＦＱ）と、ワーストケース均等化重み付け均等化キューイング（ＷＦ２Ｑ）とがある。残念ながら、これらの代替のアルゴリズムは、一般的にＷＲＲよりかなり複雑であり、したがって高データ・レートの環境で動作するネットワーク・プロセッサおよび他の処理装置に実装することが難しい場合がある。
【０００９】
同一出願人によるものであって本明細書に参照により組み込まれている、発明者名Ｊｉｎｈｕｉ  Ｌｉ他で２００４年７月３０日に出願された、「Frame Mapping Scheduler」という名称の米国特許出願第１０／９０３，９５４号は、ＷＲＲに匹敵する簡潔さと公平さを備えながら、ＷＲＲに一般に付随するバーストの問題がないフレーム・マッピング・スケジューラを例示的実施形態で開示している。さらに具体的には、そこに説明される例示的実施形態のフレーム・マッピング・スケジューラは、重みテーブルとマッピング・テーブルとを利用するスケジューリング回路を備える。重みテーブルは、複数のエントリを含み、エントリのそれぞれが伝送要素の特定の１つを識別するようになっている。マッピング・テーブルは、フレームの特定のタイムスロットと重みテーブルのエントリとの間のマッピングを特定する少なくとも１つのエントリを含む。スケジューリング回路は、対応するマッピング・テーブルのエントリにアクセスし、結果の値を利用して重みテーブルにアクセスすることにより、所与のタイムスロット中にスケジュールされる特定の伝送要素を決定する。マッピング・テーブルのエントリは、黄金比ポリシーまたは他のタイプのポリシーに従って予め決定することができる。
【００１０】
しかし、黄金比ポリシー、またはより一般的にマッピング・テーブルを格納する必要があるいかなるポリシーを利用するスケジューラにおいても、マッピング・テーブルは大きいため、相当な量のメモリを必要とする可能性がある。通常、かかるマッピング・テーブルのメモリは、アクセス時間を削減するために、「オンチップ」、すなわちスケジューラと同じ集積回路上に配置されることが好ましい。例えば、かかる配置は、データ・ブロックが実質的にリアルタイムで処理される必要があるネットワーク処理の用途において有益である。
【００１１】
発明者名Ｊｉｎｈｕｉ  Ｌｉ他で２００４年１１月２９日に出願された、「Frame Mapping Scheduler with Compressed Mapping Table」という名称の米国特許出願第１０／９９８，６８６号は、テーブルを格納するために必要とされるメモリ量を削減するためにマッピング・テーブルを圧縮し、それによってフレーム・マッピング・スケジューラを備えるネットワーク・プロセッサ集積回路または他の装置にマッピング・テーブルを実装しやすくする技術を開示している。
【００１２】
上述した既知の配置は、無線ネットワークを必要とする用途を含む多種多様な電気通信の用途に利用することができる。しかし、無線ネットワークという状況でのスケジューリングは、無線ネットワークのチャネル容量が一般に時間と共に変化して予測が困難であるため、特に困難なものとなる可能性がある。かかる状況では、無線ネットワークのスケジューラが公平であるだけでなく、十分なスループットを提供することが重要である。
【００１３】
無線ネットワークという状況で利用されるスケジューリング・アルゴリズムの実例には、上述のＷＲＲスケジューリング・アルゴリズムおよび重み付きでないラウンドロビン（ＲＲ）と、最大搬送波対干渉比（Ｍａｘ  Ｃ／Ｉ）と、プロポーショナル・フェアネス（ＰＦ）と、Ｍ−ＬＷＤＦ（Ｍｏｄｉｆｉｅｄ  Ｌａｒｇｅｓｔ  Ｗｅｉｇｈｔｅｄ  Ｄｅｌａｙ  Ｆｉｒｓｔ、改良型最大重み付け遅延優先）とがある。
【００１４】
ＲＲスケジューリング・アルゴリズムの欠点は、チャネルの状態を考慮しないことである。代わりにＲＲスケジューリング・アルゴリズムは、単に未処理のユーザを１人ずつ、第１のユーザを第１のタイムスロットに割り当て、第２のユーザを第２のタイムスロットに割り当て、以下同様にして、それぞれのチャネル容量に関係なくスケジュールする。Ｎ個のタイムスロットの所与のセットでは、Ｎ人のユーザの各々がサービスされるチャンスを正確に１つ与えられるため、かかるアプローチは公平である。しかし、ＲＲアルゴリズムは、スケジューリングの決定を行う前にチャネル容量を調べないため、ＲＲアルゴリズムのスループットは劣っている。ＷＲＲスケジューリング・アルゴリズムも同様に、スケジューリングの決定にチャネル容量を考慮しない。
【００１５】
Ｍａｘ  Ｃ／Ｉスケジューリング・アルゴリズムは、所与のタイムスロットに、最良のチャネル容量を有するユーザを選択する。このアプローチは、最大の総スループットを達成することができるが、その公平性は非常に劣る。例えば、所与のモバイル・ユーザの無線リンクが常に弱い場合、そのユーザはスケジュールされない恐れがある。
【００１６】
ＰＦスケジューリング・アルゴリズムは、ｒｉがユーザｉのチャネル容量、Ｒｉがユーザにより受信される平均レートとするとき、最大のｒｉ／Ｒｉを有するユーザを選択する。このアルゴリズムは、適宜Ｒｉを更新する。したがって、弱い無線リンクのモバイル・ユーザが、スケジュールされる機会を有するようになる。ＰＦスケジューリング・アルゴリズムに関するさらなる詳細は、例えばＡ．Ｊａｌａｌｉ他、「Data throughput of CDMA-HDR a high efficiency high data rate personal communication wireless system」、Ｐｒｏｃ．ＩＥＥＥ  ＶＴＣ  ２０００、１８５４〜１８５８頁、２０００年５月の中に見つけることができる。ＰＦスケジューリング・アルゴリズムの公平性は、Ｍａｘ  Ｃ／Ｉスケジューリング・アルゴリズムよりは良いが、ＲＲまたはＷＲＲスケジューリング・アルゴリズムほどは良くない。ＰＦスケジューリング・アルゴリズムもやはり、公平性を保証することができない。
【００１７】
Ｍ−ＬＷＤＦスケジューリング・アルゴリズムは、より長い待ち時間を有するユーザにより高い優先度を与える。しかし、上述したＰＦスケジューリング・アルゴリズムと同様に、公平性を保証しない。
【００１８】
結果的に、Ｍａｘ  Ｃ／Ｉ、ＰＦ、およびＭ−ＬＷＤＦスケジューリング・アルゴリズムは、公平性を犠牲にすることにより無線状況においてＲＲおよびＷＲＲスケジューリング・アルゴリズムよりも優れたスループットを提供する。
【００１９】
上記の米国特許出願第１１／４１５，５４６号は、特に無線ネットワークの用途においてスループットと公平性との間により優れたバランスを示す改良されたスケジューリング・アルゴリズムを提供する。例示の実施形態では、このアルゴリズムは、無線ＲＲ（ＷｉＲＲ）スケジューリング・アルゴリズムと呼ばれる。この実施形態では、最初はすべての伝送要素が、所与のフレームでサービスを受ける資格があると指定されるが、いったん特定の伝送要素が所与のフレームのあるタイムスロットでサービスされると、その伝送要素はそのフレームの後続のいかなるタイムスロットでもサービスを受ける資格がないとみなされる。このプロセスは、さらなるフレームで繰り返され、各新しいフレームでは、伝送要素はすべて、最初はそのフレームで１つまたは複数のデータ・ブロックを伝送する資格があるものとして指定される。
【００２０】
上記の米国特許出願第１１／４１５，８３１号では、さらなる改良が行われており、従来のＭ−ＬＷＤＦスケジューリング・アルゴリズムのいくつかの欠点を克服している。例えば、Ｍ−ＬＷＤＦアルゴリズムは、許容限度は限られているが、キュー長が非常に大きくなる場合があり、したがってこのキューは、ネットワーク・プロセッサ集積回路または他のタイプのハードウェアでの実行が困難である可能性がある。引用した出願は、Ｍ−ＬＷＤＦなどの従来のスケジューリング・アルゴリズムと比べてより短いキューを用い、したがってメモリおよび他のハードウェア・リソースの量を削減して実行することができるスケジューリング・アルゴリズムを開示している。
【００２１】
上述の米国特許出願第１１／４６１，１８１号に記載されたスケジューリング・アルゴリズムは、整数ベースの適格数の初期設定を用いることにより、ＷｉＲＲスケジューリング・アルゴリズムと比較してスループットを向上させることができる。適格数は、共通に指定される整数値ｎを使用して初期設定され、ただしｎは、２以上の有限数とする。一実施形態では、ｎ−Ｗｉｒｅｌｅｓｓ  ＲＲ（ｎ−ＷｉＲＲ）スケジューリング・アルゴリズムが開示される。この実施形態においてＮ人の適格ユーザのすべてに対する適格数ｅｉは、整数値ｎに等しく設定することにより、すなわちすべてのｉに対してｅｉ＝ｎと設定することにより、初期設定される。この特定の実施形態では、ユーザがサービスされるたびに、ユーザの適格数は１ずつ減少する。適格数がゼロに達すると、そのユーザは所与のフレームにおいてそれ以上考慮される資格がなくなる。前述のように、このようなアプローチは、ＷｉＲＲアルゴリズムと比べてスループットを向上させることができる。
【特許文献１】米国特許出願第１１／４１５，８３１号
【特許文献２】米国特許出願第１１／４１５，５４６号
【特許文献３】米国特許出願第１１／４２７，４７６号
【特許文献４】米国特許出願第１１／４６１，１８１号
【特許文献５】米国特許出願第１０／７２２，９３３号
【特許文献６】米国特許出願第１０／９０３，９５４号
【特許文献７】米国特許出願第１０／９９８，６８６号
【非特許文献１】Ａ．Ｊａｌａｌｉ他、「Data throughput of CDMA-HDR a high efficiency high data rate personal communication wireless system」、Ｐｒｏｃ．ＩＥＥＥ  ＶＴＣ  ２０００、１８５４〜１８５８頁、２０００年５月
【発明の概要】
【発明が解決しようとする課題】
【００２２】
こうした進歩にもかかわらず、スケジューリング・アルゴリズムには、詳細には無線の状況において、さらなる向上の必要性が依然としてある。例えば、上記アルゴリズムのいくつかは、スケジューリングの決定を行う際にチャネル容量の大きさを利用する。いくつかの例では、チャネル容量の大きさは、対応するユーザが達成することができるスループットを正確に反映することができない。これは、例えば特定のユーザが高チャネル容量を有しながら、キュー長が短い状況において発生する可能性がある。かかるユーザを従来のチャネル容量の大きさに基づいてスケジュールすることにより、システムの総スループットに悪影響を及ぼす可能性がある。
【課題を解決するための手段】
【００２３】
１つまたは複数の例示的実施形態における本発明は、上記の従来のスケジューリング・アルゴリズムの１つまたは複数と比べて向上したスループットを示す無線スケジューリング・アルゴリズムを提供する。
【００２４】
本発明の一態様によれば、スケジューラは、通信システムにおいて複数の伝送要素から伝送するパケットまたは他のデータ・ブロックをタイムスロット中にスケジュールするように適合される。このスケジューラは、伝送要素についてそれぞれのチャネル容量を測定し、対応する伝送要素において伝送することができるデータ量に基づいてチャネル容量の１つまたは複数を調整する。スケジューラは次に、この１つまたは複数の調整したチャネル容量に基づいて、タイムスロットの所与の１つ中にスケジュールする伝送要素の１つまたは複数を選択する。例えば、スケジューラは、それぞれの伝送要素の調整したチャネル容量のうちの最高の調整したチャネル容量を有する伝送要素の特定の１つを、所与のタイムスロット中にスケジュールするよう選択することができる。
【００２５】
例示的実施形態では、伝送要素はそれぞれのキューを含み、チャネル容量は、対応するキューの長さに基づいて調整される。したがって対応する伝送要素において伝送することができるデータ量は、それぞれのキュー長によって指定することができる。さらに詳細な実例として、チャネル容量を、所与のチャネル容量および対応するキュー長のうちの最小値をとることによって決定される等価チャネル容量に設定することによって、チャネル容量の所与の１つを調整することができる。伝送要素の所与の１つが、この伝送要素の対応するチャネル容量より大きいキュー長を有する場合、この伝送要素の調整チャネル容量は、この伝送要素のチャネル容量およびエンキューされたパケットの整数の合計サイズのうちのより小さい方に等しく設定することができる。
【００２６】
上述の方法で決定される等価チャネル容量または他の調整したチャネル容量は、例えば上記のＭａｘ  Ｃ／Ｉ、プロポーショナル・フェアネス、またはＭ−ＬＷＤＦのスケジューリング・アルゴリズムを含むいくつかの様々なスケジューリング・アルゴリズムのいずれにおいても、従来のチャネル容量の代わりに利用することができる。
【００２７】
例示的実施形態のスケジューラは、スケジューリング回路の多種多様な配置を利用して、通信システムのネットワーク・プロセッサ集積回路または他の処理装置に実装することができる。
【図面の簡単な説明】
【００２８】
【図１】本発明の例示的実施形態における無線ネットワークを含む通信システムの簡略ブロック図である。
【図２】図１の通信システムの少なくとも一部の１つの可能な実装を示す図である。
【図３】本発明の一実施形態における図１の通信システムのスケジューラに実装されたスケジューリング・アルゴリズムの流れ図である。
【図４】図３のスケジューリング・アルゴリズムにおいて等価チャネル容量を決定する一技法を示す流れ図である。
【図５】ＨＳＤＰＡの適用において図３のスケジューリング・アルゴリズムの動作の一例を示す表である。
【図６】図１の通信システムの少なくとも一部の別の可能な実装を示す図である。
【図７】ルータまたはスイッチのライン・カードに組み込まれた集積回路として示した図６のシステムのネットワーク・プロセッサのブロック図である。
【図８】本発明の技術により構成された図６のシステムのネットワーク・プロセッサのさらに詳細な図である。
【発明を実施するための形態】
【００２９】
本明細書では例示的な無線ネットワークおよび他のタイプの通信システムと関連して、本発明を説明する。例示的なシステムは、本発明の技術を説明するために、特定の方法で構成されたそれぞれのスケジューラを含む。しかし、本発明は、向上したスループットを提供することが望ましいいかなる通信システムのスケジューラにもさらに広く適用できることを理解されたい。
【００３０】
図１は、本発明の例示的実施形態による通信システム１００の略図を示している。システム１００は、トランスミッタ１０４と、チャネル・ステータス要素１０６とに連結されたスケジューラ１０２を備える。スケジューラは、この実施形態ではＮ人のユーザのそれぞれに対するそれぞれのキュー１１０−１、１１０−２、…１１０−Ｎを含む伝送要素に連結されている。この例では、Ｎ人のユーザは、システム１００の無線ネットワークのモバイル・ユーザであって、従来の方法でトランスミッタ１０４と通信するそれぞれのモバイル・ユーザの装置１１２−１、１１２−２、…１１２−Ｎと関連付けられる。トランスミッタ１０４は、例えば無線ネットワークの基地局またはアクセス・ポイントの少なくとも一部を含むことができる。
【００３１】
無線ネットワークは、トランスミッタ１０４とモバイル・ユーザの装置１１２との間でパケットまたは他の配列のデータを通信するために構成されている。かかるすべての配列のデータが、本明細書で使用する「データ・ブロック」という一般用語に含まれるものとする。本発明は、データ・ブロックのいかなる特定の大きさまたは構成も要求しないということを理解されたい。説明を簡単におよびわかりやすくするために、図は、トランスミッタ１０４とモバイル・ユーザの装置１１２との間のダウンリンク通信のみを示しているが、同様の技術は他のタイプの伝送に利用される場合があることを理解されたい。
【００３２】
この実施形態のシステム１００は、各モバイル・ユーザ１１２に対して１つのキュー１１０を保有しているが、他のタイプのキューの配列を使用することができる。ダウンリンクの伝送は、タイムスロットで行われると仮定する。タイムスロットは、フレームのタイムスロットとすることができるが、本発明は、タイムスロットがフレームのタイムスロットであることを要求しない。各タイムスロット中にスケジューラ１０２は、ユーザの１人または複数にサービスする。この実施形態のスケジューラは、それぞれのモバイル・ユーザに関連する無線チャネル容量について認識していると仮定する。この認識は、チャネル・ステータス要素１０６により、または他の技術を用いてスケジューラに提供されることが可能である。先に述べたように、モバイル・ユーザに関連するチャネル容量は、一般に時間と共に変化し、予測が困難である。図３から５と併せて以下にさらに詳細に説明するように、スケジューラは、実際に測定したチャネルの状態および他のパラメータに基づいてスケジューリングの決定を行う。所与のタイムスロットに対してスケジューラは、ユーザのキュー１１０の１つまたは複数を選択し、それぞれそのタイムスロット中にパケットを伝送するようにスケジュールする。所与のパケットは、トランスミッタ１０４を介してモバイル・ユーザの装置１１２の対応する１つに伝送される。
【００３３】
図１のシステム１００は、例えば他の場合は従来の汎用移動通信システム（ＵＭＴＳ）または広帯域コード分割多重アクセス（ＷＣＤＭＡ）無線セルラ通信システムとして実装されることが可能である。かかる実装では、図２に示すシステム１００’は、図のように基地局１２２、１２４、および１２６に接続された無線ネットワーク制御装置（ＲＮＣ）１２０を備える。基地局１２２、１２４、および１２６は、公知のＵＭＴＳおよびＷＣＤＭＡの用語に従ってノードＢ要素と呼ぶ。これらの要素は、ＵＭＴＳおよびＷＣＤＭＡの状況ではユーザ装置（ＵＥ）要素と呼ばれるモバイル・ユーザの装置１１２と通信する。図１のシステムのスケジューラ１０２およびチャネル・ステータス要素１０６を、ＲＮＣ１２０に組み込むことができ、またはノードＢ要素１２２、１２４、および１２６の各々に複製することができる。例えば、ＵＭＴＳまたはＷＣＤＭＡシステム１００’が高速ダウンリンク・パケット・アクセス（ＨＳＤＰＡ）機能を提供するように構成される場合、スケジューラは一般に、高速スケジューリングを可能にするために各ノードＢ要素に配置される。
【００３４】
上記のＨＳＤＰＡ機能は、送信時間間隔（ＴＴＩ）と呼ばれるタイムスロットを利用し、各ＴＴＩ内で１人または複数のユーザにサービスすることができる。ＨＳＤＰＡ機能は、周波数分割複信（ＦＤＤ）モードまたは時分割複信（ＴＤＤ）モードで提供されることが可能である。ＦＤＤモードでは、所与のＴＴＩは２ミリ秒（ｍｓ）の継続時間を有し、ＴＤＤモードでは、所与のＴＴＩは５ｍｓまたは１０ｍｓとなる可能性がある。これらおよび他のＴＴＩは、本明細書で使用される「タイムスロット」という一般用語に含まれるものとする。
【００３５】
ＵＭＴＳまたはＷＣＤＭＡの状況において、データを所与のノードＢからＵＥへ送信するためにＨＳＤＰＡで一般に使用される通信システムのチャネルは、高速ダウンリンク共有チャネル（ＨＳ−ＤＳＣＨ）と呼ばれる。
【００３６】
説明を簡単にかつわかりやすくするために、以下に述べるスケジューラ１０２は、１タイムスロットにつきただ１人のユーザにサービスすると仮定するが、記載の技術を直接的に拡張して、複数のユーザを単一のタイムスロット中にスケジュールすることができるＨＳＤＰＡおよび他の配置に適応させることができることを理解されたい。
【００３７】
図１および２に示す要素の特定の配置は、単に説明的な実例としてのものであることに注意されたい。より詳細には、上記のように、本発明は、いかなるタイプの無線ネットワークまたは他の通信システムにも実装することができ、いかなる特定の通信用途にも限定されない。
【００３８】
スケジューラ１０２は、ユーザのキュー１１０から伝送するためのパケットまたは他のデータ・ブロックをタイムスロット中にスケジュールするように構成されている。所与のタイムスロットのスケジューリングにおいて、スケジューラは、１つまたは複数のデータ・ブロックを伝送する資格のあるユーザのキュー１１０のそれぞれに対して本明細書で「等価チャネル容量」と呼ぶものを決定する。等価チャネル容量は、より一般的に本明細書で調整したチャネル容量と呼ぶものの一例として示されるものとする。動作では、ユーザのキュー１１０のそれぞれに対してチャネル容量を測定し、その後これらのチャネル容量の１つまたは複数を、対応するユーザのキューの中の伝送することができるデータ量に基づいて調整する。次にこの調整したチャネル容量に基づいて、ユーザのキューの１つまたは複数を、タイムスロットの所与の１つ中にスケジュールするために選択する。
【００３９】
例示的実施形態では、対応するキューの中の伝送することができるデータ量は、それぞれのキュー長によって指定される。したがって、チャネル容量の所与の１つは、チャネル容量を、所与のチャネル容量およびキュー長もしくはタイムスロットあたりのキュー長など対応するキューに基づく大きさのうちの最小値をとることによって決定される等価チャネル容量に設定することにより、調整することができる。次にスケジューラ１０２は、例えばそれぞれのユーザのキューの調整したチャネル容量のうち、最高の調整したチャネル容量を有するユーザのキューの特定の１つを、所与のタイムスロット中にスケジュールするように選択することができる。
【００４０】
調整したチャネル容量に基づくこのスケジューリング方法は、スケジューリングの決定を少なくとも部分的にチャネル容量に基づかせる従来のスケジューリング・アルゴリズムの深刻な問題を有利に克服する。
【００４１】
上記のＭａｘ  Ｃ／Ｉ、プロポーショナル・フェアネス、およびＭ−ＬＷＤＦのスケジューラのような多くの従来のスケジューラは、そのスケジューリングの決定を少なくとも部分的にチャネル容量に基づかせていた。一般により高いチャネル容量を有するユーザは、より優先的に選択されるチャンスを有する。しかし、所与のユーザが高チャネル容量を有するが、対応するキューが非常に短い場合、このユーザのチャネル容量は十分に利用されないことになる。したがって、かかるユーザがスケジューラに選択されると、システムの総スループットに悪影響を及ぼす可能性がある。
【００４２】
さらに詳細な例として、１４．４Ｍｂｐｓの最高レートを有する典型的なＨＳＤＰＡの実装を考える。ＦＤＤモードでは、１スロットは２ｍｓであり、ゆえに所与のスロットの最大チャネル容量は、１４．４Ｍｂｐｓ＊２ｍｓ＝２８，８００ビット＝３，６００バイトである。したがって、１スロット中に最大３，６００バイトを転送することができる。３，６００バイトを大いに下回るキュー長を有するユーザが選択された場合、帯域幅を無駄にすることになる。
【００４３】
この例示的な実施形態は、システム１００のＮ人のユーザのキューに対して上記の調整したチャネル容量を決定することによって、従来のスケジューラと関連するこの深刻な問題を克服する。等価チャネル容量を決定し、スケジューリング・アルゴリズムで通常のチャネル容量の代わりに使用する。例えばＭａｘ  Ｃ／Ｉ、プロポーショナル・フェアネス、Ｍ−ＬＷＤＦ、または別のスケジューリング・アルゴリズムとすることができるスケジューリング・アルゴリズムの動作は、その他の点では変わらないものとする。
【００４４】
かかる変更したスケジューリング・アルゴリズムのさらに詳細な例を、図３および４の流れ図と併せて以下に説明する。
【００４５】
スケジューラ１０２は、本明細書の他の場所でさらに詳細に説明するように、少なくとも部分的には集積回路の形態で実装することができる。かかる集積回路は、ネットワーク・プロセッサもしくは他のタイプのプロセッサ、または所与の通信システム要素に実装される処理装置を含むことができ、例えば図１のシステムのトランスミッタ１０４と関連した基地局もしくはアクセス・ポイント、または図２のシステムのＲＮＣもしくはノードＢ要素などである。
【００４６】
スケジューラ１０２は、例えば上記の米国特許出願第１０／９０３，９５４号および第１０／９９８，６８６号に記載されたタイプのフレーム・マッピング・スケジューラとすることができる。これらの技術を用いることにより、黄金比ポリシーまたはマッピング・テーブルを格納する必要がある他のいかなるポリシーに対しても、マッピング・テーブルを格納するために必要とされるメモリの量を実質的に削減することができる。
【００４７】
本発明のスケジューリング技術はさらに、または代替的に、上記の米国特許出願第１０／７２２，９３３号に開示されたような、複数のスケジューリング・アルゴリズムをサポートすることができる柔軟性のあるスケジューラのアーキテクチャと併せて使用することができるということに注意されたい。
【００４８】
次に図３を参照し、図１のシステム１００のスケジューラ１０２により実行される、例示的なスケジューリング・アルゴリズムの動作を示す。このスケジューリング・アルゴリズムは、スケジューリングの決定にチャネル容量を利用する従来のＭａｘ  Ｃ／Ｉ、プロポーショナル・フェアネス、またはＭ−ＬＷＤＦのスケジューラよりも優れたスループットを提供することができる。他の実施形態では、フレームのタイムスロットを使用することができるが、この変形では、タイムスロットは完全に独立しており、フレームの一部ではないと仮定する。
【００４９】
ステップ３００において、それぞれのユーザに等価チャネル容量を決定する。システム１００のユーザのキュー１１０は、この例の状況では「ユーザ」と呼ぶ。それぞれのキュー長に基づいて調整したチャネル容量を決定するための１つの可能な技術について、図４の流れ図を参照して説明する。
【００５０】
ステップ３０２において、次の利用可能なタイムスロットについてスケジューラ１０２は、等価チャネル容量に基づいてＮ人のユーザのうちの特定の１人を選択する。例えば、スケジューラは、Ｎ人のユーザのうちから最大値の等価チャネル容量を有するユーザを選択することができる。利用可能なタイムスロットは、本明細書では現在のタイムスロットとも呼ぶ。
【００５１】
本明細書に記載したこれらおよび他の例では、説明を簡単にかつわかりやすくするために常にＮ人のユーザのすべてが未処理であると仮定する。ユーザは、伝送する少なくとも１パケットを有する場合、未処理であるとみなされる。図１の図を参照すると、例示したユーザの各々、すなわちユーザ１、２、３、およびＮは、各々がその関連するキューに少なくとも１パケットを有するため未処理であるということが理解できる。
【００５２】
前述した未処理のユーザの想定、および本明細書で行った他の想定は、他の実施形態に当てはめる必要はない。例えば、代替的な実施形態では、当業者には理解されるように、現在のタイムスロットで未処理ではないユーザは、そのタイムスロットのスケジューリング・プロセスの考慮から外されることが可能である。しかし、現在のタイムスロットで未処理ではないユーザは、次のタイムスロットで未処理となる可能性があると理解されるべきであり、したがって現在のタイムスロットをスケジュールする際にかかるユーザを考慮から除外することが、他のタイムスロットに対する考慮からかかるユーザを除外することと解釈されるべきではない。
【００５３】
ステップ３０４では、選択されたユーザが利用可能なタイムスロットでサービスされる。選択されたユーザは、この例では利用可能なタイムスロット中の伝送に、対応するユーザのキュー１１０からパケットをスケジュールすることにより「サービス」される。
【００５４】
ステップ３０６では、ユーザの特定の１人が現在のタイムスロットでのスケジューリングに選択された後に、等価チャネル容量が更新される。
【００５５】
ステップ３０６において等価チャネル容量を更新した後に、プロセスはステップ３０２へ戻って、次のタイムスロットのスケジューリングを決定する。
【００５６】
図４は、図３のスケジューリング・アルゴリズムにおいてＮ人のユーザの等価チャネル容量を測定する１つの技術を示している。この技術では、ステップ４００に示すように、Ｎ人のユーザの各々についてチャネル容量およびキュー長が測定される。チャネル容量は、上記のＭａｘ  Ｃ／Ｉ、プロポーショナル・フェア、およびＭ−ＬＷＤＦのスケジューリング・アルゴリズムの典型的な実行で通常使用される大きさのような、いかなるタイプのチャネル容量の大きさを参照することもできる。キュー長は、本明細書でより一般的にキューに基づく大きさと呼ぶものの一例であり、この実施形態では一般的に、所与のキューの占有部分の長さを指す。すなわち、物理的な長さまたは最大容量という意味ではなく、キューが含むデータという意味でのキューの長さである。これは、対応するユーザについて伝送することができるデータ量の１つの表示タイプとなるが、他の実施形態では利用可能なデータの量の他の表示を使用することができる。
【００５７】
ステップ４０２では、Ｎ人のユーザの各々について、対応するチャネル容量およびキュー長の最小値として等価チャネル容量を計算する。したがって、Ｎ人のユーザの所与の１人については、等価チャネル容量は次のように計算することができる。
ｅｑｕｉｖａｌｅｎｔ＿ｃｈａｎｎｅｌ＿ｃａｐａｃｉｔｙ＝ｍｉｎ（ｃｈａｎｎｅｌ＿ｃａｐａｃｉｔｙ，ｑｕｅｕｅ＿ｌｅｎｇｔｈ）
ここでｅｑｕｉｖａｌｅｎｔ＿ｃｈａｎｎｅｌ＿ｃａｐａｃｉｔｙ（等価チャネル容量）およびｃｈａｎｎｅｌ＿ｃａｐａｃｉｔｙ（チャネル容量）は、スロットあたりのバイトで指定され、ｑｕｅｕｅ＿ｌｅｎｇｔｈ（キュー長）はバイトで指定される。したがって、所与のユーザのチャネル容量が３，６００バイト／スロットで、キュー長が６４バイトである場合、このユーザの等価チャネル容量は６４バイト／スロットである。他の実施形態では、多種多様な代替的装置およびチャネル容量の大きさを利用することができる。例えば、キュー長は、上式のチャネル容量と同様にスロットあたりのバイトで指定することができる。本実施形態の等価容量は、このようにスロットあたりのバイトのチャネル容量およびバイトもしくはスロットあたりのバイトのキュー長の最小値として計算され、その結果はスロットあたりのバイトで表示される。
【００５８】
図４の特定の調整プロセスおよび上記の特定の式は、単に実例として示していること、また、伝送することができるそれぞれのデータ量に基づいてチャネル容量を調整するのに数多くの他の技術を使用できることを理解されたい。
【００５９】
また、本明細書で使用する「チャネル容量」という用語は、広義に解釈されるものとする。上述の例のいくつかでは、例示的なチャネル容量としてスロットあたりのバイト数を用いたが、チャネルが搬送することができるデータ量を示す他のいかなる尺度を用いることもできる。
【００６０】
図３および４の例示的実施形態のスケジューリング・アルゴリズムは、キュー長に基づいてチャネル容量を調整し、スケジュールされたユーザが、割り当てられた帯域幅を確実に活用できるようにする。かかるアルゴリズムは、少なくとも部分的にチャネル容量に基づいて決定する従来のアルゴリズムと比べて向上したスループットをもたらす。
【００６１】
以下の表１は、等価チャネル容量を使用した、および使用しない、異なるスケジューリング・アルゴリズムのスループット特性を示す。このスループット特性は、Ｎ＝４００人のユーザ、回線レートの１００％である総入力レート、および別個の全く同様に分散したトラフィック・ジェネレータを含むシミュレーションにより、測定された。使用されたスケジューリング・アルゴリズムは、Ｍａｘ  Ｃ／Ｉ、プロポーショナル・フェアネス、およびＭ−ＬＷＤＦであった。従来のチャネル容量を使用してこれらのアルゴリズムを実行し、それぞれ９５．１％、９０・７％、および９４．５％のスループットをもたらした。例示のスケジューリング・アルゴリズムのそれぞれについて、上述した等価チャネル容量の使用によりかなりの改善が見られる。
【００６２】
【表１】
2010503275.tif 000003
【００６３】
上述の例示的実施形態は、説明を簡単におよびわかりやすくするために、ユーザは１スロット中のチャネル容量内で任意の整数のバイトを伝送することができると仮定する。バイトは、本明細書で使用するデータ・ブロックの一タイプとみなす。いくつかの実施では、ユーザは単に、それぞれ複数のバイトを含む、整数のパケット、セル、または他のデータ・ブロックを送信することができる場合がある。例えば、このタイプの実施のあるキューは、２つの６４バイトのパケットを含み、したがって全キュー長は１２８バイトであると仮定する。チャネル容量が１００バイトである場合、パケットの一部を伝送することができないため、等価チャネル容量は、１００バイトではなく、６４バイトとすべきである。かかる実施形態では、キュー長がチャネル容量以下である場合、等価チャネル容量は、キュー長と等しく設定することによって決定することができる。他の方法では、等価チャネル容量は、等価チャネル容量がチャネル容量以下である限り、キュー内のパケットを合計することによって決定する。
【００６４】
上述の方法で所与のユーザについて等価チャネル容量を計算する擬似コードの例示的セットは、次のようなものである。
ＩＦ  ｑｕｅｕｅ＿ｌｅｎｇｔｈ＜＝ｃｈａｎｎｅｌ＿ｃａｐａｃｉｔｙ
ＴＨＥＮ  ｅｑｕｉｖａｌｅｎｔ＿ｃｈａｎｎｅｌ＿ｃａｐａｃｉｔｙ＝ｑｕｅｕｅ＿ｌｅｎｇｔｈ
ＥＬＳＥ
ｅｑｕｉｖａｌｅｎｔ＿ｃｈａｎｎｅｌ＿ｃａｐａｃｉｔｙ＝キュー内のパケットのＳＵＭ
ＷＨＩＬＥ  ｅｑｕｉｖａｌｅｎｔ＿ｃｈａｎｎｅｌ＿ｃａｐａｃｉｔｙ＜＝ｃｈａｎｎｅｌ＿ｃａｐａｃｉｔｙ
【００６５】
チャネル容量が、最大パケット・サイズよりかなり大きい実施形態では、前述のようにチャネル容量およびキュー長の最小値を選択することにより、上記擬似コードにより達成される結果に十分に近い値が得られる。
【００６６】
上述のタイプのスケジューリング・アルゴリズムは、少なくとも部分的に、ネットワーク・プロセッサまたは他のタイプの処理装置で実行する１つまたは複数のソフトウェア・プログラムの形態で実装されることが可能である。
【００６７】
図３のステップ３０２において、スケジューラ１０２により２人以上のユーザが同じ等価チャネル容量を有すると判断されたとき、この関係を無作為に解消することができ、すなわちより小さい添え字ｉを有するユーザを選択することができ、ここでｉ＝１，２，…Ｎである。所与のタイムスロットの中で複数のユーザをサービスすることができる上記のＨＳＤＰＡの状況または他の状況において使用するのに適した、かかる関係に対処する別の技術は、この所与のタイムスロットの中で複数のユーザを同時にサービスすることであり、次に図５を参照して説明する。
【００６８】
図５は、いくつかの異なるＨＳＤＰＡタイムスロットのそれぞれで複数のユーザをスケジュールする実例を示す。この実例では、利用可能なコードのセットは、コード１からコード１０を表す１０個のコードのセットを含む。各タイムスロットは、２ｍｓの継続時間を有するＦＤＤモードのＴＴＩを含む。図の異なる陰影は、異なるユーザを表す。ユーザの各々に１つまたは複数のコードを割り当てることにより、タイムスロットの所与の１つに最大１０人までの異なるユーザをスケジュールすることができる。
【００６９】
この例で使用する特定数のコードは、単に説明のためであって、他の実施形態ではより多いまたはより少ないコードを使用することが可能であるということに注意されたい。上記のように、典型的にＨＳＤＰＡでは、所与のノードＢからモバイル・ユーザにデータを送信するために、ＨＳ−ＤＳＣＨチャネルを使用する。このチャネルに、最大１５個までのコードを割り当てることができる。したがって、図５に示した１０個のコードは、使用することができるコードのセットのほんの一例を表している。
【００７０】
図に示した第１のタイムスロットでは、３人のユーザがスケジュールされており、１人は４コードを、他の２人はそれぞれ３コードを割り当てられている。第２および第３のタイムスロットでは、ただ１人のユーザがスケジュールされており、各タイムスロットで１０個のコードすべてを割り当てられている。第４のタイムスロットでは、２人のユーザがスケジュールされ、各々１０個の利用可能なコードのうちの５個を割り当てられている。図に示した残りのタイムスロットは、同様にスケジュールされている。
【００７１】
上述のように、単一のタイムスロットに複数のユーザをスケジュールすることは、ＨＳＤＰＡ以外の状況で適用されることが可能であり、またタイムスロットおよびコードの他の配置を用いて実行される場合もある。
【００７２】
典型的な無線ネットワークでは、モバイル・ユーザは頻繁に、ネットワークまたはネットワークの特定のセルもしくは他の受信可能範囲から外れたり、そこに加わったりする。スケジューラ１０２は、所与のフレームまたは他のものの間に外れたり加わったりするユーザに対処するように構成することができる。外れるユーザに関しては、スケジューラは、これらのユーザを単に不適格として示すか、さもなければこれらのユーザをスケジューリング・プロセスの考慮から除外することができる。加わる新しいユーザに関しては、スケジューラは、一例として、これらのユーザを適格とする前に新しいフレームが始まるまで待つか、あるいは新しいユーザの適格性ステータスを調整することができる。
【００７３】
先に示したように、本明細書に記載したスケジューリング・アルゴリズムは、他の多くのタイプの通信システムで実装することができる。次に図６から８を参照して、別の例示的なシステムについて説明する。これらの図では、スケジューリング・アルゴリズムは、ネットワーク・プロセッサのスケジューラに実装される。かかるネットワーク・プロセッサは、図１および２に示した無線ネットワークを含むシステムで使用することができるが、図６に示す通信システム６００のような他のタイプのシステムでも使用することができる。
【００７４】
システム６００は、内部メモリ６０４を有するネットワーク・プロセッサ６０２を含む。ネットワーク・プロセッサ６０２は、図のように外部メモリ６０６に接続され、ネットワーク６０８とスイッチ・ファブリック６１０との間でパケットまたは他のデータ配列を通信するためのインターフェースを提供するように構成されている。上記のように、かかるデータ配列はすべて、本明細書で使用する「データ・ブロック」という一般用語に含まれるものとする。ネットワーク６０８は、無線ネットワークとすることができ、図１および２のシステムの無線ネットワークの１つの一部に相当し、ネットワーク・プロセッサ６０２およびスイッチ・ファブリック６１０は、かかるシステムの基地局、ネットワーク・コントローラ、または他の要素に実装することができる。
【００７５】
ネットワーク・プロセッサ６０２およびその関連する外部メモリ６０６は、例えばルータ、スイッチ、または他のシステム要素のライン・カードまたはポート・カードに組み込まれた１つまたは複数の集積回路として、実装することができる。
【００７６】
図７は、図６のシステム６００の一部の例示的なライン・カードの実施形態を示している。この実施形態ではシステムは、少なくとも１つの集積回路７０２が組み込まれたライン・カード７００を含む。集積回路７０２は、内部メモリ６０４を有するネットワーク・プロセッサ６０２を含む。ネットワーク・プロセッサ６０２は、ライン・カード７００上の外部メモリ６０６と対話する。外部メモリ６０６は、例えばネットワーク・プロセッサ集積回路７０２用の外部スタティック・ランダム・アクセス・メモリ（ＳＲＡＭ）またはダイナミック・ランダム・アクセス・メモリ（ＤＲＡＭ）として働くことができる。かかるメモリは、従来の方法で構成されることが可能である。また好適なホスト・プロセッサをライン・カード７００上に組み込み、ライン・カード７００上の１つまたは複数のネットワーク・プロセッサ集積回路の動作をプログラムする、および他の方法で制御するために使用することができる。
【００７７】
図６および７に示す通信システムの部分は、説明をわかりやすくするためにかなり簡略化している。しかし、このシステムは、図７に示すライン・カードのような複数のライン・カードを含むルータ、スイッチ、または他の要素を備えることができ、またライン・カードのそれぞれは、複数の集積回路を含むことができるということを理解されたい。同様の実施形態は、ポート・カードの形態で実装することができる。しかし、本発明は、ルータ、スイッチ、または他の要素にかかるカードに基づく実装を要求しない。
【００７８】
また、図６および７に示す要素の特定の配置は、単に説明的な実例としてのものであることを理解されたい。より詳細には、上記のように本発明は、いかなるタイプのプロセッサまたは他の通信システム処理装置にも実装することができ、いかなる特定のネットワーク・ベースの処理用途にも限定されない。
【００７９】
本明細書で使用する用語「プロセッサ」は、限定ではないが一例として、マイクロプロセッサ、中央演算処理装置（ＣＰＵ）、デジタル・シグナル・プロセッサ（ＤＳＰ）、特定用途向け集積回路（ＡＳＩＣ）、または他のタイプのデータ処理装置と一般に関連する要素などの要素、ならびにかかる要素の一部および組み合わせを用いて、実装されることが可能である。
【００８０】
また、図６および７に示すシステム６００およびネットワーク・プロセッサ６０２は、詳細に示した諸要素に加えて、またはこれに替えて、かかるシステムおよびネットワーク・プロセッサの従来の実装に一般に見られるタイプの１つまたは複数の要素など、他の要素を含むことができる。例えば、ネットワーク・プロセッサは、選別器、キューイングおよびディスパッチ・ロジック、１つまたは複数のメモリ・コントローラ、ネットワーク・プロセッサとネットワーク６０８を接続するインターフェース回路、スイッチ・ファブリック６１０、ホスト・プロセッサまたは他の外部装置、ならびに図中には明示していない他の従来の要素を含むことができる。これらおよび他の従来の要素は、当業者には公知であり、本明細書では詳細に記載していない。
【００８１】
本明細書に記載するネットワーク・プロセッサ６０２の機能は、少なくとも部分的にソフトウェアのプログラム・コードの形態で実装することができる。例えば、ネットワーク・プロセッサでスケジューリング動作を行うことに関連する要素は、少なくとも部分的に、外部のホスト・プロセッサもしくは他の好適な機構を介してネットワーク・プロセッサに提供できる、命令によってプログラム可能な要素、または他のソフトウェアを利用して実装されることが可能である。例えば、特定のスケジューリング・アルゴリズムの特性を示す情報、または関連するトラフィック・シェーピング情報は、関連するホスト・プロセッサまたは他の好適な機構からネットワーク・プロセッサに提供されることが可能である。
【００８２】
図８は、本発明の例示的実施形態のネットワーク・プロセッサ６０２のより詳細な図を示す。この実施形態のネットワーク・プロセッサ６０２は、スケジューラ８００と、送信キュー８０２と、トラフィック・シェーパ８０４と、重みテーブル８１０と、マッピング・テーブル８１２とを含む。動作中、スケジューラ８００は、送信キュー８０２と関連するデータ・ブロックを、明示していない１つまたは複数の伝送媒体によって伝送するためにスケジュールする。このスケジューリングは、送信キュー８０２と関連するデータ・ブロックを伝送のためにスケジュールする際に、トラフィック・シェーパ８０４からのトラフィック・シェーピング情報と併せて、またはかかる情報なしに、重みテーブル８１０およびマッピング・テーブル８１２を利用する。
【００８３】
先に示したように、ネットワーク・プロセッサ６０２は、例えば上記の米国特許出願に記載されたタイプの追加要素、または当業者には既知の従来のタイプの追加要素を含むことができるが、かかる要素は、他の場所で説明されているため、本明細書ではさらに説明しない。
【００８４】
重みテーブル８１０およびマッピング・テーブル８１２は、少なくとも一部をネットワーク・プロセッサ６０２の内部メモリ６０４に格納されることが可能であり、またその上にまたは代替的に少なくとも一部をネットワーク・プロセッサ６０２の外部メモリ６０６に格納されることが可能である。内部メモリを使用して格納されるとき、かかるメモリの少なくとも一部は、スケジューラ８００または他のスケジューリング回路の内部に位置することが可能である。
【００８５】
テーブル要素８１０および８１２に加えて、スケジューラ８００は、上記の米国特許出願に記載されたタイプの、もしくは従来の実施で知られるタイプの、スタティックなもしくはダイナミックなテーブルに基づくスケジューリングで使用するのに好適な、いくつかの追加のタイムスロット・テーブルまたは他のタイプのテーブル要素を含む、あるいはこれらと関連付けることができる。
【００８６】
送信キュー８０２は、複数の伝送要素を含んでいるとみなすことができる。例えば、送信キューは、それぞれが伝送要素と対応している複数の送信キュー、および関連する制御ロジックを含むことができる。しかし、本明細書で使用する「伝送要素」という用語は、１つまたは複数のデータ・ブロックの任意のソース、またはネットワーク・プロセッサ６０２に伝送のためにスケジュール可能な他の要素を含むように、より一般的に解釈されるものとすることに注意されたい。
【００８７】
パケットまたは他のデータ・ブロックは、図に明示していないが、関連するネットワーク・プロセッサのデータ経路から送信キュー８０２の伝送要素にエンキューされることが可能である。これは、パケット・エンキュー・メッセージおよび関連するデータ・ブロックがかかるデータ経路か受信されると共に発生することがある。同様に、パケットまたは他のデータ・ブロックは、伝送に際して例えばパケット・デキュー・メッセージおよび関連するデータ・ブロックがデータ経路へ送られると共に、伝送要素からデータ経路へデキューされることが可能である。
【００８８】
トラフィック・シェーパ８０４は、一例では、送信キュー８０２の伝送要素からデータ・ブロックを伝送するために、既知の方法で１つまたは複数のトラフィック・シェーピングの要求を確定する、他の点では従来のトラフィック・シェーピング・エンジンとして実装されることが可能である。トラフィック・シェーパ８０４は、スケジューラ８００を介して送信キュー８０２からキューおよびスケジューラのステータスに関する情報を受け取ることができる。トラフィック・シェーパは、伝送要素またはその対応するネットワーク接続の１つまたは複数に対してサービス・クラス（ＣｏＳ、ｃｌａｓｓ  ｏｆ  ｓｅｒｖｉｃｅ）または他の所望のサービス・レベルを確定するために、キューの送信間隔および優先順位付けなどのトラフィック・シェーピング情報を生成することができる。
【００８９】
上記のように、ネットワーク・プロセッサの状況では、伝送要素、すなわちスケジュールされるエンティティは、キューを含むことができる。しかし、本発明は、データ・ブロックが伝送されるいかなるタイプの要素を、さらに一般的には通信システムの処理装置においてスケジュール可能ないかなるタイプの要素をスケジュールするためにも利用することができる。かかる要素は、本明細書で使用する一般用語「伝送要素」に含まれるものとし、本明細書では「ユーザ」と呼ぶこともある。
【００９０】
図８の実施形態のスケジューラ８００は、等価チャネル容量を利用する上述のスケジューリング・アルゴリズムのようなスケジューリング・アルゴリズムを実装するように構成されている。
【００９１】
スケジューラ１０２および８００は、本明細書でより一般的に「スケジューリング回路」と呼ぶものの説明的な実例である。他の実施形態では、スケジューリング回路は、本明細書に記載したスケジューリング技術を実装することができる１つまたは複数のハードウェア、ソフトウェア、およびファームウェアの１つまたは複数のテーブルもしくは他の配置を含むことができる。したがって、図ではスケジューラ８００から分けて示したが、重みテーブル８１０およびマッピング・テーブル８１２またはその適切な部分は、本発明によるスケジューリング回路または関連するメモリに少なくとも部分的に組み込むことができる。
【００９２】
スケジューラ１０２および８００は、本明細書に記載したタイプのスケジューリング機能を提供することができる論理ゲート、処理要素、または他の回路構成のいかなる配置を利用することもできる。本発明によるスケジューリング回路は、したがって、本発明によるスケジューリング機能の少なくとも一部を提供するようにソフトウェア制御下で適合可能な、他の点では従来型の汎用ネットワーク・プロセッサ回路を含むことができる。数多くのかかる回路の配置は、当業者には容易に理解できるため、本明細書では詳細に記載しない。
【００９３】
上記のように、本発明の所与の実施形態は、１つまたは複数の集積回路として実装することができる。かかる配置では、一般的に複数の同一のダイをウェーハの表面に繰り返しパターンで形成する。各ダイは、本明細書に記載した装置を含むことができ、また他の構造または回路を含むことができる。個々のダイはウェーハから切り取られ、またはダイスカットされて、集積回路としてパッケージ化される。当業者は、ウェーハをダイスカットし、ダイをパッケージ化して集積回路を製造する方法を理解しているであろう。このように製造される集積回路は、本発明の一部とみなす。
【００９４】
再度、上述の本発明の実施形態は、単に例示的なものとすることを強調したい。例えば、図８の例示的実施形態は、関連するテーブルから分離したスケジューラを利用しているが、これらの要素またはその一部は、本発明によるスケジューリング回路に組み込むことができる。同様に、送信キュー８０２およびトラフィック・シェーパ８０４は、図８の実施形態と関連してスケジューラ８００から分離して描かれているが、関連の機能は、本発明によるスケジューリング回路内に少なくとも部分的に実装することができる。他の実施形態は、上述の機能を実装するために異なるタイプまたは配置の処理要素を用いることができる。例えばテーブルは、内部メモリ、外部メモリ、または内部および外部メモリの組み合わせに実装することができる。内部メモリについては、かかるメモリの少なくとも一部が、スケジューリング回路の内部である場合がある。図４に示す特定の例の他に、多様なタイプの等価チャネル容量、すなわちより一般的には調整したチャネル容量を使用することができる。また、多種多様なスケジューリング・ポリシーをサポートすることができる。添付の特許請求の範囲の範囲内のこれらおよびその他数多くの代替的実施形態は、当業者には明らかであろう。
【図１】
2010503275.tif 000004
【図２】
2010503275.tif 000005
【図３】
2010503275.tif 000006
【図４】
2010503275.tif 000007
【図５】
2010503275.tif 000008
【図６】
2010503275.tif 000009
【図７】
2010503275.tif 000010
【図８】
2010503275.tif 000011
【手続補正書】
【提出日】平成21年10月19日(2009.10.19)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
通信システムにおいて複数の伝送要素から伝送するデータ・ブロックをタイムスロット中にスケジュールする方法であって、
前記伝送要素に対してそれぞれのチャネル容量を測定するステップと、
前記対応する伝送要素において伝送することができるデータ量に基づいて前記チャネル容量の１つまたは複数を調整するステップと、
前記１つまたは複数の調整したチャネル容量に基づいて、前記タイムスロットの所与の１つ中にスケジュールする前記伝送要素の１つまたは複数を選択するステップと
を含む方法。
【請求項２】
前記選択するステップが、前記それぞれの伝送要素の調整したチャネル容量のうちの最高の調整したチャネル容量を有する前記伝送要素の特定の１つを、前記所与のタイムスロット中にスケジュールするよう選択することを含む、請求項１に記載の方法。
【請求項３】
前記対応する伝送要素において伝送することができる前記データ量が、それぞれのキュー長によって指定される、請求項１に記載の方法。
【請求項４】
前記チャネル容量の所与の１つが、前記チャネル容量を、前記所与のチャネル容量および対応するキューに基づく大きさのうちの最小値をとることによって決定される等価チャネル容量に設定することによって調整される、請求項１に記載の方法。
【請求項５】
前記伝送要素の所与の１つが対応するチャネル容量より小さいキュー長を有する場合、その調整チャネル容量は、前記キュー長に等しく設定される、請求項１に記載の方法。
【請求項６】
前記伝送要素の所与の１つが対応するチャネル容量より大きいキュー長を有する場合、その調整チャネル容量は、前記チャネル容量およびエンキューされたパケットの整数の合計サイズのうちのより小さい方に等しく設定される、請求項１に記載の方法。
【請求項７】
実質的に同じ調整したチャネル容量を有することに基づいて、前記伝送要素の２つ以上が、前記所与のタイムスロット中にスケジュールするために選択され、前記選択された伝送要素の異なる要素に利用できるコードのセットの異なるサブセットを割り当てることにより、前記選択された伝送要素がすべて、前記所与のタイムスロット中にスケジュールされる、請求項１に記載の方法。
【請求項８】
通信システムにおいて複数の伝送要素から伝送するためのデータ・ブロックをタイムスロット中にスケジュールする装置であって、
前記伝送要素に連結されたスケジューラを備え、
前記スケジューラが、前記伝送要素についてそれぞれのチャネル容量を測定し、前記対応する伝送要素において伝送することができるデータ量に基づいて前記チャネル容量の１つまたは複数を調整し、前記１つまたは複数の調整したチャネル容量に基づいて前記タイムスロットの所与の１つ中にスケジュールする前記伝送要素の１つまたは複数を選択するように構成された、装置。
【請求項９】
通信システムにおいて複数の伝送要素から伝送するデータ・ブロックをタイムスロット中にスケジュールするように構成されたスケジューラを有する処理装置
を備え、
前記スケジューラが、前記伝送要素に連結され、
前記スケジューラが、前記伝送要素についてそれぞれのチャネル容量を測定し、前記対応する伝送要素において伝送することができるデータ量に基づいて前記チャネル容量の１つまたは複数を調整し、前記１つまたは複数の調整したチャネル容量に基づいて前記タイムスロットの所与の１つ中にスケジュールする前記伝送要素の１つまたは複数を選択するように構成された、集積回路。
【請求項１０】
複数の伝送要素および前記伝送要素に結合されたスケジューラを備える基地局と、
前記基地局と通信するように構成された複数のモバイル・ユーザの装置と
を含み、
前記基地局の前記スケジュールが、前記伝送要素から前記モバイル・ユーザの装置へ伝送するデータ・ブロックをタイムスロット中にスケジュールするように構成され、
前記基地局の前記スケジューラが、前記伝送要素についてそれぞれのチャネル容量を測定し、前記対応する伝送要素において伝送することができるデータ量に基づいて前記チャネル容量の１つまたは複数を調整し、前記１つまたは複数の調整したチャネル容量に基づいて前記タイムスロットの所与の１つ中にスケジュールする前記伝送要素の１つまたは複数を選択するように構成された、通信システム。
【国際調査報告】
2010503275.tif 000012
2010503275.tif 000013
2010503275.tif 000014