(57)【要約】  本発明は、複数のメモリユニット、複数のアクセラレータユニット、及びプロセッサコアを含むプログラム可能デジタル信号プロセッサに関する。デジタル信号プロセッサには、更に、メモリユニットと、アクセラレータユニットと、プロセッサコアとの間に選択的に接続性を提供するように構成し得るプログラム可能回路網が含まれる。各アクセラレータユニットは、１つ以上の専用機能を実施するように構成し得る。プロセッサコアには、データ経路フロー制御に関連する命令を実行するように構成し得る実行ユニットを含み得る。プログラム可能回路網は、特定の命令の実行に応じて、選択的に接続性を提供するように構成し得る。
2008546072.tif 000002
【特許請求の範囲】
【請求項１】
デジタル信号プロセッサであって、
複数のメモリユニット（０、・・・、ｎ）と、
１つ以上の専用機能を実施するように構成された複数のアクセラレータユニット（０、・・・、ｍ）と、
データ経路フロー制御に関連する命令を実行するように構成された実行ユニットを含むプロセッサコア（１４６）と、
前記命令の実行に応じて、前記複数のメモリユニットと、複数のアクセラレータユニットと、プロセッサコアとの間に選択的に接続性を提供するように構成されたプログラム可能回路網（２５０）と、
を特徴とするデジタル信号プロセッサ。
【請求項２】
請求項１に記載のデジタル信号プロセッサであって、特定の命令の実行に応じて、前記プログラム可能回路網（２５０）は、前記複数のメモリユニット（０、・・・、ｎ）の内の与えられた１つを前記複数のアクセラレータユニット（０、・・・、ｍ）の内の与えられた１つに結合するように構成されるデジタル信号プロセッサ。
【請求項３】
請求項１に記載のデジタル信号プロセッサであって、特定の命令の実行に応じて、前記プログラム可能回路網（２５０）は、前記複数のメモリユニットの１つ以上のメモリユニット（０、・・・、ｎ）を前記プロセッサコアに結合するように構成されるデジタル信号プロセッサ。
【請求項４】
請求項１乃至３のいずれかに記載のデジタル信号プロセッサであって、特定の命令の実行に応じて、前記プログラム可能回路網（２５０）は、前記複数のアクセラレータユニット（０、・・・、ｍ）の２つ以上のアクセラレータユニットを共にチェーン状に結合し、また、更に、前記チェーンの第１アクセラレータユニットを前記複数のメモリユニット（０、・・・、ｎ）の与えられた１つ及び前記プロセッサコア（１４６）に結合するように構成されるデジタル信号プロセッサ。
【請求項５】
請求項４に記載のデジタル信号プロセッサであって、前記複数のアクセラレータユニット（０、・・・、ｍ）の各アクセラレータユニットは、前記チェーンの他のアクセラレータユニットに接続された場合、前記プロセッサコアによる介在なしで接続される、前記アクセラレータユニットと通信を行うように構成されるデジタル信号プロセッサ。
【請求項６】
請求項１乃至５のいずれかに記載のデジタル信号プロセッサであって、前記プログラム可能回路網（２５０）には、前記プロセッサコア（１４６）、前記各複数のメモリユニット（０、・・・、ｎ）、及び前記各複数のアクセラレータユニット（０、・・・、ｍ）への接続のための複数のそれぞれのインターフェイスポートが含まれるデジタル信号プロセッサ。
【請求項７】
請求項６に記載のデジタル信号プロセッサであって、それぞれの各インターフェイスポートには、読み出し・書き込みポート対が含まれ、前記各読み出し・書き込みポート対には、読み出し要求信号、データ利用可能信号及び複数のデータラインが含まれるデジタル信号プロセッサ。
【請求項８】
請求項１乃至７のいずれかに記載のデジタル信号プロセッサであって、前記プロセッサコア（１４６）には、更に、ベクトル命令を実行するように構成された１つ以上の実行ユニットが含まれ、前記１つ以上の実行ユニットは、データが含まれるベクトルに作用するデジタル信号プロセッサ。
【請求項９】
請求項８に記載のデジタル信号プロセッサであって、前記実行ユニットには、１つ以上の命令実行パイプラインが含まれ、各々クロックサイクル当り単一の動作を実行するように構成されたデジタル信号プロセッサ。
【請求項１０】
請求項９に記載のデジタル信号プロセッサであって、前記実行ユニットは、単一命令複数データ（ＳＩＭＤ）命令を実行するように構成されたデジタル信号プロセッサ。
【請求項１１】
請求項９又は１０に記載のデジタル信号プロセッサであって、前記各１つ以上の実行パイプラインは、前記ベクトルの異なるデータに対して同じ命令を実行するように構成されたデジタル信号プロセッサ。
【請求項１２】
請求項９に記載のデジタル信号プロセッサであって、１つ以上の前記実行ユニットの１つ以上の前記実行パイプラインは、複素乗算累算器ユニットであるデジタル信号プロセッサ。
【請求項１３】
請求項８に記載のデジタル信号プロセッサであって、１つ以上の前記実行ユニットは、実数部及び虚数部を有する複素数値化データに対して演算を行う複素ベクトル命令を実行するように構成された複素実行ユニットであるデジタル信号プロセッサ。
【請求項１４】
請求項１３に記載のデジタル信号プロセッサであって、前記複素実行ユニットは、本来あらゆるデータを複素数値化データとして解釈するように構成されたデジタル信号プロセッサ。
【請求項１５】
請求項１３に記載のデジタル信号プロセッサであって、前記複素実行ユニットには、１つ以上の命令実行パイプラインが含まれ、各々クロックサイクル当り単一の複素演算を実行するように構成されたデジタル信号プロセッサ。
【請求項１６】
請求項１５に記載のデジタル信号プロセッサであって、前記１つ以上の命令実行パイプラインの１つ又は複数には、前記複素ベクトル命令を実行するように構成された複素演算論理回路ユニットが含まれるデジタル信号プロセッサ。
【請求項１７】
請求項１に記載のデジタル信号プロセッサであって、前記プロセッサコア（１４６）には、更に、実数部及び虚数部を有する複素数値化データに関する演算を実施するように構成された複素乗算累算器ユニットが含まれるデジタル信号プロセッサ。
【請求項１８】
請求項１乃至１７のいずれかに記載のデジタル信号プロセッサであって、前記１つ以上の専用機能のそれぞれ与えられた機能は、異なる無線通信標準規格に関連するデジタル信号プロセッサ。
【請求項１９】
請求項１乃至１８のいずれかに記載のデジタル信号プロセッサであって、前記各複数のメモリユニット（０、・・・、ｎ）には、読み出し又は書き込みトランザクションの受信に応じて、ローカルメモリ位置に対応するアドレスを生成するように構成されたアドレス生成ユニットが含まれるデジタル信号プロセッサ。
【請求項２０】
請求項１乃至１９のいずれかに記載のデジタル信号プロセッサであって、前記各複数のメモリユニット（０、・・・、ｎ）、前記複数のアクセラレータユニット（０、・・・、ｍ）、前記プロセッサコア（１４６）、及び前記プログラム可能回路網（２５０）は、単一の集積回路上に製造されるデジタル信号プロセッサ。
【請求項２１】
請求項１乃至２０のいずれかに記載のデジタル信号プロセッサであって、前記複数のアクセラレータユニット（０、・・・、ｍ）の少なくとも幾つかのアクセラレータユニットは、ベースバンド信号処理に関連する前記専用機能の構成可能ハードウェア実装品であるデジタル信号プロセッサ。
【請求項２２】
請求項１乃至２１のいずれかに記載のデジタル信号プロセッサであって、前記デジタル信号プロセッサは、無線用途用のプログラム可能なベースバンドプロセッサとして用いられるデジタル信号プロセッサ。
【請求項２３】
請求項１乃至２１のいずれかに記載のデジタル信号プロセッサであって、前記デジタル信号プロセッサは、媒体プロセッサとして用いられるデジタル信号プロセッサ。
【請求項２４】
マルチモード無線通信装置（１００）であって、
無線周波数信号を送受信するように構成された無線周波数フロントエンドユニット（１３０）と、
前記無線周波数フロントエンドユニット（１３０）に結合されたプログラム可能デジタル信号プロセッサと、を特徴とし、
前記プログラム可能デジタル信号プロセッサには、
複数のメモリユニット（０、・・・、ｎ）と、
各々１つ以上の専用機能を実施するように構成された複数のアクセラレータユニット（０、・・・、ｍ）と、
データ経路フロー制御に関連する命令を実行するように構成された実行ユニットを含むプロセッサコア（１４６）と、
前記命令の実行に応じて、前記複数のメモリユニット（０、・・・、ｎ）と、前記複数のアクセラレータユニット（０、・・・、ｍ）と、前記プロセッサコア（１４６）との間に選択的に接続性を提供するように構成されたプログラム可能回路網（２５０）と、
が含まれるマルチモード無線通信装置。
【請求項２５】
請求項２４に記載の無線通信装置であって、特定の命令の実行に応じて、前記プログラム可能回路網は、前記複数のメモリユニットの内の与えられた１つを前記複数のアクセラレータユニットの内の与えられた１つに結合するように構成される無線通信装置。
【請求項２６】
請求項２４に記載の無線通信装置であって、特定の命令の実行に応じて、前記プログラム可能回路網は、前記複数のメモリユニットの１つ以上のメモリユニットを前記プロセッサコアに結合するように構成される無線通信装置。
【請求項２７】
請求項２４に記載の無線通信装置であって、特定の命令の実行に応じて、前記プログラム可能回路網は、前記複数のアクセラレータユニットの２つ以上のアクセラレータユニットを共にチェーン状に結合するように、また、更に、前記チェーンの第１アクセラレータユニットを前記複数のメモリユニットの与えられた１つと前記プロセッサコアとの内の１つに結合するように構成される無線通信装置。
【請求項２８】
請求項２７に記載の無線通信装置であって、前記複数のアクセラレータユニットの各アクセラレータユニットは、前記チェーンの他のアクセラレータユニットに接続された場合、それが前記プロセッサコアによる介在なしで接続される前記アクセラレータユニットと通信を行うように構成される無線通信装置。
【請求項２９】
請求項２４に記載の無線通信装置であって、前記プログラム可能回路網には、前記プロセッサコアへの、前記各複数のメモリユニットへの、及び前記各複数のアクセラレータユニットへの接続のための複数のそれぞれのインターフェイスポートが含まれる無線通信装置
。
【請求項３０】
請求項２９に記載の無線通信装置であって、それぞれの各インターフェイスポートには、読み出し・書き込みポート対が含まれ、前記各読み出し・書き込みポート対には、読み出し要求信号、データ利用可能信号及び複数のデータラインが含まれる無線通信装置。
【請求項３１】
請求項２４に記載の無線通信装置であって、前記プロセッサコアには、更に、実数部及び虚数部を有する複素数値化データに対して演算を行う複素ベクトル命令を実行するように構成された複素実行ユニットが含まれる無線通信装置。
【請求項３２】
請求項３１に記載の無線通信装置であって、前記複素実行ユニットには、各々クロックサイクル当り単一の複素演算を実行するように構成された複数の命令実行パイプラインが含まれる無線通信装置。
【請求項３３】
請求項３２に記載の無線通信装置であって、前記各複数の命令実行パイプラインには、前記複素ベクトル命令を実行するように構成された複素演算論理回路ユニットが含まれる無線通信装置。
【請求項３４】
請求項３２に記載の無線通信装置であって、前記複素実行ユニットは、単一命令複数データ（ＳＩＭＤ）命令を実行するように構成された無線通信装置。
【請求項３５】
請求項２４に記載の無線通信装置であって、前記プロセッサコアには、更に、実数部及び虚数部を有する複素数値化データに関する演算を実施するように構成された複素乗算累算器ユニットが含まれる無線通信装置。
【請求項３６】
請求項３５に記載の無線通信装置であって、前記複素乗算累算器ユニットは、本来あらゆるデータを複素数値化データとして解釈するように構成される無線通信装置。
【請求項３７】
請求項２４に記載の無線通信装置であって、前記プログラム可能デジタル信号プロセッサは、複数の無線通信標準規格によって確立されたパラメータ内において動作するように構成される無線通信装置。
【請求項３８】
請求項２４に記載の無線通信装置であって、前記複数のアクセラレータユニットの少なくとも幾つかのアクセラレータユニットは、複数の無線通信標準規格に準拠する信号のベースバンド信号処理に関連する前記専用機能の構成可能ハードウェア実装品である無線通信装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、デジタル信号プロセッサに関し、特に、プログラム可能デジタル信号プロセッサに関する。
【背景技術】
【０００２】
相対的に短い期間に、無線装置及び特に携帯電話の用途は劇的に増大した。この無線装置の世界的な普及は、非常に多くの無線標準規格の出現や無線製品の収束をまねいた。そして、このことによって、ソフトウェア規定無線（ＳＤＲ）への関心が高まった。
【０００３】
ＳＤＲフォーラムによって述べられたように、ＳＤＲは、「無線回路網及びユーザ端末用の再構成可能なシステムアーキテクチャを可能にするハードウェア及びソフトウェア技術の集合体」である。ＳＤＲは、ソフトウェアを改良して強化し得るマルチモード、多帯域、多機能無線装置を構築する問題に対して、効率的で比較的安価な解決策を提供する。このように、ＳＤＲは、無線業界の広範囲な領域において適用可能な特別の権能を賦与する技術と見なし得る。
【０００４】
多くの無線通信装置は、１つ以上のデジタル信号プロセッサ（ＤＳＰ）が含まれる無線送受信機を用いる。無線通信装置に用いられる１つの種類のＤＳＰはベースバンドプロセッサ（ＢＢＰ）であり、これは、受信された無線信号の処理と信号の送信準備とに関連する信号処理機能の多くに対処し得る。例えば、ＢＢＰは、変調及び復調、並びにチャネル符号化及び同期化機能を提供し得る。多くの従来のＢＢＰは、特定用途向け集積回路（ＡＳＩＣ）装置として実現され、これは、単一の無線標準規格をサポートし得る。多くの場合、ＡＳＩＣ＿ＢＢＰは、優れた性能を提供し得る。しかしながら、ＡＳＩＣ問題点は、オンチップ・ハードウェアの設計対象である無線標準規格内で動作するように限定されることがある。
【０００５】
ＳＤＲの解決策としては、無線ベースバンドプロセッサにおいて柔軟性を高めて、製品化までの期間、コスト及び製品寿命に対する要件を満たす必要がある。無線ローカルエリア回路網（ＬＡＮ）、第３／第４世代移動電話通信、及びデジタル映像放送等、要求が厳しい用途の要件に対処するために、大規模な並列処理がベースバンドプロセッサに必要とされる。
【発明の開示】
【発明が解決しようとする課題】
【０００６】
その目的のために、極めて複雑な超長命令語（ＶＬＩＷ）及び／又は多重プロセッサコアマシンに基づく様々なプログラム可能なＢＢＰ（ＰＢＢＰ）解決策が提案されてきた。これらの従来のＰＢＢＰ解決策は、それらのＡＳＩＣ同等物と比較して、チップ面積が大きいことや性能が限定される可能性があることなどの欠点を有することが多い。従って、多数の異なる変調手法、帯域幅及び可動性要件をサポートすることができ、また、許容可能な面積及び消費電力を有するプログラム可能なＤＳＰアーキテクチャを有することが望ましい。
【課題を解決するための手段】
【０００７】
プログラム可能回路網が含まれるプログラム可能なベースバンドデジタル信号プロセッサの様々な実施形態を開示する。一実施形態において、デジタル信号プロセッサには、複数のメモリユニット、複数のアクセラレータユニット、プロセッサコアが含まれる。デジタル信号プロセッサには、更に、メモリユニットと、アクセラレータユニットと、プロセ
ッサコアとの間に選択的に接続性を提供するように構成し得るプログラム可能回路網が含まれる。各アクセラレータユニットは、プロセッサコアとは独立して、１つ以上の専用機能を実施するように構成し得る。プロセッサコアには、データ経路フロー制御に関連する命令を実行するように構成し得る実行ユニットを含み得る。プログラム可能回路網は、命令の実行に応じて、選択的に接続性を提供するように構成し得る。本発明によって、処理容量が改善され、また、このことは、柔軟性を維持することにより実現される。
【０００８】
１つの特定の実施例において、特定の命令の実行に応じて、プログラム可能回路網は、メモリユニットの内の与えられた１つをアクセラレータユニットの内の与えられた１つに結合するように構成し得る。
【０００９】
他の特定の実施例において、特定の命令の実行に応じて、プログラム可能回路網は、１つ以上のメモリユニットをプロセッサコアに結合するように構成し得る。
更に他の特定の実施例において、特定の命令の実行に応じて、プログラム可能回路網は、２つ以上のアクセラレータユニットを共にチェーン状に結合するように、また、更に、チェーンの第１アクセラレータユニットをメモリユニットの与えられた１つとプロセッサコアとの内の１つに結合するように構成される。
【００１０】
他の実施形態において、無線通信装置には、無線周波数信号を送受信するように構成された無線周波数フロントエンドユニットと、無線周波数フロントエンドユニットに結合されたプログラム可能デジタル信号プロセッサと、が含まれる。１つのそのようなデジタル信号プロセッサは、ベースバンドデジタル信号プロセッサであってよい。プログラム可能デジタル信号プロセッサには、複数のメモリユニット、複数のアクセラレータユニット、及びプロセッサコアが含まれる。プログラム可能デジタル信号プロセッサには、更に、メモリユニットと、アクセラレータユニットと、プロセッサコアとの間に選択的に接続性を提供するように構成し得るプログラム可能回路網が含まれる。
【００１１】
各アクセラレータユニットは、プロセッサコアとは独立した関連する１つ以上の専用機能を実施するように構成し得る。プロセッサコアには、データ経路フロー制御に関連する命令を実行するように構成し得る実行ユニットを含み得る。プログラム可能回路網は、命令の実行に応じて、選択的に接続性を提供するように構成し得る。
【発明を実施するための最良の形態】
【００１２】
本発明は、様々な修正や他の選択肢としての形態が許されることがあり、その特定の実施形態を、一例として、図面に示し、本明細書で詳細に述べる。しかしながら、図面及びそれらに対する詳細な説明は、開示された特定の形態に本発明を限定しようとするものではなく、逆に、添付の請求項によって規定される本発明の精神及び範囲内にある全ての修正、等価物、及び他の選択肢を網羅しようとするものであることを理解されるべきである。見出しは、構成上の目的だけのためであり、説明又は請求項を限定又は解釈するために用いようとするものではないことに留意されたい。更に、語「し得る、してもよい」は、強制的な（即ち、しなければならない）の意味ではなく、許容する（即ち、可能性がある、できる）の意味で本出願全体に用いることに留意されたい。用語「含まれる」及びその派生語は、「限定せずに含む」ことを意味する。用語「接続される」は、「直接又は間接的に接続される」ことを意味し、用語「結合される」は、「直接又は間接的に結合される」ことを意味する。
【００１３】
次に、図１において、プログラム可能なベースバンドプロセッサを含むマルチモード無線通信装置の一実施形態のブロック図を示す。
例示した実施形態において、機能及びハードウェア双方の観点から、無線通信システムの何らかの基本的な分割を示す。特に、マルチモード無線通信装置１００には、受信サブ
システム１１０及び送信サブシステム１２０が含まれ、その各々が、アンテナ１２５に接続される。様々な実施形態において、マルチモード無線通信装置は、手持ち式移動電話通信装置等であってよいことに留意されたい。更に、数字及び文字双方が含まれる参照識別子を有する構成要素は、適宜、数字のみによって参照する場合があることに留意されたい。
【００１４】
受信サブシステム１１０には、アナログ・ディジタル変換器（ＡＤＣ）１４０に接続されるＲＦフロントエンド１３０の一部が含まれる。ＡＤＣ１４０は、プログラム可能なベースバンドプロセッサ（ＰＢＢＰ）１４５Ａに接続され、これは、更に、アプリケーションプロセッサ（１つ又は複数）１５０に結合される。送信サブシステム１２０には、ＰＢＢＰ１４５Ｂに結合されたアプリケーションプロセッサ（１つ又は複数）１６０が含まれ、ＰＢＢＰ１４５Ｂは、デジタル・アナログ変換器（ＤＡＣ）１７０に接続される。ＤＡＣ１７０は、また、ＲＦフロントエンド１３０の一部に結合される。ＰＢＢＰ１４５Ａ及び１４５Ｂは、１つのプログラム可能なプロセッサとして実現し得ること、また、幾つかの実施形態において、単一の集積回路上に作製し得ることに留意されたい。また、幾つかの実施形態において、ＡＤＣ１４０は、ＰＢＢＰ１４５Ａの一部として実現し得ることに留意されたい。
【００１５】
ＰＢＢＰ１４５は、送信サブシステム１２０及び受信サブシステム１１０双方において、多くの機能を実施する。送信サブシステム１２０内では、ＰＢＢＰ１４５Ｂは、アプリケーションソースからのデータを無線チャネルに適合したフォーマットに変換し得る。例えば、送信サブシステム１２０は、チャネル符号化、デジタル変調、及び符号整形等の機能を実施し得る。チャネル符号化とは、誤り訂正（例えば、畳み込み符号化）及び（例えば、周期的冗長コード（ＣＲＣ）を用いた）誤り検出のための様々な方法を用いることを意味する。デジタル変調とは、ビットストリームを複素数サンプルのストリームにマッピングする処理を意味する。デジタル変調における第１の（時として、唯一の）ステップは、二相位相偏移変調（ＢＰＳＫ）、四相位相偏移変調（ＱＰＳＫ）、又は直交振幅変調（ＱＡＭ）等、特定の信号集合体にビットのグループをマッピングすることである。ビットのグループを無線信号の振幅及び位相にマッピングする方法は様々である。場合によっては、第２ステップのドメイン変換を適用し得る。直交周波数分割多重化（ＯＦＤＭ）システム（即ち、情報が同時に多数の隣接周波数で送られる変調方法）において、このステップに高速フーリエ逆変換（ＩＦＦＴ）を用い得る。符号分割多元接続（ＣＤＭＡ）等のスペクトラム拡散システム、例えば、（各使用中ユーザに個別の「コード」を割り当てることによって多数のユーザによるＲＦスペクトルの共有を可能にする「スペクトラム拡散」法）において、各符号には、１とー１の拡散系列が掛けられる。最後のステップは、符号整形であり、これは、有限インパルス応答（ＦＩＲ）帯域通過フィルタを用いて方形波を帯域限定信号に変換する。チャネル符号化及びマッピング機能は、通常、（ワードレベルではなく）ビットレベルで動作することから、一般的に、プログラム可能なプロセッサでの実装に適さない。しかしながら、更に詳細に後述するように、ＰＢＢＰ１４５の様々な実施形態において、これらの及び他の機能は、１つ以上の専用のハードウェアアクセラレータを用いて実現し得る。
【００１６】
ＰＢＢＰ１４５は、同期化、チャネル等化、復調、及び前方誤り訂正のような機能を実施し得る。例えば、受信サブシステム１１０は、ひずんだアナログベースバンド信号から符号を回復したり、また、許容可能なビット誤り率（ＢＥＲ）でそれらをビットストリームに変換して、アプリケーションをアプリケーションプロセッサ（１つ又は複数）１５０において走らせたりし得る。
【００１７】
同期化は、幾つかのステップに分割し得る。第１ステップには、着信信号又はフレームを検出する段階を含んでよく、時として、「エネルギ検出」と称される。これに関連して
、アンテナ選択及び利得制御等の動作も実行し得る。次のステップは、符号同期化であり、これは、着信符号の正確なタイミングを見つけることを目的としている。全ての上記動作は、通常、複合自己又は相互相関に基づく。
【００１８】
多くの場合、受信サブシステム１１０は、無線チャネルの欠陥に対する何らかの種類の補正を実施することが必要である。この補正は、チャネル等化として知られている。ＯＦＤＭシステムでは、チャネル等化は、ＦＦＴを実施した後、各サブキャリアの単純な変倍及び回転を伴い得る。ＣＤＭＡシステムでは、「レイク」受信機が、多数の信号経路からの着信信号を異なる経路遅延と組み合わせるために用いられることが多い。幾つかのシステムでは、最小平均二乗法（ＬＭＳ）適応フィルタを用い得る。同期化と同様に、チャネル推定及び等化に伴うほとんどの動作には、畳み込みベースのアルゴリズムを用い得る。これらのアルゴリズムは、一般的に、従来のＡＳＩＣ実施例における同じ固定ハードウェアを共有するのに充分な程似通ってはいない。従って、ＡＳＩＣ解決策は、適応性が充分ではない。しかしながら、これらは、ＰＢＢＰ１４５等のプログラム可能なＤＳＰプロセッサ上に効率的に実装し得る。
【００１９】
復調は、変調の反対の動作として見なし得る。通常、復調は、ＯＦＤＭシステムにおけるＦＦＴと、ＣＤＭＡシステムにおける拡散系列との相関即ち「逆拡散」とを実行する段階を伴う。復調の最後のステップは、信号集合体に従って複合符号をビットに変換することであってよい。チャネル符号化と同様に、デインターリーブ処理及びチャネル復号化は、ファームウェア実装に適し得ない。しかしながら、更に詳細に後述するように、ビタビ又はターボ復号化は、畳み込みコードに用い得るが、１つ以上のハードウェアアクセラレータとして実現し得る極めて過大な機能である。
【００２０】
プログラム可能なベースバンド・プロセッサ・アーキテクチャ
図２は、図１のプログラム可能なベースバンドプロセッサの一実施形態のブロック図を示す。ＰＢＢＰ１４５は、動的な再構成可能性を提供することによって、多数の動作モード（即ち、プリアンブル受信、ペイロード受信、及び送信）及び様々なデータ速度で様々な無線標準規格をサポートし得る。所望の再構成可能性を達成するために、ＰＢＢＰ１４５の様々な実施形態には、プログラム可能な接続回路網を用いて、プロセッサコアと、多数のメモリユニットと、様々なハードウェアアクセラレータとの間の相互接続を制御することによって、ＤＳＰフローを管理する中央プロセッサコアを含み得る。
【００２１】
図２において、ＰＢＢＰ１４５には、プロセッサコア１４６と、０乃至ｎで示した複数のデータメモリユニットとが含まれ、ここで、ｎは、任意の数であってよい。ＰＢＢＰ１４５には、更に、０乃至ｍで示した複数のハードウェアアクセラレータが含まれ、ここで、ｍは、任意の数であってよい。更に、ＰＢＢＰ１４５には、プロセッサコア１４６と、データメモリ及びアクセラレータの各々との間に接続されるプログラム可能回路網２５０が含まれる。更に、ＰＢＢＰ１４５には、それぞれ２２０及び２１５で示した整数及び係数メモリユニットが含まれ、各々、プログラム可能回路網２５０を介してプロセッサコア１４６に接続される。最後に、ＰＢＢＰ１４５には、プログラム可能回路網２５０とホスト／ＭＡＣプロセッサ（図示せず）との間に接続される媒体アクセス層（ＭＡＣ）インターフェイスユニット２２５が含まれる。
【００２２】
プロセッサコア
例示した実施形態において、プロセッサコア１４６には、制御レジスタＣＲ２６５と、プログラム可能回路網２５０とに接続された制御ユニット２６０が含まれる。プロセッサコア１４６には、更に、複素乗算累算器（ＣＭＡＣ）ユニット２７０及び複素演算論理ユニット（ＣＡＬＵ）２８０が含まれ、これらは、双方共、プログラム可能回路網２５０に独立に結合される。プロセッサコア１４６には、更に、ＣＭＡＣ２７０に接続されたベク
トルコントローラ２７５Ａと、ＣＡＬＵ２８０に接続されたベクトルコントローラ２７５Ｂとが含まれる。
【００２３】
制御ユニット２６０には、ＡＬＵ２６１、別個の乗算累算器ユニット２６２、及び一組のレジスタファイル（ＲＦ）２６３が含まれる。一実施形態において、制御ユニット２６０は、整数命令を実行するように構成された縮小命令セットコントローラ（ＲＩＳＣ）として機能し得る。
【００２４】
ＣＡＬＵ２８０には、各々累算器（図示せず）を含み２８２Ａ乃至２８２Ｄで示す４つのＡＬＵが含まれる。ＣＡＬＵ２８０には、更に、ベクトル記憶ユニット２８３及びベクトル読み込みユニット２８４が含まれる。一実施形態において、ベクトル記憶ユニット２８３及びベクトル読み込みユニット２８４は、４つのＡＬＵ間で共有し得るが、４つのＡＬＵが並列に動作するように機能し得ることに留意されたい。また、一実施形態において、ベクトルコントローラ２７５Ａ及び２７５Ｂは、ＣＭＡＣ２７０とＣＡＬＵ２８０との間で共有し得る単一の共有ユニットとして実現し得ることに留意されたい。
【００２５】
ＣＭＡＣ２７０は、複素数のベクトルに関する演算用に最適化し得る。従って、ＣＭＡＣ２７０には、共に又は別個に動作させ得る多数の複素数データ経路が含まれる。一実施形態において、データ経路ＣＭＡＣ０及びＣＭＡＣ１には、各々乗算器、加算器、及び累算レジスタ（全て図示せず）が含まれる２つの複素数データ経路を含み得る。従って、ＣＭＡＣ２７０は、四方ＣＭＡＣデータ経路と称し得る。また、乗算及び加算に加えて、ＣＭＡＣ０及びＣＭＡＣ１は、各々、丸め及び変倍演算を実施し、飽和をサポートし得る。一実施形態において、ＣＭＡＣ２７０動作は、３つのパイプラインステップに分割し得る。更に、ＣＭＡＣ０及びＣＭＡＣ１は、各々、Ｎ／２クロックサイクルでＮ要素ベクトルの演算を実行し得る。更に、ＣＭＡＣ０及びＣＭＡＣ１は、累算レジスタに記憶された複素数値に関する演算（例えば、複素数加算、減算、共役等）をサポートし得る。例えば、ＣＭＡＣ２７０は、１クロックサイクルで（ＡＲ＋ｊＡＩ）＊（ＢＲ＋ｊＢＩ）等の複素乗算値を演算し、また、１クロックサイクルで複素累積値を演算し、複素ベクトル演算（例えば、複素畳み込み、共役複素畳み込み、及び複素ベクトル内積）をサポートし得る。
【００２６】
一実施形態において、プロセッサコア１４６は、多数の単一命令多重データ（ＳＩＭＤ）実行ユニットを有するＤＳＰプロセッサとして機能し得る。特に、データ経路は、共にＳＩＭＤクラスタにグループ化され、ここで、各クラスタは、ベクトルコントローラ２７５Ａ及び２７５Ｂ、ベクトル記憶ユニット２８３、及びベクトル読み込みユニット２８４を用い得る。クラスタは、異なるタスクを実行し得る一方で、クラスタ内の各データ経路は、各クロックサイクルで多重データに対して単一の命令を実施し得る。特に、四方ＣＡＬＵ２８０及び四方ＣＭＡＣ２７０は、例えば、ＳＩＭＤクラスタとして機能して、並列に４つの相関、即ち、４つの異なるコードの逆拡散等の４つの並列演算を実施し得る。同様に、ＣＭＡＣ２７０は、例えば、２つの並列な基数２ＦＦＴバタフライ又は１つの基数４ＦＦＴバタフライを実施し得る。
【００２７】
命令セットアーキテクチャ
一実施形態において、プロセッサコア１４６用の命令セットアーキテクチャには、３つのクラスの複合命令を含み得る。第１クラスの命令は、ＲＩＳＣ命令であり、これらは、１６ビット整数オペランドに作用する。ＲＩＳＣ命令クラスには、ほとんどの制御向け命令が含まれ、プロセッサコア１４６の制御ユニット２６０内において実行し得る。次のクラスの命令は、ＤＳＰ命令であり、これらは、実数部及び虚数部を有する複素数値データに作用する。ＤＳＰ命令は、１つ以上のＳＩＭＤクラスタに対して実行し得る。第３クラスの命令は、ベクトル命令である。ベクトル命令は、大きなデータセットに作用し、また、高度なアドレスモード及びベクトルループサポートを利用し得ることから、ＤＳＰ命令
の拡張と見なし得る。ほとんど例外なく、ベクトル命令セットは、複素数データタイプに作用する。
【００２８】
多くのベースバンド受信アルゴリズムは、タスクチェーンに分解し得るが、タスク間の後向き依存関係は、ほとんどない。この特性によって、異なるタスクをＳＩＭＤ実行ユニット上で並列に実施し得るだけでなく、上記命令セットアーキテクチャを用いて、それを利用し得る。ベクトル演算は、大きなベクトルに作用し、従って、１つの命令が、クロックサイクル毎に発行され、これによって、制御経路の複雑さを低減し得る。更に、ベクトルＳＩＭＤ命令は、長いベクトルに作用することから、多くのＲＩＳＣ命令をベクトル演算中に実行し得る。このように、一実施形態において、プロセッサコア１４６は、クロックサイクル毎単一命令発行マシンであってよく、各ＳＩＭＤクラスタ及び制御ユニットは、パイプライン処理方式で各クロックサイクル毎に命令を実行し得る。従って、ＰＢＢＰ１４５は、２つのスレッドを並列に走らせると考え得る。第１スレッドには、プログラムフロー、及び制御ユニット２６０を用いるその他の処理が含まれる。第２スレッドには、ＳＩＭＤクラスタに対して実行される複素ベクトル演算が含まれる。図３は、図２のプロセッサコアの一実施形態の命令実行パイプラインを示す。
【００２９】
図２及び図３を一括して参照すると、図３の左列は、時間（実行クロックサイクル単位）を表す。残りの列は、複素数ＳＩＭＤクラスタ及び制御ユニット２６０の実行パイプライン（例えば、ＣＭＡＣ２７０及びＣＡＬＵ２８０）及びそれに対する命令の発行を表す。特に、第１クロックサイクルにおいて、複素ベクトル命令（例えば、ＣＶＬ．２５６）が、ＣＭＡＣ２７０に発行される。図示するように、ベクトル命令は、多くのサイクルを経て完了する。次のクロックサイクルにおいて、ベクトル命令が、ＣＡＬＵ２８０に発行される。次のクロックサイクルにおいて、整数命令が、制御ユニット２６０に発行される。次の幾つかのサイクルにおいて、ベクトル命令が実行されている間、任意の数の整数命令を制御ユニット２６０に発行し得る。
【００３０】
更に一般的には、プロセッサには、ベクトル命令を実行するように構成された１つ以上の実行ユニットを含み得る。即ち、１つ以上の実行ユニットは、データを含むベクトルに作用する。そのようなベクトル命令を実行するための実行ユニットの例は、ＣＭＡＣであるが、他の種類のそのような実行ユニットも用い得る。本発明に基づくアーキテクチャには、任意の既知のタイプのベクトル命令を任意の組合せで実行するための１つ以上の実行ユニットを含み得る。実行ユニットは、複素数値化ベクトル、即ち、実数部及び虚数部を有する複素数値化データに作用する複素ベクトル命令で動作するように構成し得る。他の選択肢として、実行ユニットは、実数に対して演算するように構成し得る。
【００３１】
一実施形態において、制御フロー同期化を提供し、また、データフローを制御するために、「アイドル」命令を用いて、任意のベクトル演算が完了するまで、制御フローを停止し得ることに留意されたい。例えば、対応するＳＩＭＤ実行ユニットによって或るベクトル命令を実行すると、制御ユニット２６０によって「アイドル」命令を実行し得る。「アイドル」命令は、例えば、フラグ等の表示が、対応するＳＩＭＤ実行ユニットから制御ユニット２６０によって受信されるまで、制御ユニット２６０を停止し得る。
【００３２】
ハードウェアアクセラレータ
上述したように、広範囲の全無線標準規格にマルチモードサポートを提供するために、多くのベースバンド機能が、プログラム可能なコアとの組み合わせで用いられる専用ハードウェアアクセラレータによって提供し得る。どの機能を促進するかという選択は、十分考慮すべきである。例として、定期的に実施され、また、幾つかの無線標準規格によって用いられる機能は、加速の良い候補である。
【００３３】
例えば、一実施形態において、以下の各機能、即ち、デシメータ／フィルタ、ＣＤＭＡ及びＤＳＳＳ変調方式用の４「フィンガ」レイク機能、ＯＦＤＭ変調方式及びＩＥＥＥ８０２．１１ｂ用の基数４ＦＦＴ／変形ウォルシュ変換、デマッパ、畳み込み／ターボエンコーダ・ビタビデコーダ、構成可能なブロックインターリーバ、構成可能なスクランブラ、及びＣＲＣアクセラレータは、図２のアクセラレータ０乃至ｍを用いて実現し得る。他の実施形態において、他の数及び種類の機能は、アクセラレータ０乃至ｍを用いて実現し得ることに留意されたい。
【００３４】
一実施形態において、デシメータ／フィルタアクセラレータには、ＡＤＣ及びＩＥＥＥ８０２．１１ａのような標準規格等に用い得るＦＩＲフィルタ等の構成可能なフィルタを含み得る。同様に、四フィンガレイクアクセラレータには、累算器ユニット及び集合｛０＋／−１及び０＋／−ｉ｝からの値をサンプルに乗ずることが可能な単純な複素乗算器を含み得る。レイクアクセラレータには、更に、遅延経路記憶用のローカル複素メモリ、逆拡散コード発生器、及び多重路検索及びチャネル推定機能を実施し得る整合フィルタ（全て図示せず）を含み得る。基数４ＦＦＴ／変形ウォルシュ変換（ＦＦＴ／ＭＷＴ）アクセラレータには、基数４バタフライ（図示せず）及びフレキシブル・アドレス発生器（図示せず）を含み得る。一実施形態において、ＦＦＴ／ＭＷＴアクセラレータは、６４点ＦＦＴを５４クロックサイクルで実施し、また、ＩＥＥＥ８０２．１１ｂ標準規格をサポートして、変形ウォルシュ変換を１８クロックサイクルで実施し得る。畳み込み／ターボエンコーダ・ビタビデコーダアクセラレータには、畳み込み及びターボ誤り訂正コードにサポートを提供する再構成可能なビタビデコーダ及びターボエンコーダ／デコーダを含み得る。一実施形態において、畳み込みコードの復号化は、ビタビアルゴリズムによって実施し得る。これに対して、ターボコードは、ソフト出力ビタビアルゴリズムを利用することによって、復号し得る。構成可能なブロックインターリーバ・アクセラレータを用いて、データを再配列し、隣り合ったデータビットを時間的に拡散し、また、ＯＦＤＭの場合、異なる周波数間で拡散し得る。更に、スクランブラ・アクセラレータを用いて、データを疑似ランダムデータでスクランブルして、伝送データストリームにおいて１及びゼロの均一な分布を保証し得る。ＣＲＣアクセラレータには、線形フィードバックシフトレジスタ（図示せず）又はＣＲＣを生成するための他のアルゴリズムを含み得る。
【００３５】
メモリユニット
プロセッサコア１４６のＳＩＭＤアーキテクチャを効率的に利用するために、メモリ管理及び配分は、重要な考慮すべき事項であり得る。このように、データメモリシステムアーキテクチャには、幾つかの相対的に小さなデータメモリユニット（例えば、ＤＭ０−ＤＭｎ）が含まれる。一実施形態において、データメモリＤＭ０−ＤＭｎは、処理中、複素数データを記憶するために用い得る。これらの各メモリは、２つの交互配置されたメモリバンクを有するように実現し得るが、これによって、２つの連続したアドレス（ベクトル要素）を並列にアクセスし得る。更に、各データメモリＤＭ０−ＤＭｎには、モジュロアドレス指定並びにＦＦＴアドレス指定を実施するように構成し得るアドレス生成ユニット（例えば、図４に示す４０５Ａ−４０５ｎ）を含んでよい。更に後述するように、各ＤＭ０−ＤＭｎは、プログラム可能回路網２５０を介して、独立に動的に、任意のアクセラレータに及びプロセッサコア１４６に接続し得る。係数メモリ２１５は、ＦＦＴ及びフィルタ係数、ルックアップ表、及びアクセラレータによって処理されない他のデータを記憶するために用い得る。整数メモリ２２０をパケットバッファとして用いて、ＭＡＣインターフェイス２２５用のビットストリームを記憶し得る。係数メモリ２１５及び整数メモリ２２０は、双方共、プログラム可能回路網２５０を介して、プロセッサコア１４６に結合される。
【００３６】
プログラム可能回路網
プログラム可能回路網２５０は、データ経路、メモリ、アクセラレータ及び外部のイン
ターフェイスを相互接続するように構成される。従って、プログラム可能回路網２５０は、接続が１つの入力（書き込み）ポートから１つの出力（読み出し）ポートにセットアップされ、また、任意の入力ポートが任意の出力ポートにＮｘＭ構成で接続されるクロスバーと同様に振舞い得る。しかしながら、幾つかの実施形態では、幾つかのメモリと幾つかの演算ユニットとの間の接続は、必要でないことがある。このように、プログラム可能回路網２５０は、或るメモリ構成だけが可能なように最適化することによって、プログラム可能回路網２５０を簡素化し得る。プログラム可能回路網２５０等の相互接続があると、アービター及びアドレス指定論理回路が必要で無くなることによって、多くの同時通信をなお可能にしつつ、ネットワーク及びアクセラレータインターフェイスの複雑さを低減し得る。一実施形態において、プログラム可能回路網２５０は、多重化装置、又は例えば、ＡＮＤ／ＯＲ構成等の組合わせ論理回路構成を用いて、実現し得ることに留意されたい。ＡＮＤ／ＯＲ構成は、テストした際、多重化装置を含む実施例と比較して、ネットワーク用のハードウェアがわずかに小さくなった。
【００３７】
一実施形態において、プログラム可能回路網２５０は、２つのサブ回路網として実現される。第１サブ回路網は、サンプルベースの転送に用いられ、第２サブ回路網は、ビットベースの転送に用いられる直列の回路網であってよい。ビットベースの転送は、回路網のデータ幅に等しくないデータチャンクの冗長なフレーミング及びデフレーミングを必要とすることから、２つの回路網を分割すると、回路網の処理能力を改善し得る。そのような実施形態において、各サブ回路網は、プロセッサコア１４６によって構成される別個のクロスバースイッチとして実現し得る。プログラム可能回路網２５０は、関連する機能を有するアクセラレータが、互いにチェーン状に直接接続され、また、データメモリが接続されるようにも構成し得る。この種類の回路網構成によって、データは、プロセッサコア１４６が介在することなく、アクセラレータユニット間においてシームレスに流れることができ、これによって、プロセッサコア１４６は、回路網接続の生成及び消滅の間だけ回路網に関与することが可能である。
【００３８】
上述したように、全てのメモリを全ての演算要素に接続する必要はなく、また、プログラム可能回路網２５０は、或るメモリ構成だけを可能にするように最適化し得る。それらの実施形態において、プログラム可能回路網２５０は、「部分的回路網」と称し得る。これらの部分的回路網間でデータを転送するために、１つ以上のデータメモリユニット（例えば、ＤＭ０）内における幾つかのメモリブロックは、双方のサブ回路網に割り当て得る。これらのメモリブロックは、タスク間のピンポンバッファとして用い得る。無駄なメモリ移動は、演算要素間の「スワップ」メモリブロックによって回避し得る。この方策は、無駄なメモリ移動動作なしで効率的で予測可能なデータフローを提供し得る。
【００３９】
図４は、図２のプログラム可能回路網の実施形態の更なる態様を示す。例示した実施形態において、プログラム可能回路網２５０に接続された各ユニット（例えば、プロセッサコア１４６、ＤＭ０−ｎ、アクセラレータ０−ｍ等）には、少なくとも１つの読み出し／書込みポート対を有するインターフェイスポートが含まれる。各読み出し／書込みポート対には、「データ着信」及び「データ発信」信号及び「ハンドシェイク着信」及び「ハンドシェイク発信」信号が含まれる。一実施形態において、データ着信／発信信号は、各々多重ビットデータ経路であってよく、他方、ハンドシェイク着信信号は、読み出し要求（ＲＲ）信号であってよく、ハンドシェイク発信信号は、データ利用可能（ＤＡＶ）信号であってよい。同様に、プログラム可能回路網２５０には、各々同じポート信号を有する複数の対応するインターフェイスポート（例えば、インターフェイスポート０−ｎ）が含まれる。
【００４０】
更に、プロセッサコア１４６には、回路網構成情報をプログラム可能回路網２５０に送るために用い得る回路網構成ポートが含まれる。一実施形態において、プロセッサコア１
４６は、専用の組立命令を用いることによって又は図２の制御レジスタ２６５等の制御レジスタに構成ベクトルを書き込むことによって、回路網接続を構成し得る。
【００４１】
プロセッサコア１４６は、クラスタＳＩＭＤアーキテクチャとして実現し得ることから、複数のデータメモリＤＭ０−ＤＭｎをプロセッサコア１４６に同時に接続し得ることに留意されたい。プログラム可能回路網２５０がこのように構成される場合、各データメモリは、それぞれのＳＩＭＤクラスタポートに接続し得る。
【００４２】
更に、図５に示すように、プログラム可能回路網２５０の回路網インターフェイスポートは、チェーン状のアクセラレータ（例えば、アクセラレータ０、２、３）の接続を可能にするが、これらアクセラレータは、それら自体間で自動的に同期をとって通信を行い、プロセッサコア１４６とは独立に（即ち、それとの相互作用なしで）、また、如何なる種類のアービター又は回路網マスタユニットも無い状態で動作し得る。上述したように、このプロトコルによって、プロセッサコア１４６内における同期化オーバーヘッドなしで、プロセッサコア１４６及び任意の数のアクセラレータの同時動作が可能であり、これによって、プロセッサコア１４６が解放され、有用なベースバンド処理を実施し得る。更に、メモリアクセスの数は、低減し得るが、これは、アクセラレータ間でデータを送る場合、中間記憶装置が必要でないことがあるためである。
【００４３】
プログラム可能回路網２５０は、任意のユニット（例えば、プロセッサコア１４６、アクセラレータ２等）に排他的メモリアクセスを認めて、アルゴリズム出力を記憶させるように構成し、これによって、アクセス競合によるストールサイクルを解消し得る可能性がある。タスクを終了した後、プログラム可能回路網２５０の再構成により、アクセラレータ又はインターフェイスに対して、出力データを含むメモリ全体を「ハングオーバ」することが可能であり、これによって、メモリ間のデータ移動を解消し得る。
【００４４】
図６Ａ及び図６Ｂは、プログラム可能回路網２５０の一実施形態に接続されたユニット間のタイミングを示すタイミング図である。図６Ａは、代表的なメモリ要求タイミングを示し、一方、図６Ｂは、リクエスタより遅いユニット（例えば、アクセラレータ）に対するデータ要求の代表的なタイミングを示す。図６Ａのタイミング図には、クロック信号、読み出し要求信号（ＲＲ）、データ利用可能信号（ＤＡＶ）及びデータ信号が含まれ、一方、図６Ｂには、追加のストール信号が含まれる。
【００４５】
一実施形態において、プログラム可能回路網２５０における及びプロセッサコア１４６、アクセラレータ０−ｍ、及びデータメモリ０−ｎの各々におけるインターフェイスポート論理回路は、ユニット間で自動的に同期をとるように構成し得る。従って、一旦、プログラム可能回路網２５０が、２つの装置（例えば、プロセッサコア１４６及びＤＭ０）に接続するようにプロセッサコア１４６によって構成されると、データを要求している装置のＲＲ信号は、データが利用可能な限り、アイドル状態ではあり得ない。特に、リクエスタがデータを要求できるのと同じ速さで送信ユニットがデータを提供するように構成されている場合、ＲＲ信号は、リクエスタがデータを必要とする限り、アイドル状態にはなり得ない。図６Ａに示すように、ＲＲ信号は、リクエスタによって３クロックサイクルの間アサートされる。ＲＲがアサートされた次のクロックサイクル後、ＤＡＶは、データが送られている間、３クロックサイクルの間、送信元によってアサートされる。従って、３つのデータ「ブロック」又はユニットが、３クロックサイクルで送られる。ＲＲがディアサートされた２サイクル後、リクエスタは、ＲＲを再度２サイクルの間アサートする。ＲＲがアサートされた１サイクル後、送信元は、ＤＡＶを２サイクルの間アサートし、データがそれら２サイクルで送られる。
【００４６】
しかしながら、送信元の中には、リクエスタがデータを要求し得るのと同じ速さでリク
エスタにデータを提供できない送信元もある。このように、３つ以上の突出した読み出し要求サイクルがある場合、リクエスタは、ＲＲ信号をストールするように構成し得る。例えば、図６Ｂにおいて、ＲＲは、２サイクルの間アサートされ、送信元は、ＤＡＶをアサートしていない。
【００４７】
従って、リクエスタは、ＤＡＶが１サイクルの間アサートされデータが送られるまで、ＲＲ信号をストールする。そして、ＲＲ信号は、１データサイクルだけが送られたことから、１サイクルの間だけアサートされ、そして、２つの突出した要求が再度存在する。従って、遅い送信元からリクエスタがデータを要求する場合、リクエスタは、ＲＲ信号を交互にアサートしてストールし、送信元が追いつくのを可能にする。しかしながら、他の実施形態において、２を下回る又はそれを超える突出した要求の後、リクエスタがストールし得ると考えられることに留意されたい。
【００４８】
図７は、図２及び図４のプログラム可能なベースバンドプロセッサの一実施形態代表的なパイプライン動作を示す。ＩＥＥＥ８０２．１１ａ標準規格に関連するペイロード処理動作中、一実施形態において、処理フローには、３つのパイプライン段において（即ち、任意の時点において）、偶数及び奇数符号を受信し処理する段階が含まれ、３つの異なるＯＦＤＭ符号（各々８０の入力サンプルを含む）からのデータは、ＰＢＢＰ１４５の異なる部分で処理し得る。
【００４９】
特に、奇数符号区間段１の間、奇数符号は、ＡＤＣフロントエンド／フィルタによって受信され、サンプルは、ＤＭ０に記憶される。奇数符号区間段２の間、プロセッサコア１４６は、ＤＭ１に記憶された偶数サンプルに対して演算を行い、その結果をＤＭ３に記憶する。奇数符号区間段３の間、アクセラレータチェーンは、ＤＭ２に記憶された結果に対して独立に演算を行い、その結果をＭＡＣ層インターフェイスに転送する。同様に、偶数符号区間段１の間、偶数符号は、ＡＤＣフロントエンド／フィルタによって受信され、サンプルは、ＤＭ１に記憶される。偶数間隔段２の間、プロセッサコア１４６は、ＤＭ０に記憶された奇数サンプルに対して演算を行い、その結果をＤＭ２に記憶する。偶数間隔段３の間、アクセラレータチェーンは、ＤＭ３に記憶された結果に対して独立に演算を行い、その結果をＭＡＣ層インターフェイスに転送する。
【００５０】
上述したように、プログラム可能回路網２５０は、動作中、動的に再構成され、アクセラレータ、データメモリ、及びプロセッサコア１４６間のデータフローを円滑化し得る。更に、フロー制御は、アイドル命令、割込み、及びフラグを用いて、実行中のプロセス間に提供し得る。
【００５１】
図２及び図７を一括して参照すると、第１パイプライン段において、プロセッサコア１４６は、プログラム可能回路網２５０を構成して、デシメータ／フィルタアクセラレータ（例えば、アクセラレータ０）をデータメモリ（例えば、ＤＭ０）に接続する（ブロック６００）。奇数ＯＦＤＭ符号が受信されと、アクセラレータ０は、デシメーション及び周波数オフセット補正を実施し、補正されたサンプルは、ＤＭ０を介して、プログラム可能回路網２５０に送信し得る。完全な符号を受信すると、一実施形態において、アクセラレータ０内のサンプルカウンタ機能（図示せず）は、プロセッサコア１４６に対して割込みを生成し得る（ブロック６０５）。割込みに応じて、プロセッサコア１４６は、次の符号のサンプルがＤＭ１に転送されるように、プログラム可能回路網２５０を再構成して、アクセラレータ０を異なるデータメモリ（例えば、ＤＭ１）に接続し得る。ほぼ同時に、ＤＭ０及び他のデータメモリ（例えば、ＤＭ２）は、プロセッサコア１４６に接続し得る（ブロック６１０）。次に、アクセラレータ０は、偶数符号を受信し、それに対して演算を行い、対応するサンプルをＤＭ１に書き込み得る（ブロック６１５）。
【００５２】
第２パイプライン段において、アクセラレータ０によって生成された割込みに応じて、プロセッサコア１４６は、ＤＭ０内に記憶されたサンプルに対して演算を行い得る。一実施形態において、プロセッサコア１４６は、ＤＭ０において今利用可能な符号に対してＦＦＴ及びチャネル補正を実施し、また、幾つかの位相及びチャネル追跡タスクを実施し得る（ブロック６３５）。補正された周波数領域サンプルは、プロセッサコア１４６からプログラム可能回路網２５０を介してＤＭ２に転送し得る（ブロック６４０）。
【００５３】
プロセッサコア１４６が、その結果をＤＭ２に送り終えた時、プロセッサコア１４６は、チェーン状の追加のアクセラレータ（例えば、アクセラレータ１−４）及びＤＭ２をチェーンの入力に接続することによって、プログラム可能回路網２５０を再構成し得る（ブロック６４５）。例えば、メモリからアクセラレータへのチェーンには、デマッパへのＤＭ２の接続が含まれ、デマッパがデインターリーバに接続され、デインターリーバがビタビデコーダに接続され、ビタビデコーダは、ＭＡＣ層インターフェイスに接続し得る。ほぼ同時に、アクセラレータ０がＤＭ１に偶数サンプルを送り終えると、プロセッサコア１４６により、プログラム可能回路網２５０は、アクセラレータ０をＤＭ０に再接続し（ブロック６２０）、こうして、アクセラレータ０は、次の奇数符号を処理し、サンプルをＤＭ０に記憶し得る（ブロック６２５）。
【００５４】
アクセラレータ０が、次の奇数符号について終えると、上述したように、割込みが、ブロック６０５において生成される。割込みに応じて、プロセッサコア１４６は、プログラム可能回路網２５０を再構成して、アクセラレータ０をＤＭ１に接続し、また、プロセッサコア１４６をＤＭ０及びＤＭ２に接続し得る（ブロック６３０）。プロセッサコア１４６がアイドル状態の場合があり得ることに留意されたい。例えば、プロセッサコア１４６は、アクセラレータ０がデータメモリの１つにサンプルを記憶し終えるまで待つことが可能である。
【００５５】
第３パイプライン段には、ＤＭ２に記憶された結果に対して、プロセッサコア１４６によって実施される動作と独立に動作するアクセラレータチェーンが含まれる。例えば、アクセラレータチェーンは、デマップ処理及びチャネル復号化動作を実施し、その結果生じるビットストリームをＭＡＣ層インターフェイスに転送し得る（ブロック６６０）。アクセラレータチェーンがＤＭ２のデータに関する演算を終えると、アクセラレータチェーンによってプロセッサコア１４６に対する割込みを生成し得る。その結果がＤＭ３内で準備されると、プロセッサコア１４６は、プログラム可能回路網２５０を再構成して、ＤＭ３をアクセラレータチェーンの入力に接続し得る（ブロック６６５）。アクセラレータチェーンは、ＤＭ３に記憶された結果に対して演算を行い、その結果生じるビットストリームをＭＡＣ層インターフェイスに転送する（ブロック６７０）。
【００５６】
上述したアーキテクチャ及びマイクロアーキテクチャの柔軟な性質により、ＰＢＢＰ１４５は、多数の無線標準規格及びそれら標準規格における多数のモードに対してサポートを提供し得る。
【００５７】
更に、本発明は、無線用途用のプログラム可能なベースバンドプロセッサを実現するのに極めて適する。しかしながら、本発明は、媒体通信プロセッサとして、即ち、特にデジタル媒体の生成及び配信のために設計されたプロセッサとして用い得る。従って、音声、映像、グラフィックス、ファクス及びモデム動作の任意の組合せを処理するマルチメディアサブシステムを構築するために用い得る。
【００５８】
上記実施形態は、かなり詳細に述べたが、一旦、上記開示が完全に認識されると、数多くの変更及び修正が当業者には明らかになるであろう。以下の請求項は、全てのそのような変更及び修正を包含すると解釈されるものである。
【図面の簡単な説明】
【００５９】
【図１】プログラム可能なベースバンドプロセッサを含むマルチモード無線通信装置の一実施形態を示すブロック図。
【図２】図１のプログラム可能なベースバンドプロセッサの一実施形態を示すブロック図。
【図３】図２のプロセッサコアの一実施形態の命令発行パイプラインを示す図。
【図４】図２のプログラム可能なベースバンドプロセッサの実施形態の更なる態様を示す図。
【図５】図２及び図４のプログラム可能なベースバンドプロセッサの一実施形態における代表的なネットワーク接続を示す図。
【図６Ａ】図２及び図４のプログラム可能回路網の一実施形態に接続されたユニット間における代表的なタイミング態様を示すタイミング図。
【図６Ｂ】図２及び図４のプログラム可能回路網の一実施形態に接続されたユニット間における他の代表的なタイミング態様を示すタイミング図。
【図７】図１、図２、及び図４のプログラム可能なベースバンドプロセッサの実施形態の代表的な動作を記載したパイプラインフローを示す図。
【図１】
2008546072.tif 000003
【図２】
2008546072.tif 000004
【図３】
2008546072.tif 000005
【図４】
2008546072.tif 000006
【図５】
2008546072.tif 000007
【図６Ａ】
2008546072.tif 000008
【図６Ｂ】
2008546072.tif 000009
【図７】
2008546072.tif 000010
【国際調査報告】
2008546072.tif 000011
2008546072.tif 000012
2008546072.tif 000013
2008546072.tif 000014