(57)【特許請求の範囲】
【請求項１】
データ受信リンク内でCPUおよびメモリを含むコンピューティング要素を割り振るための方法であって、
前記データ受信リンク内でベースバンド・データを受信するステップと、
前記ベースバンド・データを伝送ブロック・データに変換するためにコンピューティング要素のリソース・プールからコンピューティング要素を割り振るステップとを含み、
前記コンピューティング要素は、汎用プロセッサが割り振ることができるコンピューティング要素である、方法であって、
前記ベースバンド・データを伝送ブロック・データに変換するためにコンピューティング要素のリソース・プールからコンピューティング要素を割り振る前記ステップが、
前記ベースバンド・データをデータ・オブジェクトとして識別するステップと、
複数の段階の現段階において、
前記データ・オブジェクトに関連するワークロード・パラメータＰを取り出すステップであって、前記ワークロード・パラメータＰは、前記汎用プロセッサが前記データ・オブジェクトを処理するとき必要なコンピューティング要素の総数を説明する、前記ステップと、
前記データ・オブジェクトを次の段階のために使用されるデータ・オブジェクトに変換するために、コンピューティング要素の前記リソース・プールからコンピューティング要素の総数を割り振るステップとを含み、
前記データ・オブジェクトに関連するワークロード・パラメータＰを取り出す前記ステップが、
前記データ・オブジェクトの１基本処理単位を処理するために必要とされるコンピューティング要素の最小数Ｎ、および前記データ・オブジェクト内に含まれる前記基本処理単位の数Ｍに基づいて、前記ワークロード・パラメータＰ＝Ｎ＊Ｍを計算するステップを含む、方法。
【請求項２】
前記現段階が第１の段階であり、前記データ・オブジェクトが前記ベースバンド・データであり、前記ワークロード・パラメータＰ＝Ｎ＊Ｍを計算する前記ステップが、
前記ベースバンド・データに関連する単一セクタ単一アンテナ・モードにおけるシステム帯域幅に基づいて最小数Ｎを推定するステップと、
前記データ・オブジェクト内に含まれる前記基本処理単位の数
【数１】
0006415556.tif 000013
を、前記データ・オブジェクトに関連するセクタの数Ｓ、および各セクタ内のアンテナの数Ａｉに基づいて計算するステップとを含む、請求項１に記載の方法。
【請求項３】
前記現段階が第２の段階であり、前記データ・オブジェクトが周波数領域データであり、ワークロード・パラメータＰ＝Ｎ＊Ｍを計算する前記ステップが、
周波数領域信号のうちの単一のユーザの単一のアンテナに関連するリソース・ブロックによって必要とされるワークロードに基づいて最小数Ｎを推定するステップと、
前記周波数領域データに関連する各セクタ内のユーザ数Ｉ、各ユーザのアンテナ数Ａｉ、および割り振られたリソース・ブロックの数Ｒｉに基づいて、前記データ・オブジェクト内に含まれる基本処理単位の数
【数２】
0006415556.tif 000014
を計算するステップであって、Ｓは、前記データ・オブジェクトに関連するセクタの数である、前記ステップとを含む、請求項１に記載の方法。
【請求項４】
前記現段階が第３の段階であり、前記データ・オブジェクトがデータ・キャリア・シンボルおよびチャネル推定シンボルであり、前記ワークロード・パラメータＰ＝Ｎ＊Ｍを計算する前記ステップが、
単一のユーザの単一のリソース・ブロック内の単一のＯＦＤＭシンボル上の前記データ・キャリア・シンボルおよびチャネル推定シンボルのデータ量に基づいて最小数Ｎを推定するステップと、
周波数領域データに関連する各セクタ内のユーザ数Ｉｓ、割り振られたリソース・ブロックの数Ｒｉ、およびＯＦＤＭシンボルの数Ｆｉに基づいて、前記データ・オブジェクト内に含まれる基本処理単位の数
【数３】
0006415556.tif 000015
を計算するステップであって、Ｓは、前記データ・オブジェクトに関連するセクタの数である、前記ステップとを含む、請求項１に記載の方法。
【請求項５】
前記現段階が第４の段階であり、前記データ・オブジェクトが元のコード・ストリームの推定された値であり、前記ワークロード・パラメータＰ＝Ｎ＊Ｍを計算する前記ステップが、
元のコード・ストリームの推定された値に関連するコード・ブロックの最大データ量に基づいて最小数Ｎを推定するステップと、
前記元のコード・ストリームの前記推定された値に関連する各セクタ内のユーザ数Ｉｓ、および各ユーザのコード・ブロックの数Ｃｉに基づいて、前記データ・オブジェクト内に含まれる基本処理単位の数
【数４】
0006415556.tif 000016
を計算するステップであって、Ｓは、前記データ・オブジェクトに関連するセクタの数である、前記ステップとを含む、請求項１に記載の方法。
【請求項６】
前記現段階が第５の段階であり、前記データ・オブジェクトが伝送コード・ブロックであり、前記ワークロード・パラメータＰ＝Ｎ＊Ｍを計算する前記ステップが、
前記伝送コード・ブロックに関連するコード・ブロックの最大データ量に基づいて最小数Ｎを推定するステップと、
元のコード・ストリームの推定された値に関連する各セクタ内のユーザ数Ｉｓ、および各ユーザのコード・ブロックの数Ｃｉに基づいて、前記データ・オブジェクト内に含まれる基本処理単位の数
【数５】
0006415556.tif 000017
を計算するステップであって、Ｓは、前記データ・オブジェクトに関連するセクタの数である、前記ステップとを含む、請求項１に記載の方法。
【請求項７】
前記データ・オブジェクトを次の段階のために使用されるデータ・オブジェクトに変換するために、コンピューティング要素の前記リソース・プールからコンピューティング要素の総数を割り振る前記ステップが、
コンピューティング要素の前記リソース・プール内のコンピューティング要素の総数が前記ワークロード・パラメータＰ以上であることに応答して、前記データ・オブジェクトを次の段階のために使用されるデータ・オブジェクトに変換するために、コンピューティング要素の前記リソース・プールからコンピューティング要素を割り振るステップを含む、請求項１に記載の方法。
【請求項８】
コンピューティング要素の前記リソース・プール内のコンピューティング要素の総数が前記ワークロード・パラメータＰ以上であることに応答して、前記データ・オブジェクトを次の段階のために使用されるデータ・オブジェクトに変換するために、コンピューティング要素の前記リソース・プールからコンピューティング要素を割り振る前記ステップが、
コンピューティング要素の前記リソース・プール内の単一のサーバからコンピューティング要素を割り振るステップ、および
コンピューティング要素の前記リソース・プール内の複数のサーバからコンピューティング要素を割り振るステップのうちの少なくとも１つを含む、請求項７に記載の方法。
【請求項９】
データ受信リンク内でコンピューティング要素を割り振るための装置であって、
前記データ受信リンク内でベースバンド・データを受信するように構成された受信モジュールと、
前記ベースバンド・データを伝送ブロック・データに変換するためにコンピューティング要素のリソース・プールからコンピューティング要素を割り振るように構成された割振りモジュールとを備え、
前記コンピューティング要素は、汎用プロセッサが割り振ることができるコンピューティング要素である、装置であって、
前記割振りモジュールが、
前記ベースバンド・データをデータ・オブジェクトとして識別するように構成された識別モジュールと、
複数の段階の現段階において、前記データ・オブジェクトに関連するワークロード・パラメータＰを取り出すように構成された取出しモジュールであって、前記ワークロード・パラメータＰは、前記汎用プロセッサが前記データ・オブジェクトを処理するとき必要なコンピューティング要素の総数を説明する、前記取出しモジュールと、
前記データ・オブジェクトを次の段階のために使用されるデータ・オブジェクトに変換するために、コンピューティング要素の前記リソース・プールからコンピューティング要素の総数を割り振るように構成されたリソース割振りモジュールとを備え、
前記取出しモジュールが、
前記データ・オブジェクトの１基本処理単位を処理するために必要とされるコンピューティング要素の最小数Ｎ、および前記データ・オブジェクト内に含まれる前記基本処理単位の数Ｍに基づいて、前記ワークロード・パラメータＰ＝Ｎ＊Ｍを計算するように構成された計算モジュールを備える、装置。
【請求項１０】
前記現段階が第１の段階であり、前記データ・オブジェクトが前記ベースバンド・データであり、前記計算モジュールが、
前記ベースバンド・データに関連する単一セクタ単一アンテナ・モードにおけるシステム帯域幅に基づいて最小数Ｎを推定するように構成された第１の推定モジュールと、
前記ベースバンド・データに関連するセクタの数Ｓ、および各セクタ内のアンテナの数Ａｉに基づいて、前記データ・オブジェクト内に含まれる前記基本処理単位の数
【数６】
0006415556.tif 000018
を計算するように構成された第１の計算モジュールとを備える、請求項９に記載の装置。
【請求項１１】
前記現段階が第２の段階であり、前記データ・オブジェクトが周波数領域データであり、前記計算モジュールが、
周波数領域信号のうちの単一のユーザの単一のアンテナに関連するリソース・ブロックによって必要とされるワークロードに基づいて最小数Ｎを推定するように構成された第２の推定モジュールと、
前記周波数領域データに関連する各セクタ内のユーザ数Ｉ、各ユーザのアンテナ数Ａｉ、および割り振られたリソース・ブロックの数Ｒｉに基づいて、前記データ・オブジェクト内に含まれる基本処理単位の数
【数７】
0006415556.tif 000019
を計算するように構成された第２の計算モジュールであって、Ｓは、前記データ・オブジェクトに関連するセクタの数である、前記第２の計算モジュールとを備える、請求項９に記載の装置。
【請求項１２】
前記現段階が第３の段階であり、前記データ・オブジェクトがデータ・キャリア・シンボルおよびチャネル推定シンボルであり、前記計算モジュールが、
単一のユーザの単一のリソース・ブロック内の単一のＯＦＤＭシンボル上の前記データ・キャリア・シンボルおよびチャネル推定シンボルのデータ量に基づいて最小数Ｎを推定するように構成された第３の推定モジュールと、
周波数領域データに関連する各セクタ内のユーザ数Ｉｓ、割り振られたリソース・ブロックの数Ｒｉ、およびＯＦＤＭシンボルの数Ｆｉに基づいて、前記データ・オブジェクト内に含まれる基本処理単位の数
【数８】
0006415556.tif 000020
を計算するように構成された第３の計算モジュールであって、Ｓは、前記データ・オブジェクトに関連するセクタの数である、前記第３の計算モジュールとを備える、請求項９に記載の装置。
【請求項１３】
前記現段階が第４の段階であり、前記データ・オブジェクトが元のコード・ストリームの推定された値であり、前記計算モジュールが、
元のコード・ストリームの推定された値に関連するコード・ブロックの最大データ量に基づいて最小数Ｎを推定するように構成された第４の推定モジュールと、
前記元のコード・ストリームの前記推定された値に関連する各セクタ内のユーザ数Ｉｓ、および各ユーザのコード・ブロックの数Ｃｉに基づいて、前記データ・オブジェクト内に含まれる基本処理単位の数
【数９】
0006415556.tif 000021
を計算するように構成された第４の計算モジュールであって、Ｓは、前記データ・オブジェクトに関連するセクタの数である、前記第４の計算モジュールとを備える、請求項９に記載の装置。
【請求項１４】
前記現段階が第５の段階であり、前記データ・オブジェクトが伝送コード・ブロックであり、前記計算モジュールが、
前記伝送コード・ブロックに関連するコード・ブロックの最大データ量に基づいて最小数Ｎを推定するように構成された第５の推定モジュールと、
元のコード・ストリームの推定された値に関連する各セクタ内のユーザ数Ｉｓ、および各ユーザのコード・ブロックの数Ｃｉに基づいて、前記データ・オブジェクト内に含まれる基本処理単位の数
【数１０】
0006415556.tif 000022
を計算するように構成された第５の計算モジュールであって、Ｓは、前記データ・オブジェクトに関連するセクタの数である、前記第５の計算モジュールとを備える、請求項９に記載の装置。
【請求項１５】
前記リソース割振りモジュールが、
コンピューティング要素の前記リソース・プール内のコンピューティング要素の総数が前記ワークロード・パラメータＰ以上であることに応答して、前記データ・オブジェクトを次の段階のために使用されるデータ・オブジェクトに変換するために、コンピューティング要素の前記リソース・プール内のコンピューティング要素を割り振るように構成されたコンピューティング要素割振りモジュールを備える、請求項９に記載の装置。
【請求項１６】
前記コンピューティング要素割振りモジュールが、
コンピューティング要素の前記リソース・プール内の単一のサーバからコンピューティング要素を割り振るように構成された第１の割振りモジュール、および
コンピューティング要素の前記リソース・プール内の複数のサーバからコンピューティング要素を割り振るように構成された第２の割振りモジュールのうちの少なくとも１つを備える、請求項１５に記載の装置。
【請求項１７】
コンピュータ・プログラムであって、請求項１ないし８のいずれか１項に記載の方法の各ステップを、コンピュータに実行させるためのコンピュータ・プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の様々な実施形態は、データ処理に関し、より詳細には、データ受信リンク内でコンピューティング要素を割り振るための方法および装置に関する。
【背景技術】
【０００２】
ワイヤレス通信技術の開発に伴って、通信システムにおけるハードウェアとソフトウェアが共に相当な発展を遂げた。その結果、ワイヤレス通信ネットワークは、ますます高い伝送帯域幅を提供することができ、ワイヤレス通信ネットワーク内の伝送遅延は、大きく低減される。技術の進歩は、多数のユーザに多くの利便性をもたらし、移動端末内の様々なアプリケーションをサポートすることができる。移動端末に関しては、そのデータ処理能力がより強力に成長するにつれて、移動端末にインストールされた様々なアプリケーション・プログラムによるデータのリアルタイム伝送に対する要件もまた、より高まる傾向がある。その一方で、移動端末ユーザの数は、絶えず増大している。したがって、ワイヤレス・ネットワークのデータ処理能力に対して、高い要件が課される。
【０００３】
既存のワイヤレス通信ネットワーク内のデバイス（たとえば、受信機など）は、通常、たとえば専用のチップ、アダプタ、アクセラレータなどを含む可能性がある専用のハードウェア・デバイスに基づいて実装され、さらに、専用のデジタル信号処理（ＤＳＰ）回路、またはフィールド・プログラマブル・ゲートアレイ（ＦＰＧＡ）、あるいはその両方などを含むことが可能である。受信機は、ソフトウェア処理モジュールをさらに含むことができるが、これらのソフトウェア処理モジュールは、専用のハードウェア・デバイスに基づいて開発されるので、汎用プロセッサによってサポートされる並列データ処理アルゴリズムを使用することができない。
【０００４】
汎用コンピュータ・ハードウェア処理能力の増大に伴って、マルチコア・プロセッサおよびコンピュータ・クラスタなどの技法が並列データ処理を物理面で強くサポートし、汎用プロセッサに基づく並列データ処理能力は、大幅に改善されたことを理解されたい。ワイヤレス通信分野に関しては、通信デバイスにおける専用のハードウェア・アーキテクチャがデータ処理能力の改善に大きく貢献したが、それらのアーキテクチャは、汎用並列データ処理アルゴリズムの応用をある程度制限する。現状と開発傾向に鑑みて、汎用データ・プロセッサ、さらには汎用並列データ処理アルゴリズムをワイヤレス通信デバイスにいかに導入するかが新しい研究領域になる。この点で、いかにこれらのコンピューティング要素をスケジューリングし、データ処理効率をさらに向上させるかが焦点となる。
【発明の概要】
【発明が解決しようとする課題】
【０００５】
したがって、コンピューティング要素を割り振るより効率的な技術的解決策を開発することが望ましく、この技術的解決策はワイヤレス通信ネットワークにおける既存のハードウェアと組み合わせ、汎用プロセッサの並列データ処理能力を使用することによって、既存の専用のハードウェア回路、ソフトウェア・モジュール、およびハードウェアとソフトウェアの組合せの補助、または置換え、あるいはその両方を行い得ることが望ましい。
【課題を解決するための手段】
【０００６】
本発明の一実施形態では、データ受信リンク内でコンピューティング要素を割り振るための方法であって、データ受信リンク内でベースバンド・データを受信するステップと、ベースバンド・データを伝送ブロック・データに変換するためにコンピューティング要素のリソース・プールからコンピューティング要素を割り振るステップとを含み、汎用プロセッサがベースバンド・データを伝送ブロック・データに変換し、コンピューティング要素が、汎用プロセッサによって呼び出すことができるコンピューティング要素である、方法が提供される。
【０００７】
本発明の一実施形態では、ベースバンド・データを伝送ブロック・データに変換するためにコンピューティング要素のリソース・プールからコンピューティング要素を割り振るステップが、ベースバンド・データをデータ・オブジェクトとして識別するステップと、複数の段階の現段階において、データ・オブジェクトに関連するワークロード・パラメータＰを取り出すステップであって、ワークロード・パラメータＰは、汎用プロセッサがデータ・オブジェクトを処理するとき必要なコンピューティング要素の総数を説明する、ステップと、データ・オブジェクトを次の段階のために使用されるデータ・オブジェクトに変換するために、コンピューティング要素のリソース・プールからコンピューティング要素の総数を割り振るステップとを含む。
【０００８】
本発明の一実施形態では、データ・オブジェクトに関連するワークロード・パラメータＰを取り出すステップが、データ・オブジェクトの１基本処理単位を処理するために必要とされるコンピューティング要素の最小数Ｎ、およびデータ・オブジェクト内に含まれる基本処理単位の数Ｍに基づいて、ワークロード・パラメータＰ＝Ｎ＊Ｍを計算するステップを含む。
【０００９】
本発明の一実施形態では、データ受信リンク内でコンピューティング要素を割り振るための装置であって、データ受信リンク内でベースバンド・データを受信するように構成された受信モジュールと、ベースバンド・データを伝送ブロック・データに変換するためにコンピューティング要素のリソース・プールからコンピューティング要素を割り振るように構成された割振りモジュールとを備え、汎用プロセッサがベースバンド・データを伝送ブロック・データに変換し、コンピューティング要素が、汎用プロセッサによって呼び出すことができるコンピューティング要素である、装置が提供される。
【００１０】
本発明の一実施形態では、割振りモジュールが、ベースバンド・データをデータ・オブジェクトとして識別するように構成された識別モジュールと、複数の段階の現段階において、データ・オブジェクトに関連するワークロード・パラメータＰを取り出すように構成された取出しモジュールであって、ワークロード・パラメータＰは、汎用プロセッサがデータ・オブジェクトを処理するとき必要なコンピューティング要素の総数を説明する、取出しモジュールと、データ・オブジェクトを次の段階のために使用されるデータ・オブジェクトに変換するために、コンピューティング要素のリソース・プールからコンピューティング要素の総数を割り振るように構成されたリソース割振りモジュールとを備える。
【００１１】
本発明の一実施形態では、取出しモジュールが、データ・オブジェクトの１基本処理単位を処理するために必要とされるコンピューティング要素の最小数Ｎ、およびデータ・オブジェクト内に含まれる基本処理単位の数Ｍに基づいて、ワークロード・パラメータＰ＝Ｎ＊Ｍを計算するように構成された計算モジュールを備える。
【００１２】
本発明の実施形態によって説明される技術的解決策により、汎用プロセッサに基づいて「仮想受信機」を実装するための方法および装置が提案される。この技術的解決策は、専用のハードウェア・アーキテクチャに完全に依拠するのではなく、既存の汎用データ・プロセッサの並列データ処理能力を使用し（たとえば、マルチコア・プロセッサ内の複数のコアを使用して）、可能な限り並列で、データ伝送におけるデータを処理する。したがって、一方では、特定用途向けのＤＳＰおよびＦＰＧＡなどの回路を設計および開発するための労力および材料資源の大きなオーバーヘッドを削減、さらには解消することができ、他方では、汎用プロセッサが様々なコンピューティング・リソースを呼び出し、データ受信リンク内のデータを並列で処理することができ、さらにデータ処理効率を改善することができる。
【００１３】
添付の図面における本開示のいくつかの実施形態のより詳細な説明を通じて、本開示の上記、および他の目的、特徴、および利点はより明らかになり、同じ符号は、全体的に、本開示の実施形態における同じ構成要素を指す。
【図面の簡単な説明】
【００１４】
【図１】本発明の実施形態を実装するために適用可能である例示的なコンピュータ・システムの概略的なブロック図である。
【図２】１つの解決策によるアップリンク・データ通信における受信機の概略的なアーキテクチャ図である。
【図３】本発明の一実施形態によるアップリンク・データ通信における受信機の概略的なアーキテクチャ図である。
【図４】本発明の一実施形態によるデータ受信リンク内でコンピューティング要素を割り振るための方法の概略的な流れ図である。
【図５】本発明の一実施形態によるデータ受信リンク内でコンピューティング要素を割り振るための方法の複数の段階の概略的な流れ図である。
【図６】本発明の一実施形態によるデータ受信リンク内でデータを処理する複数の段階の概略的な流れ図である。
【図７】本発明の一実施形態によるデータ受信リンク内でコンピューティング要素を割り振るための装置の概略的なブロック図である。
【発明を実施するための形態】
【００１５】
いくつかの好ましい実施形態について、本開示の好ましい実施形態が示されている添付の図面を参照してより詳細に述べる。しかし、本開示は、様々な形で実装することができ、したがって、本明細書に開示されている実施形態に限定されると解釈するべきでない。それどころか、これらの実施形態は、本開示の徹底的かつ完全な理解をもたらし、本開示の範囲を当業者に完全に伝えるために提供されている。
【００１６】
当業者には理解されるように、本発明の態様は、システム、方法、またはコンピュータ・プログラム製品として実施することができる。したがって、本発明の態様は、完全にハードウェアの実施形態、完全にソフトウェアの実施形態（ファームウェア、常駐ソフトウェア、マイクロコードなどを含む）、またはソフトウェアとハードウェアの態様を組み合わせた実施形態の形態をとることができ、これらはすべて、本明細書では、全体的に「回路」「モジュール」または「システム」と呼ばれることがある。さらに、いくつかの実施形態では、本発明の態様は、コンピュータ可読プログラム・コードが含まれている１つまたは複数のコンピュータ可読媒体内に含まれるコンピュータ・プログラム製品の形態をとることができる。
【００１７】
１つまたは複数のコンピュータ可読媒体の任意の組合せが使用されてもよい。コンピュータ可読媒体は、コンピュータ可読信号媒体であってもコンピュータ可読記憶媒体であってもよい。コンピュータ可読記憶媒体は、たとえば、それだけには限らないが、電子、磁気、光、電磁気、赤外線、もしくは半導体のシステム、装置、もしくはデバイス、または前述のものの任意の好適な組合せであってよい。コンピュータ可読記憶媒体のより具体的な例（非網羅的なリスト）は、１本もしくは複数のワイヤを有する電気接続、可搬コンピュータ・ディスケット、ハード・ディスク、ランダム・アクセス・メモリ（ＲＡＭ）、読出し専用メモリ（ＲＯＭ）、消去可能なプログラマブル読出し専用メモリ（ＥＰＲＯＭもしくはフラッシュ・メモリ）、光ファイバ、可搬コンパクト・ディスク読出し専用メモリ（ＣＤ−ＲＯＭ）、光記憶デバイス、磁気記憶デバイス、または前述のものの任意の好適な組合せを含むことになる。本書の文脈では、コンピュータ可読記憶媒体は、命令実行システム、装置、もしくはデバイスによって、またはそれらと共に使用するために、プログラムを収容または記憶することができる任意の有形の媒体であってよい。
【００１８】
コンピュータ可読信号媒体は、コンピュータ可読プログラム・コードが、たとえばベースバンド内に、または搬送波の一部として含まれる伝搬データ信号を含むことができる。そのような伝搬データ信号は、それだけには限らないが、電磁信号、光信号、またはそれらの任意の好適な組合せを含めて、様々な形態のいずれかをとることができる。コンピュータ可読信号媒体は、コンピュータ可読記憶媒体でなく、命令実行システム、装置、もしくはデバイスによって、またはそれらと共に使用するために、プログラムを通信、伝搬、または移送することができる任意のコンピュータ可読媒体であってよい。
【００１９】
コンピュータ可読媒体上に含まれるプログラム・コードは、それだけには限らないが、ワイヤレス、有線、光ファイバ・ケーブル、ＲＦなど、または前述のものの任意の好適な組合せを含めて、任意の適切な媒体を使用して伝送され得る。
【００２０】
本発明の態様のために演算を実施するためのコンピュータ・プログラム・コードは、Ｊａｖａ（Ｒ）、Ｓｍａｌｌｔａｌｋ（Ｒ）、Ｃ＋＋などオブジェクト指向プログラミング言語、および「Ｃ」プログラミング言語または同様のプログラミング言語など従来の手続き型プログラミング言語を含めて、１つまたは複数のプログラミング言語の任意の組合せで書かれてもよい。プログラム・コードは、完全にユーザのコンピュータ上で、部分的にユーザのコンピュータ上で、スタンドアロンのソフトウェア・パッケージとして、部分的にユーザのコンピュータ上でかつ部分的に遠隔コンピュータ上で、または完全に遠隔コンピュータもしくはサーバ上で実行することができる。後者のシナリオでは、遠隔コンピュータは、ローカル・エリア・ネットワーク（ＬＡＮ）またはワイド・エリア・ネットワーク（ＷＡＮ）を含めて任意のタイプのネットワークを通じてユーザのコンピュータに接続されてもよく、外部コンピュータに（たとえば、インターネット・サービス・プロバイダを使用してインターネットを通じて）接続がなされてもよい。
【００２１】
以下、本発明の態様について、本発明の実施形態による方法、装置（システム）、およびコンピュータ・プログラム製品の流れ図、またはブロック図、あるいはその両方を参照して述べられている。流れ図、またはブロック図、あるいはその両方の各ブロック、および流れ図、またはブロック図、あるいはその両方のブロックの組合せは、コンピュータ・プログラム命令によって実施することができることを理解されたい。これらのコンピュータ・プログラム命令は、コンピュータまたは他のプログラム可能なデータ処理装置のプロセッサを介して実行する命令が、流れ図、またはブロック図、あるいはその両方の１つまたは複数のブロックに指定された機能／行為を実装するための手段を生み出すように、汎用コンピュータ、専用コンピュータ、または他のプログラム可能なデータ処理装置のプロセッサに提供され、マシンを作り出すことができる。
【００２２】
また、これらのコンピュータ・プログラム命令は、コンピュータ可読媒体内に記憶された命令が、流れ図、またはブロック図、あるいはその両方の１つまたは複数のブロックに指定された機能／行為を実装する命令手段を含む製造品を作り出すように、コンピュータ可読媒体内に記憶され、コンピュータ、他のプログラム可能なデータ処理装置、または他のデバイスに特定の方法で機能するように指示することができる。
【００２３】
また、コンピュータ・プログラム命令は、コンピュータまたは他のプログラム可能な装置上で実行する命令が、流れ図、またはブロック図、あるいはその両方の１つまたは複数のブロックに指定された機能／行為を実装するためのプロセスを提供するように、コンピュータによって実施されるプロセスを生成するべく、コンピュータ、他のプログラム可能なデータ処理装置、または他のデバイス上にロードされ、コンピュータ、他のプログラム可能なデータ処理装置、または他のデバイス上で一連の動作ステップを実施させることができる。
【００２４】
次に図１を参照すると、本発明の実施形態を実装するために適用可能である例示的なコンピュータ・システム／サーバ１２のブロック図が示されている。図１に示されているコンピュータ・システム／サーバ１２は例示的なものにすぎず、本明細書に記載の本発明の実施形態の使用または機能の範囲について何ら限定を示唆しないものとする。
【００２５】
図１に示されているように、コンピュータ・システム／サーバ１２は、汎用コンピューティング・デバイスの形態で示されている。コンピュータ・システム／サーバ１２のコンポーネントは、それだけには限らないが、１つまたは複数のプロセッサまたは処理ユニット１６と、システム・メモリ２８と、システム・メモリ２８および処理ユニット１６を含む様々なシステム・コンポーネントを結合するバス１８とを含むことができる。
【００２６】
バス１８は、メモリ・バスまたはメモリ・コントローラ、周辺バス、アクセラレーテッド・グラフィックス・ポート、および様々なバス・アーキテクチャのいずれかを使用するプロセッサまたはローカル・バスを含めて、いくつかのタイプのバス構造の１つまたは複数を表す。限定ではなく例として、そのようなアーキテクチャは、ＩＳＡ（Industry Standard Architecture）バス、ＭＣＡ（MicroChannel Architecture）バス、ＥＩＳＡ（Enhanced ISA）バス、ＶＥＳＡ（Video Electronics Standards Association）ローカル・バス、およびＰＣＩ（Peripheral Component Interconnect）バスを含む。
【００２７】
コンピュータ・システム／サーバ１２は、一般に、様々なコンピュータ・システム可読媒体を含む。そのような媒体は、コンピュータ・システム／サーバ１２によってアクセス可能な任意の使用可能な媒体であってよく、揮発性媒体と不揮発性媒体、取外し式媒体と非取外し式媒体を共に含む。
【００２８】
システム・メモリ２８は、ランダム・アクセス・メモリ（ＲＡＭ）３０またはキャッシュ・メモリ３２、あるいはその両方など、揮発性メモリの形態でコンピュータ・システム可読媒体を含むことができる。コンピュータ・システム／サーバ１２は、他の取外し式／非取外し式、揮発性／不揮発性のコンピュータ・システム記憶媒体をさらに含むことができる。例にすぎないが、非取外し式不揮発性磁気媒体（図１には示されておらず、一般に「ハード・ドライブ」と呼ばれる）から読み出し、そこへ書き込むために、記憶システム３４を用意することができる。図１には示されていないが、取外し式不揮発性磁気ディスク（たとえば、「フロッピ・ディスク」）から読み出し、そこへ書き込むための磁気ディスク・ドライブ、およびＣＤ−ＲＯＭ、ＤＶＤ−ＲＯＭ、または他の光学式媒体など、取外し式不揮発性光ディスクから読み出し、そこへ書き込むための光ディスク・ドライブを用意することができる。そのような場合、それぞれを１つまたは複数のデータ媒体インターフェースによってバス１８に接続することができる。下記でさらに示され述べられるように、メモリ２８は、本発明の実施形態の機能を実施するように構成されるプログラム・モジュールのセット（たとえば、少なくとも１つ）を有する少なくとも１つのプログラム製品を含むことができる。
【００２９】
プログラム・モジュール４２のセット（たとえば、少なくとも１つ）を有するプログラム／ユーティリティ４０、ならびにオペレーティング・システム、１つまたは複数のアプリケーション・プログラム、他のプログラム・モジュール、およびプログラム・データが、限定ではなく例として、メモリ２８内に記憶されてもよい。オペレーティング・システム、１つまたは複数のアプリケーション・プログラム、他のプログラム・モジュール、およびプログラム・データのそれぞれ、またはそれらの何らかの組合せが、ネットワーキング環境の実装を含むことができる。プログラム・モジュール４２は、一般に、本明細書に記載の本発明の実施形態の機能または方法、あるいはその両方を実施する。
【００３０】
また、コンピュータ・システム／サーバ１２は、キーボード、ポインティング・デバイス、ディスプレイ２４など１つもしくは複数の外部デバイス１４、ユーザがコンピュータ・システム／サーバ１２とインタラクションすることを可能にする１つもしくは複数のデバイス、またはコンピュータ・システム／サーバ１２が１つもしくは複数の他のコンピューティング・デバイスと通信することを可能にする任意のデバイス（たとえば、ネットワーク・カード、モデムなど）、あるいはそれらの組合せと通信することができる。そのような通信は、入力／出力（Ｉ／Ｏ）インターフェース２２を介して行われ得る。さらに、コンピュータ・システム／サーバ１２は、ネットワーク・アダプタ２０を介して、ローカル・エリア・ネットワーク（ＬＡＮ）、一般的なワイド・エリア・ネットワーク（ＷＡＮ）、またはパブリック・ネットワーク（たとえば、インターネット）、あるいはそれらの組合せなど、１つまたは複数のネットワークと通信することができる。示されているように、ネットワーク・アダプタ２０は、バス１８を介してコンピュータ・システム／サーバ１２の他のコンポーネントと通信する。示されていないが、他のハードウェア・コンポーネントまたはソフトウェア・コンポーネントあるいはその両方をコンピュータ・システム／サーバ１２と共に使用することができることを理解されたい。例は、それだけには限らないが、マイクロコード、デバイス・ドライバ、冗長処理ユニット、外部ディスク・ドライブ・アレイ、ＲＡＩＤシステム、テープ・ドライブ、およびデータ・アーカイブ記憶システムなどを含む。
【００３１】
以下、本発明に述べられている方法および装置をいかに実装するかについて、アップリンク・データ伝送に必要とされる受信機を単に例にとることによって概略的に示す。図２は、１つの解決策によるアップリンク・データ通信における受信機２００のアーキテクチャ図を概略的に示す。従来の受信機のすべてのモジュールが図２における受信機に示されているのではなく、受信機の典型的な構造が概略的に示されていることに留意されたい。受信機２００は、たとえばラック、シャシ、電源などを含むことができる専用のハードウェア・プラットフォーム２１０と、専用のハードウェア・アクセラレータ２２０と、専用のハードウェア・プラットフォーム２１０および専用のハードウェア・アクセラレータ２２０に基づいて実装される専用のソフトウェア・モジュール２３０とを備えることができ、または他のモジュール２４０をさらに備えることができる。受信機２００は、高いデータ・スループット能力と「リアルタイム処理」能力を有するべきである。たとえば、受信信号を処理するための時間オーバーヘッドは、１ｍｓ程度の大きさであるべきである。
【００３２】
図３は、本発明の一実施形態によるデータ通信における受信機のアーキテクチャ図３００を概略的に示す。この実施形態では、汎用プロセッサに基づいて並列データ処理が実装され、データ受信リンク内でコンピューティング要素を割り振るための技術的解決策が提供される。図３に示されているように、アンテナ・システムと通信するためのＩ／Ｏインターフェース３１０と、Ｉ／Ｏデータに関連する、またはコンピュテーション・センシティブ（computation-sensitive）である、あるいはその両方であるデータを処理するためのハードウェア・アクセラレータ３２０と、通常のコンピュータ内のマルチコアＣＰＵのように、ＰＣＩＥインターフェースを介して伝送されるデータを処理するために使用することができる汎用プロセッサ３３０とが含まれる。この実施形態では、Ｉ／Ｏインターフェース３１０は、たとえばアンテナに対応するベースバンド・データ（矢印Ａによって示されている）を受信し、他のデータ処理装置が後で処理するために、伝送ブロック・データ（矢印Ｂによって示されている）を出力することができる。
【００３３】
既存の基地局のハードウェアでは、コンピューティング要素は、特定の処理モジュールに関して開発された専用のハードウェアであり得る。したがって、これらの専用のハードウェアは、受信リンク内の同一の処理モジュールの間で再使用することができるにすぎず、あるハードウェアＡのコンピューティング要素が十分であり、かつ他のハードウェアＢのコンピューティング要素が不足している場合でさえ、ハードウェアＢは、ハードウェアＡのコンピューティング要素を呼び出すことができない。すなわち、既存の基地局では、コンピューティング要素は、特定のハードウェア・モジュールのために働くにすぎず、様々なモジュールの間で共用することができない。したがって、ＤＳＰとＦＰＧＡを組み合わせる既存の基地局は、様々なデータ処理段階でのコンピューティング要素に対する需要に従ってコンピューティング要素を適応的に割り振ることができない。
【００３４】
従来技術における専用のハードウェアに基づく（または、ハードウェア・モジュールとソフトウェア・モジュールを組み合わせる）技術的解決策とは異なり、本発明の様々な実施形態は、汎用処理プラットフォームに基づいて仮想基地局を実装する。基礎となるコンピューティング要素は、汎用プロセッサによって呼び出すことができるコンピューティング要素（たとえば、様々なレベルのメモリ、ＣＰＵ内のコアなどを含むことができる）であり、これらのコンピューティング要素は、コンピューティング要素のリソース・プール内で均一に管理およびスケジューリングされ、さらに、コンピューティング要素のリソース・プール内のコンピューティング要素は、本発明による方法の様々なステップを実装する処理モジュールの間で共用することができる。
【００３５】
図３に示されている構造に基づいて、汎用プロセッサは、データを処理するためにコンピューティング要素のリソース・プール内のコンピューティング要素（たとえば、ＣＰＵおよびメモリなど）を呼び出す。具体的には、本発明の一実施形態では、データ受信リンク内でコンピューティング要素を割り振るための方法であって、データ受信リンク内でベースバンド・データを受信するステップと、ベースバンド・データを伝送ブロック・データに変換するためにコンピューティング要素のリソース・プールからコンピューティング要素を割り振るステップとを含み、汎用プロセッサがベースバンド・データを伝送ブロック・データに変換し、コンピューティング要素が、汎用プロセッサによって呼び出すことができるコンピューティング要素である、方法が提供され得る。
【００３６】
図４は、本発明の一実施形態によるデータ受信リンク内でコンピューティング要素を割り振るための方法の流れ図４００を概略的に示す。最初に、ステップＳ４０２で、データ受信リンク内のベースバンド・データが受信される。この実施形態では、図３に示されているＩ／Ｏインターフェース３１０を、実装のために使用することができる。このステップでは、複数のアンテナからのデータは無線周波数信号であってもよく、これらの信号は、遠隔無線ヘッド（ＲＲＨ）およびＲＲＨアダプタを通じてベースバンド・データに変換される。
【００３７】
ステップＳ４０４では、コンピューティング要素のリソース・プール内のコンピューティング要素は、ベースバンド・データを伝送ブロック・データに変換するために割り振られ、コンピューティング要素は、汎用プロセッサによって呼び出すことができるコンピューティング要素である。
【００３８】
この実施形態では、図４に示されている方法は、汎用プロセッサによって実施することができる。汎用プロセッサは、たとえば中央処理装置（ＣＰＵ）を含むことができ、ＣＰＵは、複数の処理ユニットを備えることができる。ＣＰＵの例は、たとえば、ダブルコア、４コア、または８コアＣＰＵである。例示のためにすぎないが、４つのプロセッサ・コアを有する汎用プロセッサが使用されるとき、周波数領域信号を、４つのプロセッサ・コアによって並列で処理することができる。
【００３９】
マルチコアＣＰＵを備えるデバイスが汎用プロセッサの例示的な実施形態として使用されるが、当業者なら、具体的な実装環境に基づいて他のコンピュータ・デバイスが選択されてもよいことを理解するべきであることに留意されたい。たとえば、物理的なマシンまたは仮想マシン、あるいはその両方が汎用プロセッサとして選択されてもよく、コンピュータ・クラスタなどコンピュータ・デバイスが、並列処理が可能であり、複数の機能モジュールの間で共用することができるコンピューティング要素を有する限り、そのコンピュータ・デバイスが使用されてもよい。
【００４０】
本発明の一実施形態では、ベースバンド・データを伝送ブロック・データに変換するプロセスは、複数の段階に分割されてもよい。たとえば、これらの段階は、下記のような変換プロセス、すなわちベースバンド・データ→周波数領域データ→受信データ・シンボル、チャネル推定シンボル→元のコード・ストリームの推定された値→伝送コード・ブロック→伝送ブロック・データを含むことができる。さらに、本発明の様々な実施形態はコンピューティング要素のリソース・プール内の共用可能なコンピューティング要素を呼び出すために汎用プロセッサを使用するので、データ処理を複数の段階に分割した後、各段階で必要とされるコンピューティング要素の数をいかに決定するかが、データ受信リンク内のデータを処理するとき重要な要素になる。
【００４１】
本発明の一実施形態では、ワークロード・パラメータＰの概念が導入され、このパラメータは、汎用プロセッサがデータ・オブジェクトを処理するとき各段階で必要とされるコンピューティング要素の総数を説明する。各段階のワークロードは異なるので、必要とされるコンピューティング要素の総数もまた異なる。各段階で必要とされるコンピューティング要素の総数が決定されたとき、コンピューティング・リソースを各段階に関して独立にスケジューリングすることができる。
【００４２】
具体的には、本発明の一実施形態では、ベースバンド・データを伝送ブロック・データに変換するためにコンピューティング要素のリソース・プールからコンピューティング要素を割り振るステップが、ベースバンド・データをデータ・オブジェクトとして識別するステップと、複数の段階の現段階において、データ・オブジェクトに関連するワークロード・パラメータＰを取り出すステップであって、ワークロード・パラメータＰは、汎用プロセッサがデータ・オブジェクトを処理するとき必要なコンピューティング要素の総数を説明する、ステップと、データ・オブジェクトを次の段階のために使用されるデータ・オブジェクトに変換するために、コンピューティング要素のリソース・プール内のコンピューティング要素の総数を割り振るステップとを含む。
【００４３】
次に図５を参照すると、各段階における具体的な動作に対する説明が提供されている。図５は、本発明の一実施形態によるデータ受信リンク内でコンピューティング要素を割り振るための方法の複数の段階の流れ図５００を概略的に示し、ステップＳ５０４からＳ５１０は、図４に示されているステップＳ４０４を洗練して表すものである。
【００４４】
ステップＳ５０２における受信動作は、ステップＳ４０２における動作と同様であり、したがって、ここでは詳述しない。ステップＳ５０４では、ベースバンド・データがデータ・オブジェクトとして識別される。本発明の様々な実施形態におけるデータ・オブジェクトは、各段階に特有のものであり、各段階では、入力データは現段階におけるデータ・オブジェクトであり、出力データは、次の段階のために使用されるデータ・オブジェクトである。たとえば、変換段階「ベースバンド・データ→周波数領域データ」に関しては、ベースバンド・データが現段階におけるデータ・オブジェクトであり、一方、変換に起因する周波数領域データが、次の段階のために使用されるデータ・オブジェクトである。
【００４５】
ステップＳ５０６では、上述の変換プロセスに従って、各段階で、現段階のワークロード・パラメータＰが決定され得る。その後、ステップＳ５０８で、必要とされる数のコンピューティング要素が、現段階において変換を実施するために、コンピューティング要素のリソース・プールから割り振られる。すなわち、データ・オブジェクトを次の段階のために使用されるデータ・オブジェクトに変換するために、コンピューティング要素のリソース・プールからコンピューティング要素の総数が割り振られる。各変換段階の後、ステップＳ５１０で、次の段階があるか否かチェックすることができ、そうである（判定結果が「はい」である）場合、動作フローは、ステップＳ５０６に戻り、そうでない場合、動作フローは終了する。当業者なら、複数の段階のうちの最後の段階の場合、次の段階はヌルであると考えられ、この時点で、変換に起因するデータは、伝送データ・ブロックであることを理解すべきである。
【００４６】
本発明の一実施形態では、データ・オブジェクトに関連するワークロード・パラメータＰを取り出すステップが、データ・オブジェクトの１基本処理単位を処理するために必要とされるコンピューティング要素の最小数Ｎ、およびデータ・オブジェクト内に含まれる基本処理単位の数Ｍに基づいて、ワークロード・パラメータＰ＝Ｎ＊Ｍを計算するステップを含む。
【００４７】
異なる段階におけるデータ・オブジェクトが異なるので、そのデータ・オブジェクトを処理する際に必要とされる基本処理単位もまた異なる。具体的には、たとえば変換段階「ベースバンド・データ→周波数領域データ」では、単一セクタ単一アンテナ（single-sector single-antenna）モードにおけるシステム帯域幅が基本処理単位として使用されてもよい。基本処理単位を処理するために必要とされるコンピューティング要素の数（たとえば、最小数Ｎと示される）は推定することができるので、データ・オブジェクトに含まれる基本処理単位の数（たとえば、Ｍ）が学習可能である限り、すべてのデータを処理するために必要とされるコンピューティング要素の数、すなわちＰ＝Ｎ＊Ｍを学習することができる。
【００４８】
次に図６を参照すると、各段階における具体的な動作に対する詳細な説明が提供されている。図６は、本発明の一実施形態によるデータ受信リンク内のデータを処理する複数の段階の流れ図６００を概略的に示す。
【００４９】
ステップＳ６０２は、ベースバンド・データ（矢印Ａによって示されている）から周波数領域データ（矢印Ｂによって示されている）への変換段階（第１の段階）における具体的な動作を示す。具体的には、高速フーリエ変換（ＦＦＴ）アルゴリズムを使用し、ベースバンド・データに関連する時間領域信号を周波数領域信号に変換することができる。当業者なら、ＦＦＴアルゴリズムの設計原理に基づいて具体的な変換を実施することができ、これについて本開示では詳述しない。
【００５０】
本発明の一実施形態では、上記の動作は、汎用プロセッサが必要なコンピューティング要素を呼び出すことによって実現され得る。複数の段階のうちの第１の段階では、データ・オブジェクトはベースバンド・データであり、ワークロード・パラメータＰ＝Ｎ＊Ｍを計算するステップが、ベースバンド・データに関連する単一セクタ単一アンテナ・モードにおけるシステム帯域幅Ｂｗに基づいて最小数Ｎを推定するステップと、データ・オブジェクト内に含まれる基本処理単位の数
【数１】
0006415556.tif 000002
を、データ・オブジェクトに関連付けられたセクタの数Ｓ、および各セクタ内のアンテナの数Ａｉに基づいて計算するステップとを含む。
【００５１】
第１の段階では、ＬＴＥに関する限り、計算の量は、セクタの数、および各セクタ内のアンテナの数に関係し、それらは線形関係にある。したがって、セクタの数および対応するアンテナの数を予め学習することができる限り、必要なコンピューティング要素の総数を事前に推定することができ、さらに、コンピューティング・リソースを適応的にスケジューリングするように必要なコンピューティング要素を得ることができる。実際のネットワークに関しては、セクタの数および対応するアンテナの数は、ネットワーク構成が変化するときを除いて頻繁には変化せず、その結果、セクタの数および対応するアンテナの数に基づいて必要なコンピューティング要素を計算することが可能である。必要なコンピューティング要素の数は、式Ｐ＝Ｎ＊Ｍに基づいて計算することができ、コンピューティング要素の必要数が呼び出され、第１の段階における動作を実施する。
【００５２】
本発明の様々な実施形態では、並列データ処理の思想に基づいて、各段階において、処理される予定の信号が、並列で処理することができる複数のグループに分割され、それらの複数のグループは、複数のプロセッサ・コアを使用することによって相互干渉なしに並列で処理され、それによりデータ処理効率を増大することに留意されたい。
【００５３】
各プロセッサ・コアの処理時間は異なる可能性があり、プロセッサ・コアの数は、アンテナの数に完璧に合致しない可能性があることに留意されたい。したがって、複数のプロセッサ・コアが処理を完全に並列で実施しない状況があり得る。実際、様々なプロセッサ・コアの処理時間は、ある程度重なり合う可能性があるが、必ずしも同時に開始する、または終了する、あるいはその両方であるとは限らない。後続の動作が、最も遅い処理速度を有するプロセッサ・コアの完了後に確実に実行されるようにするために、様々なプロセッサ・コアからの処理結果をデータ・バッファに書き込むことができ、さらに追加の動作（たとえば、バリア動作（barrier operation））を使用して同期させることができる。
【００５４】
ステップＳ６０４は、周波数領域データ（矢印Ｂによって示されている）から受信データ・シンボルおよびチャネル推定シンボル（矢印Ｃによって示されている）への変換段階（第２の段階）における具体的な動作を示す。具体的には、周波数領域信号が、それらの周波数領域信号に対応する複数のアンテナに基づいて複数の並列グループに分割され、複数のデータ・キャリア・シンボルおよび複数のチャネル推定シンボルが、次の段階のために使用されるデータ・オブジェクトとして、それらの複数の並列グループから少なくとも部分的に並列で得られる。この実施形態では、汎用プロセッサは、コンピューティング・リソースを呼び出し、所望の結果を得るように、複数のアンテナからのデータを並列で処理することができる。
【００５５】
より具体的には、ユーザ分離を実装し、複数の並列グループからキャリア・シンボルおよび基準信号を取得し、データ・キャリア・シンボルおよびオフセット補正された基準シンボルをそれぞれ形成するようにキャリア・シンボルおよび基準信号からキャリア間干渉を除去し、複数のチャネル推定シンボルを形成するようにオフセット補正された基準シンボルに対してチャネル推定を実施することが可能である。汎用プロセッサは、コンピューティング要素のリソース・プール内のコンピューティング要素を呼び出し、このプロセスを実施する。
【００５６】
複数の処理段階のうちの第２の段階では、データ・オブジェクトが周波数領域データであり、ワークロード・パラメータＰ＝Ｎ＊Ｍを計算するステップが、周波数領域信号のうちの単一のユーザの単一のアンテナに関連するリソース・ブロックによって必要とされるワークロードに基づいて最小数Ｎを推定するステップと、周波数領域データに関連する各セクタ内のユーザ数Ｉ、各ユーザのアンテナ数Ａｉ、および割り振られたリソース・ブロックの数Ｒｉに基づいて、データ・オブジェクト内に含まれる基本処理単位の数
【数２】
0006415556.tif 000003
を計算するステップであって、Ｓは、データ・オブジェクトに関連するセクタの数である、ステップとを含む。
【００５７】
受信機に関する限り、様々な段階における処理は、連続するシリアル処理のプロセスである。たとえば、第１の段階では、第１の段階で必要とされるコンピューティング・リソースの上限が、セクタの数および対応するアンテナの数に基づいて推定された。第２の段階では、無線リソースを呼び出すユーザの数が、通常、システムの最大能力未満であり、必要とされるコンピューティング・リソースは、実際に割り振られる帯域幅に従って推定され得る。換言すれば、必要とされるコンピューティング・リソースは、同じＴＴＩ（伝送時間間隔）内のユーザすべてに割り振られる帯域幅の和である。
【００５８】
ＬＴＥでは、帯域幅割振りの基本単位はリソース・ブロック（ＲＢ）であり、その結果、受信機がこの段階で処理しなければならないＲＢの総数は、ユーザすべてに割り振られる帯域幅に従って計算することができる。各ＲＢを処理するために必要とされるコンピューティング要素を推定することができ、ユーザ数、それらのユーザに割り振られたＲＢの数、およびマルチアンテナ受信のためにそれらのユーザによって使用されるアンテナの数に基づいて、さらに第２の段階で必要とされるコンピューティング要素を推定することができる。その後、必要なコンピューティング要素の数を、式Ｐ＝Ｎ＊Ｍに基づいて計算することができ、コンピューティング要素の必要数が呼び出され、第２の段階における動作を実施する。
【００５９】
ステップＳ６０６は、受信データ・シンボルおよびチャネル推定シンボル（矢印Ｃによって示されている）から元のコード・ストリームの推定された値（矢印Ｄによって示されている）への変換段階（第３の段階）における具体的な動作を示す。具体的には、チャネル推定、チャネル方程式や複数アンテナの組合せが、複数のデータ・キャリア・シンボルおよび複数のチャネル推定シンボルに関して実施され、複数の有効周波数領域シンボルを複数の並列グループとして形成し、元のコード・ストリームの推定された値が、第３の段階のために使用されるデータ・オブジェクトとして、複数の有効周波数領域シンボルから少なくとも部分的に並列で得られる。この実施形態では、汎用プロセッサは、コンピューティング要素を呼び出し、所望の結果を得るように、複数の並列グループを並列で処理する。より具体的には、元のコード・ストリームの推定された値を複数の有効周波数領域シンボルから少なくとも部分的に並列で得ることが、複数の有効周波数領域シンボルを時間領域信号に変換すること、および、その時間領域信号に対してコンステレーション復調を実施し、元のコード・ストリームの推定された値を得ることを含む。
【００６０】
この実施形態では、複数の処理段階のうちの第３の段階では、データ・オブジェクトは、データ・キャリア・シンボルおよびチャネル推定シンボルであり、ワークロード・パラメータＰ＝Ｎ＊Ｍを計算するステップが、単一のユーザの単一のリソース・ブロック内の単一のＯＦＤＭ（直交周波数分割多重化）シンボル上のデータ・キャリア・シンボルおよびチャネル推定シンボルのデータ量に基づいて最小数Ｎを推定するステップと、周波数領域データに関連する各セクタ内のユーザ数Ｉｓ、割り振られたリソース・ブロックの数Ｒｉ、およびＯＦＤＭシンボルの数Ｆｉに基づいて、データ・オブジェクト内に含まれる基本処理単位の数
【数３】
0006415556.tif 000004
を計算するステップであって、Ｓは、データ・オブジェクトに関連するセクタの数である、ステップとを含む。一般に、ＯＦＤＭシンボルは、ＯＦＤＭシステムにおけるサブフレーム内の基本時間単位であり、ＯＦＤＭシンボルの詳細については、ＩＥＥＥ技術仕様を参照されたい。
【００６１】
第３の段階における処理は、上述の第２の段階のものと同様である。唯一の違いは、第２の段階におけるリソースを計算することが複数のアンテナを必要とし、その結果、コンピューティング要素の数を推定するとき受信アンテナの数を考慮するべきであるが、第３の段階では、同じユーザの、しかし異なるアンテナからの信号は混ぜ合わされることになり、その結果、コンピューティング要素の数を推定するときユーザ数だけが考慮されることにある。次に、必要なコンピューティング要素の数を、式Ｐ＝Ｎ＊Ｍに基づいて計算することができ、コンピューティング要素の必要数が呼び出され、第３の段階における動作を実施する。
【００６２】
ステップＳ６０８は、元のコード・ストリームの推定された値（矢印Ｄによって示されている）から伝送コード・ブロック（矢印Ｅによって示されている）への変換段階（第４の段階）における具体的な動作を示す。具体的には、複数のコード・ブロックが元のコード・ストリームの推定された値から複数の並列グループとして抽出され、複数のコード・ブロックから少なくとも部分的に並列で、伝送コード・ブロックが復元される。この実施形態では、汎用プロセッサは、コンピューティング要素を呼び出し、所望の結果を得るように、複数の並列グループを並列で処理することができる。たとえば、チャネル・デインターリーブ、レート・デマッチング、およびハイブリッド・リピート・モードの組合せを、複数のコード・ブロックに対して実施し、伝送コード・ブロックを復元することができる。
【００６３】
本発明の一実施形態では、複数の処理段階のうちの第４の段階において、データ・オブジェクトが元のコード・ストリームの推定された値であり、ワークロード・パラメータＰ＝Ｎ＊Ｍを計算するステップが、元のコード・ストリームの推定された値に関連するコード・ブロックの最大データ量に基づいて最小数Ｎを推定するステップと、元のコード・ストリームの推定された値に関連する各セクタ内のユーザ数Ｉｓ、および各ユーザのコード・ブロックの数Ｃｉに基づいて、データ・オブジェクト内に含まれる基本処理単位の数
【数４】
0006415556.tif 000005
を計算するステップであって、Ｓは、データ・オブジェクトに関連するセクタの数である、ステップとを含む。
【００６４】
この段階では、受信機の最小処理単位がコード・ブロックであり、総計算負荷は、コード・ブロックの数に従って推定することができる。さらに、様々なタイプのコード・ブロックがあるので、コード・ブロックのサイズもまた異なる。したがって、１基本処理単位を処理するために必要とされるコンピューティング要素の数は、最も長いコード・ブロックに基づいて推定することができる。この段階では、コード・ブロックの総数は、各セクタ内のユーザ数Ｉｓ、および各ユーザのコード・ブロックの数Ｃｉに関連し、その結果、コード・ブロックの総数は、
【数５】
0006415556.tif 000006
である。その後、必要なコンピューティング要素の数を、式Ｐ＝Ｎ＊Ｍに基づいて計算することができ、コンピューティング要素の必要数が呼び出され、第４の段階における動作を実施する。
【００６５】
ステップＳ６１０は、伝送コード・ブロック（矢印Ｅによって示されている）から伝送ブロック・データ（矢印Ｆによって示されている）への変換段階（第５の段階）における具体的な動作を示す。具体的には、伝送コード・ブロックが復号アルゴリズムに基づいて復号され、復号されたコード・ブロックが、伝送ブロック・データを形成するように組み合わされる。実際の実装では、復号は、ターボ復号法を使用して実装され、復号されたコード・ブロックを生成することができる。その後、コード・ブロックが正しく伝送されているか否かを検証するように、巡回冗長検査（ＣＲＣ）を復号されたコード・ブロックに対して実施することができる。復号されたコード・ブロックを伝送ブロック・データに組み合わせた後で、伝送ブロック・データが正しく伝送されているか否かを検証するように、ＣＲＣ検査を伝送ブロック・データに対して実施することができる。各伝送ブロックは、１つまたは複数のコード・ブロックから構成されるので、各コード・ブロックに対してＣＲＣ検査を実施した後で、伝送ブロックに対してＣＲＣ検査が実施され、それにより伝送ブロック全体内のデータが正しく伝送されているか否かを検証することができる。
【００６６】
本発明の一実施形態では、複数の処理段階のうちの第５の段階において、データ・オブジェクトは伝送コード・ブロックであり、ワークロード・パラメータＰ＝Ｎ＊Ｍを計算するステップが、伝送コード・ブロックに関連するコード・ブロックの最大データ量に基づいて最小数Ｎを推定するステップと、元のコード・ストリームの推定された値に関連する各セクタ内のユーザ数Ｉｓ、および各ユーザのコード・ブロックの数Ｃｉに基づいて、データ・オブジェクト内に含まれる基本処理単位の数
【数６】
0006415556.tif 000007
を計算するステップであって、Ｓは、データ・オブジェクトに関連するセクタの数である、ステップとを含む。
【００６７】
第４の段階と同様に、第５の段階における基本処理単位は、やはりコード・ブロックである。しかし、必要なコンピューティング要素の数は、処理されることになるコード・ブロックの総数によって決まり、その結果、コード・ブロックの総数を、後続の計算のための基本処理単位の数Ｍとして使用することができる。次に、必要なコンピューティング要素の数を、式Ｐ＝Ｎ＊Ｍに基づいて計算することができ、コンピューティング要素の必要数が呼び出され、第５の段階における動作を実施する。
【００６８】
本発明の様々な実施形態では、これらの５つの段階がコンピューティング・リソースに対する異なる需要を有するが、そのような共通の特徴が、様々な段階の間に存在する。すなわち、一方では、各段階は、必要なコンピューティング要素を推定するためのトリガ情報として、１つまたは複数の物理レイヤ・パラメータ（第１の段階におけるセクタの数および対応するアンテナの数、第２の段階における各セクタ内のユーザ数および各ユーザのアンテナ数など）を必要とし、他方では、各段階は、それ自体の基本処理単位と、その基本処理単位を処理するために必要とされるコンピューティング要素の最小数とを有する。各段階において、必要なコンピューティング要素の総数は、これらの特徴に基づいて推定することができる。次いで、コンピューティング要素のリソース・プール内のコンピューティング要素が適度に割り振られ、それにより電力を節約し、または負荷を平衡させ、あるいはその両方を行うという目的を達成する。
【００６９】
本発明の一実施形態では、データ・オブジェクトを次の段階のために使用されるデータ・オブジェクトに変換するために、コンピューティング要素のリソース・プールからコンピューティング要素の総数を割り振るステップが、コンピューティング要素のリソース・プール内のコンピューティング要素の総数がワークロード・パラメータＰ以上であることに応答して、データ・オブジェクトを次の段階のために使用されるデータ・オブジェクトに変換するために、コンピューティング要素のリソース・プールからコンピューティング要素を割り振るステップを含む。
【００７０】
具体的には、リソース・リストを使用し、コンピューティング要素のリソース・プール内の使用可能なリソースに関する情報を維持することができる。本発明の実施形態では、汎用プロセッサがそれぞれの段階における処理動作を並列で実行するので、リソース・リスト内の情報は、動的に変化し得る。たとえば、瞬間Ｔ１において、下記のような場合、すなわち、リソース・リストは、ｎ個のアイドルのコンピューティング要素を含み、この時点で１０個のコンピューティング要素が第１の段階における動作を実行しており、２０個のコンピューティング要素が第２の段階における動作を実行しており、．．．という場合が発生し得る。瞬間Ｔ２では、第１の段階における動作が完了しており、占有されていた１０個のコンピューティング要素が解放されると考えてみると、この時点で、アイドルのコンピューティング要素の数は、（ｎ＋１０）として更新される。
【００７１】
本発明の一実施形態では、コンピューティング要素のリソース・プール内のコンピューティング要素の総数がワークロード・パラメータＰ以上であることに応答して、データ・オブジェクトを次の段階のために使用されるデータ・オブジェクトに変換するために、コンピューティング要素のリソース・プールからコンピューティング要素を割り振るステップが、コンピューティング要素のリソース・プール内の単一のサーバからコンピューティング要素を割り振るステップ、および、コンピューティング要素のリソース・プール内の複数のサーバからコンピューティング要素を割り振るステップのうちの少なくとも１つを含む。
【００７２】
当業者なら、異なる目的に基づいて、異なる割振りポリシーを設計することができる。たとえば、目的が電力を節約することであるとき、１つのサーバ内の第１のコンピューティング要素を可能な限り割り振ることができ、このサーバ内のアイドルのコンピューティング要素の数が、コンピューティング要素の必要とされる数より少ないとき、別のサーバがリソース割振りのためにアクティブ化される。別の例として、目的が負荷を平衡させることであるとき、様々なサーバのワークロードを平衡させるように、様々なサーバからコンピューティング要素を可能な限り等しく割り振ることが可能である。
【００７３】
上述の方法により、データ受信リンク内で受信データを並列で処理するために、汎用プロセッサに基づいてコンピューティング要素を呼び出すことが可能である。このようにして、受信機の処理効率を増大し、専用のハードウェアまたはソフトウェア、あるいはその両方を開発するためのオーバーヘッドを低減することが可能である。さらに、コンピューティング要素は、コンピューティング要素のリソース・プールによって均一に維持され、データ受信リンクでは、コンピューティング要素をデータ処理の様々な段階の間で共用し、コンピューティング・リソースの利用効率を向上させ、電力節約または負荷平衡あるいはその両方の目的を達成することができる。
【００７４】
図７は、本発明の一実施形態によるデータ受信リンク内でコンピューティング要素を割り振るための装置のブロック図７００を概略的に示す。具体的には、図７は、データ受信リンク内でコンピューティング要素を割り振るための装置であって、データ受信リンク内でベースバンド・データを受信するように構成された受信モジュール７１０と、ベースバンド・データを伝送ブロック・データに変換するためにコンピューティング要素のリソース・プールからコンピューティング要素を割り振るように構成された割振りモジュール７２０とを備え、汎用プロセッサがベースバンド・データを伝送ブロック・データに変換し、コンピューティング要素が、汎用プロセッサによって呼び出すことができるコンピューティング要素である、装置を示す。
【００７５】
具体的には、本発明の一実施形態では、割振りモジュール７２０は、ベースバンド・データをデータ・オブジェクトとして識別するように構成された識別モジュールと、複数の段階の現段階において、データ・オブジェクトに関連するワークロード・パラメータＰを取り出すように構成された取出しモジュールであって、ワークロード・パラメータＰは、汎用プロセッサがデータ・オブジェクトを処理するとき必要なコンピューティング要素の総数を説明する、取出しモジュールと、データ・オブジェクトを次の段階のために使用されるデータ・オブジェクトに変換するために、コンピューティング要素のリソース・プールからコンピューティング要素の総数を割り振るように構成されたリソース割振りモジュールとを備える。
【００７６】
本発明の一実施形態では、取出しモジュールは、データ・オブジェクトの１基本処理単位を処理するために必要とされるコンピューティング要素の最小数Ｎ、およびデータ・オブジェクト内に含まれる基本処理単位の数Ｍに基づいて、ワークロード・パラメータＰ＝Ｎ＊Ｍを計算するように構成された計算モジュールを備える。
【００７７】
本発明の一実施形態では、現段階が第１の段階であり、データ・オブジェクトがベースバンド・データであり、計算モジュールが、ベースバンド・データに関連する単一セクタ単一アンテナ・モードにおけるシステム帯域幅に基づいて最小数Ｎを推定するように構成された第１の推定モジュールと、ベースバンド・データに関連するセクタの数Ｓ、および各セクタ内のアンテナの数Ａｉに基づいて、データ・オブジェクト内に含まれる基本処理単位の数
【数７】
0006415556.tif 000008
を計算するように構成された第１の計算モジュールとを備える。
【００７８】
本発明の一実施形態では、現段階が第２の段階であり、データ・オブジェクトが周波数領域データであり、計算モジュールが、周波数領域信号のうちの単一のユーザの単一のアンテナに関連するリソース・ブロックによって必要とされるワークロードに基づいて最小数Ｎを推定するように構成された第２の推定モジュールと、周波数領域データに関連する各セクタ内のユーザ数Ｉ、各ユーザのアンテナ数Ａｉ、および割り振られたリソース・ブロックの数Ｒｉに基づいて、データ・オブジェクト内に含まれる基本処理単位の数
【数８】
0006415556.tif 000009
を計算するように構成された第２の計算モジュールであって、Ｓは、データ・オブジェクトに関連するセクタの数である、第２の計算モジュールとを備える。
【００７９】
本発明の一実施形態では、現段階が第３の段階であり、データ・オブジェクトがデータ・キャリア・シンボルおよびチャネル推定シンボルであり、計算モジュールが、単一のユーザの単一のリソース・ブロック内の単一のＯＦＤＭシンボル上のデータ・キャリア・シンボルおよびチャネル推定シンボルのデータ量に基づいて最小数Ｎを推定するように構成された第３の推定モジュールと、周波数領域データに関連する各セクタ内のユーザ数Ｉｓ、割り振られたリソース・ブロックの数Ｒｉ、およびＯＦＤＭシンボルの数Ｆｉに基づいて、データ・オブジェクト内に含まれる基本処理単位の数
【数９】
0006415556.tif 000010
を計算するように構成された第３の計算モジュールであって、Ｓは、データ・オブジェクトに関連するセクタの数である、第３の計算モジュールとを備える。
【００８０】
本発明の一実施形態では、現段階が第４の段階であり、データ・オブジェクトが元のコード・ストリームの推定された値であり、計算モジュールが、元のコード・ストリームの推定された値に関連するコード・ブロックの最大データ量に基づいて最小数Ｎを推定するように構成された第４の推定モジュールと、元のコード・ストリームの推定された値に関連する各セクタ内のユーザ数Ｉｓ、および各ユーザのコード・ブロックの数Ｃｉに基づいて、データ・オブジェクト内に含まれる基本処理単位の数
【数１０】
0006415556.tif 000011
を計算するように構成された第４の計算モジュールであって、Ｓは、データ・オブジェクトに関連するセクタの数である、第４の計算モジュールとを備える。
【００８１】
本発明の一実施形態では、現段階が第５の段階であり、データ・オブジェクトが伝送コード・ブロックであり、計算モジュールが、伝送コード・ブロックに関連するコード・ブロックの最大データ量に基づいて最小数Ｎを推定するように構成された第５の推定モジュールと、元のコード・ストリームの推定された値に関連する各セクタ内のユーザ数Ｉｓ、および各ユーザのコード・ブロックの数Ｃｉに基づいて、データ・オブジェクト内に含まれる基本処理単位の数
【数１１】
0006415556.tif 000012
を計算するように構成された第５の計算モジュールであって、Ｓは、データ・オブジェクトに関連するセクタの数である、第５の計算モジュールとを備える。
【００８２】
本発明の一実施形態では、リソース割振りモジュールが、コンピューティング要素のリソース・プール内のコンピューティング要素の総数がワークロード・パラメータＰ以上であることに応答して、データ・オブジェクトを次の段階のために使用されるデータ・オブジェクトに変換するために、コンピューティング要素のリソース・プールからコンピューティング要素を割り振るように構成されたコンピューティング要素割振りモジュールを備える。
【００８３】
本発明の一実施形態では、コンピューティング要素割振りモジュールが、コンピューティング要素のリソース・プール内の単一のサーバからコンピューティング要素を割り振るように構成された第１の割振りモジュール、および、コンピューティング要素のリソース・プール内の複数のサーバからコンピューティング要素を割り振るように構成された第２の割振りモジュールのうちの少なくとも１つを備える。
【００８４】
図における流れ図およびブロック図は、本発明の様々な実施形態によるシステム、方法、およびコンピュータ・プログラム製品の可能な実装のアーキテクチャ、機能、および動作を示す。これに関連して、流れ図またはブロック図内の各ブロックは、指定された論理機能を実装するための１つまたは複数の実行可能命令を含むコードのモジュール、セグメント、または一部を表すことができる。いくつかの代替の実装では、ブロック内に示された機能が、図に示された順序から外れて行われ得ることにも留意されたい。たとえば、連続して示されている２つのブロックが、実際には、実質的に同時に実行されてもよく、時には、これらのブロックが、必要とされる機能に応じて逆の順序で実行されることもあり得る。ブロック図、または流れ図、あるいはその両方の各ブロック、およびブロック図、または流れ図、あるいはその両方のブロックの組合せは、指定された機能もしくは行為を実施する専用ハードウェアをベースとするシステム、または専用ハードウェアとコンピュータ命令の組合せによって実施することができることにも留意されたい。
【００８５】
本発明の様々な実施形態の説明が例示のために提供されているが、網羅的なものとすることも、開示されている実施形態に限定することも意図されていない。当業者には、開示されている実施形態の範囲および趣旨から逸脱することなしに、多数の変更形態および変形形態が明らかになろう。本明細書で使用されている用語は、実施形態の原理、実際的な応用例、もしくは市場に見出される技術に優る技術的改良を最もよく説明するために、または他の当業者が本明細書に開示されている実施形態を理解することを可能にするために選択されている。
【図１】
0006415556.tif 000023
【図２】
0006415556.tif 000024
【図３】
0006415556.tif 000025
【図４】
0006415556.tif 000026
【図５】
0006415556.tif 000027
【図６】
0006415556.tif 000028
【図７】
0006415556.tif 000029