(57)【要約】  再構成可能な並列処理を行なう方法および装置について記述される。【特許請求の範囲】
【請求項１】
データを格納するための記憶ユニットと、
前記データを処理するための複数の並列データ・パスと、
前記データ・パスを制御するための複数の制御ユニットと、
前記制御ユニットを前記データ・パスに接続するためのスイッチであって、前記スイッチは、構成情報を受信し、第１プロセスを実行するために前記制御ユニットと前記データ・パスとの間に第１セットの接続を、および、第２プロセスを実行するために前記制御ユニットと前記データ・パスとの間に第２セットの接続を確立する、スイッチと、
から構成されることを特徴とする装置。
【請求項２】
各制御ユニットは、単一のプログラム命令の実行を制御することを特徴とする請求項１記載の装置。
【請求項３】
前記第１セットの接続は、第１構成内で前記制御ユニットおよび前記データ・パスを接続し、単一命令複数データ処理を行うことを特徴とする請求項２記載の装置。
【請求項４】
前記第１セットの接続は、前記複数の制御ユニットの少なくとも１つを複数のデータ・パスに接続し、前記１つの制御ユニットは前記複数のデータ・パスを制御することを特徴とする請求項２記載の装置。
【請求項５】
各データ・パスは、前記データを使用して同じセットの動作を行うことを特徴とする請求項４記載の装置。
【請求項６】
前記第２セットの接続は、第２構成内で前記制御ユニットを前記データ・パスに接続し、複数命令複数データ処理を行うことを特徴とする請求項２記載の装置。
【請求項７】
前記第２セットの接続は、複数の制御ユニットを複数のデータ・パスに接続し、各制御ユニットは単一のデータ・パスを制御することを特徴とする請求項２記載の装置。
【請求項８】
各データ・パスは、前記データを使用して異なるセットの動作を行うことを特徴とする請求項４記載の装置。
【請求項９】
前記構成情報に従って前記接続を確立するために、前記スイッチを構成するための構成モジュールをさらに含むことを特徴とする請求項１記載の装置。
【請求項１０】
アンテナと、
ホスト処理システムと、
構成情報を格納するための構成モジュールと、
前記構成情報を受信するための再構成可能な通信アーキテクチャ・モジュールであって、前記再構成可能な通信アーキテクチャ・モジュールは、第１構成内で単一命令複数データ処理を行って第１プロセスを実行し、第２構成内で複数命令複数データ処理を行って第２プロセスを実行するために自らを構成する、再構成可能な通信アーキテクチャ・モジュールと、
から構成されることを特徴とするシステム。
【請求項１１】
前記再構成可能な通信アーキテクチャ・モジュールは、
各プロセスの機能を実行するための複数の処理要素と、
前記処理要素を接続するための複数のルーティング要素と、
網目状トポロジ内で前記処理要素および前記ルーティング要素を接続するための複数の通信媒体と、
をさらに含むことを特徴とする請求項１０記載のシステム。
【請求項１２】
前記処理要素の１つは、
データを格納するための記憶ユニットと、
前記データを処理するための複数の並列データ・パスと、
前記データ・パスを制御するための複数の制御ユニットと、
前記制御ユニットを前記データ・パスに接続するためのスイッチであって、前記スイッチは、前記構成情報を受信し、前記第１プロセスを実行するために前記制御ユニットと前記データ・パスとの間に第１セットの接続を、および、前記第２プロセスを実行するために前記制御ユニットと前記データ・パスとの間に第２セットの接続を確立する、スイッチと、
を含むことを特徴とする請求項１０記載のシステム。
【請求項１３】
各制御ユニットは、単一のプログラム命令を実行することを特徴とする請求項１２記載のシステム。
【請求項１４】
前記第１セットの接続は、前記複数の制御ユニットの少なくとも１つを複数のデータ・パスに接続し、前記１つの制御ユニットは前記複数のデータ・パスを制御することを特徴とする請求項１３記載のシステム。
【請求項１５】
前記第２セットの接続は、複数の制御ユニットを複数のデータ・パスに接続し、各制御ユニットは単一のデータ・パスを制御することを特徴とする請求項１３記載のシステム。
【請求項１６】
スイッチで構成情報を受信する段階と、
複数の制御ユニットと複数のデータ・パスとの間に第１セットの接続を確立するために前記スイッチを構成し、単一命令複数データ処理を使用して第１プロセスを実行する段階と、
前記制御ユニットと前記データ・パスとの間に第２セットの接続を確立するために前記スイッチを構成し、複数命令複数データ処理を使用して第２プロセスを実行する段階と、
から成ることを特徴とする方法。
【請求項１７】
各制御ユニットは、単一のプログラム命令の実行を制御することを特徴とする請求項１６記載の方法。
【請求項１８】
前記第１セットの接続は、前記複数の制御ユニットの少なくとも１つを複数のデータ・パスに接続し、前記１つの制御ユニットは、前記複数のデータ・パスを制御することを特徴とする請求項１７記載の方法。
【請求項１９】
前記第２セットの接続は、複数の制御ユニットを複数のデータ・パスに接続し、各制御ユニットは、単一のデータ・パスを制御することを特徴とする請求項１７記載の方法。
【請求項２０】
第１セットのデータを受信する段階と、
記憶ユニットに前記第１セットのデータを格納する段階と、
前記第１セットの接続を使用して前記データ・パスで前記第１セットのデータを処理する段階と、
をさらに含むことを特徴とする請求項１６記載の方法。
【請求項２１】
第２セットのデータを受信する段階と、
記憶ユニットに前記第２セットのデータを格納する段階と、
前記第２セットの接続を使用して前記データ・パスで前記第２セットのデータを処理する段階と、
をさらに含むことを特徴とする請求項１６記載の方法。
【請求項２２】
格納媒体を含む物品において、
前記格納媒体は格納された命令を含み、それがプロセッサによって実行されたとき、スイッチで構成情報を受信し、複数の制御ユニットと複数のデータ・パスとの間に第１セットの接続を確立するために前記スイッチを構成することによって単一命令複数データ処理を使用して第１プロセスを実行し、および、前記制御ユニットと前記データ・パスとの間に第２セットの接続を確立するために前記スイッチを構成することによって複数命令複数データ処理を使用して第２プロセスを実行する結果となる、
ことを特徴とする物品。
【請求項２３】
前記格納された命令は、プロセッサによって実行されたとき、さらに、前記第１セットの接続は、前記複数の制御ユニットの少なくとも１つを複数のデータ・パスに接続し、前記１つの制御ユニットは前記複数のデータ・パスを制御する結果となることを特徴とする請求項２２記載の物品。
【請求項２４】
前記格納された命令は、プロセッサによって実行されたとき、さらに、前記第２セットの接続は、複数の制御ユニットを複数のデータ・パスに接続し、各制御ユニットは単一のデータ・パスを制御する結果となることを特徴とする請求項２２記載の物品。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、再構成可能な並列処理アーキテクチャに関する。
【背景技術】
【０００２】
コンピューター・アーキテクチャは、高速計算が要求されるアプリケーションの処理に必要なクロック速度を低減するために並列処理を用いる。しかしながら、いくつかの並列処理システムは静的であり、異なるプロセスまたは装置に応じて動的に変化することができない。
【０００３】
本実施例であると考えられる主題は、本明細書の結論部分で特に指摘され明確にクレームされる。しかしながら、本実施例は、その目的、特徴、および利点と共に、動作の構成および方法の両方に関して、以下の詳細な説明を添付図面と共に参照することによって最も良く理解することができる。
【発明の開示】
【０００４】
本実施例についての完全な理解を提供するために、ここでは多くの特定の詳細事項が記述される。しかしながら、これらの実施例は、特定の詳細事項の範囲を越えて実施できることを、当業者は理解するであろう。他の例では、周知の方法、手順、構成要素、および回路については、本実施例を不明瞭にしないために詳細に記述されない。ここに開示された特定の構造・特徴の詳細は代表例であり、必ずしも本実施例の範囲を制限するものではないことを理解されたい。
【０００５】
本明細書において、「一実施例」または「ある実施例」と称されるものは、本実施例に関して記述された特定の特徴、構造、または特性が、少なくとも１つの実施例に含まれることを意味することに注意されたい。本明細書中の様々な箇所で、「一実施例において」という語句が出てくるが、必ずしもその全てが同一の実施例を意味するものではない。
【０００６】
以下、図面について詳細に説明するが、それは全体を通して参照番号によって指定されており、図１には一実施例を実施するのに適したシステムが示される。図１は、システム１００のブロック図である。システム１００は複数のノードを含む。ここで使用される用語「ノード」とは、情報を表わす信号を処理することができるすべての要素、モジュール、コンポーネント、ボード、装置、またはシステムを意味する。信号は、例えば、電気信号、光信号、音響信号、化学信号などである。ただし、本実施例はこの点に制限されない。
【０００７】
システム１００は、多様なタイプの通信媒体によって接続された複数のノードを含む。ここで使用される用語「通信媒体」とは、情報信号を搬送することができる任意の媒体を意味する。通信媒体の例として、金属リード、半導体材料、ツイストペア線、同軸ケーブル、光ファイバ、無線周波数（ＲＦ）スペクトラムなどが含まれる。ここで、用語「接続」または「相互接続」、およびそれらのバリエーションは、物理的接続および／または論理的接続を意味する。ノードは、例えばネットワーク・インターフェイス・カード（ＮＩＣ）のような１またはそれ以上の入力／出力（Ｉ／Ｏ）アダプタを使用して通信媒体に接続される。Ｉ／Ｏアダプタは、例えば、所望の設定の通信プロトコル、サービス、および操作手順を使用するコンピュータまたはネットワーク装置間において通信信号を制御するために、任意の適切な技術で動作するように構成される。Ｉ／Ｏアダプタは、さらに、Ｉ／Ｏアダプタを適切な通信媒体に結合するための適切な物理的コネクタを含む。
【０００８】
一実施例において、例えば、システム１００は、セルラまたはモバイル・システムのような、情報を通信するためにＲＦスペクトラムを使用する複数のノードを有するワイヤレス・システムとして実施される。この場合、システム１００に示される１またはそれ以上のノードは、さらに、指定されたＲＦスペクトラムを介して情報信号を通信するための適切な装置およびインターフェイスを含む。かかる装置およびインターフェイスの例としては、全方向性アンテナおよびワイヤレスＲＦトランシーバが含まれる。ただし、本実施例はこの点に制限されない。
【０００９】
システム１００のノードは、異なるタイプの情報を通信するために構成される。例えば、１つのタイプの情報には「媒体情報」が含まれる。媒体情報とは、例えば、音声会話、ビデオ会議、ストリーミング・ビデオ、電子メール（「email」）メッセージ、ボイス・メール・メッセージ、英数字の記号、グラフィックス、イメージ、ビデオ、テキストなどからのデータのような、ユーザにとって意味のある内容を表わすあらゆるデータを意味する。他のタイプの情報には「制御情報」が含まれる。制御情報とは、自動システムにとって意味のある、コマンド、命令、または制御ワードを表わすあらゆるデータを意味する。例えば、制御情報は、システムを通って媒体情報をルートするため、あるいは、予め定められた方法で媒体情報を処理するようにノードに命じるために使用される。ただし、本実施例はこの点に制限されない。
【００１０】
システム１００のノードは、１またはそれ以上のプロトコルに従って媒体または制御情報を通信する。ここで使用される用語「プロトコル」とは、情報が通信媒体を介してどのように通信されるかを制御するための命令のセットを意味する。プロトコルは、例えばインターネット技術特別調査委員会（ＩＥＴＦ）、国際電気通信連合（ＩＴＵ）、インテル社（Intelは登録商標）のような会社等によって公表された標準規格のような、１またはそれ以上のプロトコル標準規格によって定義される。
【００１１】
図１で示されるように、システム１００は、ワイヤレス・ノード１０２およびワイヤレス・ノード１０４を有するワイヤレス通信システムを含む。ワイヤレス・ノード１０２，１０４は、ＲＦスペクトラムのようなワイヤレス通信媒体を介して情報を通信するために構成されたノードを含む。ワイヤレス・ノード１０２，１０４は、例えばモバイルまたはセルラ電話、ワイヤレス・アクセス・カードまたはモデムを装備したコンピュータ、ワイヤレス・パーソナル・デジタル・アシスタント（ＰＤＡ）のような携帯型クライアント装置、ワイヤレス・アクセス・ポイント、基地局、モバイル加入者センター等のような、あらゆるワイヤレス装置またはシステムを含む。一実施例において、例えば、ワイヤレス・ノード１０２および／または１０４は、インテル社によりパーソナル・インターネット・クライアント・アーキテクチャ（ＰＣＡ）に従って開発されたワイヤレス装置を含む。図１は限られた数のノードを図示するが、システム１００には任意の数のノードを使用することができると理解すべきである。さらに、本実施例はワイヤレス・システムとの関係で示されるが、ここで記述される原理は、ワイヤード通信システムでも同様に実施することができる。ただし、本実施例はこの点に制限されない。
【００１２】
図２は、一実施例に従ってシステム２００のブロック図を示す。システム２００は、例えば、ワイヤレス・ノード１０２および／または１０４の部分として実施される。図２で示されるように、システム２００は、処理システム２１２、再構成可能な通信アーキテクチャ（reconfigurable communications architecture: ＲＣＡ）モジュール２０４、および構成モジュール２０６を含み、すべてが通信バス２０８を介して接続される。処理システム２１２は、さらにプロセッサ２０２およびメモリ２１０を含む。図２は限られた数のモジュールを示すが、システム２００には任意の数のモジュールを使用することができると理解すべきである。
【００１３】
一実施例において、処理システム２１２は、例えばワイヤレス・ノード１０２および／または１０４内のホスト・システム上の任意の処理システムである。処理システム２１２は、プロセッサ２０２を含む。プロセッサ２０２は、本発明の実施例に適した速度および機能性を提供することができる、あらゆるタイプのプロセッサを含む。例えば、プロセッサ２０２は、インテル社その他によって製造されたプロセッサである。プロセッサ２０２は、さらに、デジタル信号プロセッサ（ＤＳＰ）および付属のアーキテクチャを含む。プロセッサ２０２は、さらに、例えば、ネットワーク・プロセッサ、埋込式プロセッサ、マイクロ・コントローラ、コントローラ、入力／出力（Ｉ／Ｏ）プロセッサ（ＩＯＰ）などのような専用プロセッサを含む。ただし、本実施例はこの点に制限されない。
【００１４】
一実施例において、処理システム２１２はメモリ２１０を含む。メモリ２１０は、機械読取り可能な媒体および付属のメモリ・コントローラまたはインターフェイスを含む。機械読取り可能な媒体は、プロセッサ２０２によって実行するために適合された命令およびデータを格納することができる、あらゆる媒体を含む。かかる媒体の例としては、リード・オンリ・メモリ（ＲＯＭ）、ランダム・アクセス・メモリ（ＲＡＭ）、プログラマブルＲＯＭ、消去可能なプログラマブルＲＯＭ、電子的に消去可能なプログラマブルＲＯＭ、ダブル・データ・レート（ＤＤＲ）メモリ、ダイナミックＲＡＭ（ＤＲＡＭ）、シンクロナスＤＲＡＭ（ＳＤＲＡＭ）、埋込式フラッシュ・メモリ、およびデジタル情報を格納することができるその他の媒体を含むが、これらに制限されない。
【００１５】
一実施例において、システム２００はＲＣＡモジュール２０４を含む。ＲＣＡモジュール２０４は、再構成可能なシステムである。再構成可能なシステムは、異なるタイプのアプリケーションを実行するために構成されるハードウェアおよびソフトウェアの組合せを含む。適切な再構成可能なシステムの例としては、インテル社によって開発されたＲＣＡシステムがある。
【００１６】
再構成可能なシステムは、高機能計算機システムに対する要求の高まりの結果として生じた。例えば、複数の通信プロトコルを処理することが可能であり、それによって、例えばＩＥＥＥ８０２．１１、ＩＥＥＥ８０２．１６、汎用パケット無線サービス（ＧＰＲＳ）、エンハンスドＧＰＲＳ、Ｂｌｕｅｔｏｏｔｈ、超広帯域（ＵＷＢ）、第３世代セルラ（３ＧＰＰ）の広帯域符号分割多重接続（ＷＣＤＭＡ）拡散スペクトラム、第４世代セルラ、ＩＴＵ  Ｇ．９９２．１非対称デジタル加入者回線（ＡＤＳＬ）、ＡＤＳＬ２＋のような多種多様の通信プロトコル間でワイヤレス・ノードをシームレスに切り替えることができるようなコンピュータ装置に対する要求が強まっている。かかる能力によって、例えば、ユーザは、ラップトップ・コンピューターを彼のアパートの部屋のケーブル・モデム接続間で移動させ、あるいは、それをアパート建物内のワイヤレス・ローカル・エリア・ネットワーク（ＷＬＡＮ）接続に、通勤電車に乗っている間のモバイル接続に、オフィスのローカル・エリア・ネットワーク接続に移動させるときも、インターネットまたはバーチャル・プライベート・ネットワーク（ＶＰＮ）を維持し続けることが可能になる。他の例として、複数の異なる通信プロトコル間での切り替えを可能にする能力は、異なる通信標準規格を採用する国々または地域間をユーザが移動するような出張において有用であろう。
【００１７】
コンピュータ・システムは、典型的にはハードウェアとソフトウェアの組合せを含むが、システムにおけるそれぞれの相互の役割および割合は多様である。ソフトウェアベースのシステムは、典型的には、汎用ハードウェア上でコンピュータが読取り可能な命令を実行することにより動作する。他方、ハードウェアベースのシステムは、例えば特定用途向け集積回路（ＡＳＩＣ）のような特定の動作を行うために特別に設計された回路により構成される。その結果、ハードウェアベース・システムは、一般にソフトウェアベースのシステムよりも高い性能を有するが、典型的には、それらの設計目的である特定のタスク以外のタスクを行うための柔軟性を欠く。
【００１８】
再構成可能なシステムは、ハイブリッドなアプローチを代表するものであり、そこで設計または構成されるファイルは、特別に設計されたハードウェアを再構成し、専用のハードウェアによって提供される性能に近い性能を達成するために使用される。さらに、再構成可能なシステムは、新しい要求、プロトコル、および標準規格に適応するための能力を含む、ソフトウェアベースのシステムの柔軟性を提供する。したがって、例えば再構成可能なシステムは、各プロトコルのための特定目的のＡＳＩＣベースのデジタル信号プロセッサ（ＤＳＰ）を必要とすることなく、効率的に多種多様の通信プロトコルを処理するために使用することができるので、チップ・サイズ、コスト、および／または電力消費を削減することができる。
【００１９】
一実施例において、ＲＣＡモジュール２０４は、複雑な計算を実行するために使用される複数の実行ユニットを含む。１つの実行ユニットによって生成された結果は、他の実行ユニットへの入力として使用されるか、メモリ内に格納されるか、あるいは他の処理システムに送られる。計算は、ハードウェア要素間で分配することができるので、計算の異なる部分は、それらが最も効率的に実行される実行ユニットに割り当てられる。例えば、多くのワイヤレスまたはワイヤード通信システムによって行われる物理層処理は、しばしば、数的に集中的な演算と、それほど集中的ではないが、より汎用演算との組合せを含む。これは、高速のデータ収集がしばしば必要とされるパケット・データを使用するプロトコルには特に当てはまる。例えば、８０２．１１ａプリアンブルを処理するためには、典型的には、高速のプリアンブル検出、高速の自動利得制御（ＡＧＣ）調整、および高速のタイミング同期が必須である。これらの演算は、集中的な数値演算を効率的に行うことができるデータ・パス実行ユニットと、汎用演算を実行することができる整数ユニットとの組合せを含むプロセッサによって、有利に行うことができる。
【００２０】
ある実施例において、ＲＣＡモジュール２０４の１またはそれ以上の実行ユニットは、並列処理を実行するために構成され、レイテンシを低減し、かつシステム全体の性能を増強する。より詳しくは、ＲＣＡモジュール２０４は、単一命令複数データ（ＳＩＭＤ）並列処理、および複数命令複数データ（ＭＩＭＤ）並列処理を実行するために構成される。
【００２１】
一実施例において、ＲＣＡモジュール２０４の１またはそれ以上の実行ユニットは、ＳＩＭＤ処理を実行するために構成される。ＳＩＭＤ処理とは、単一命令を使用して複数の処理データ・パスを制御することを意味する。各データ・パスは、複数片のデータを使用して同一動作を行う。この種の並列処理は、典型的には、例えば有限インパルス応答（ＦＩＲ）フィルタ、乗算累計動作、高速フーリエ変換（ＦＦＴ）のバタフライ処理などのような、通常の繰り返し演算のために使用される。
【００２２】
一実施例において、ＲＣＡモジュール２０４の１またはそれ以上の実行ユニットは、ＭＩＭＤ処理を実行するために構成される。ＭＩＭＤ処理は、処理データ・パスのそれぞれが個別の命令によって制御されるときに生じる。ＭＩＭＤ処理では、異なる動作がデータ・パス上で行われる。この種の並列処理は、典型的には、異種の処理要求を具備したアプリケーションで使用される。例えば、超長命令語（ＶＬＩＭ）プロセッサは、典型的にはＭＩＭＤ処理を使用する。
【００２３】
一実施例において、システム２００は構成モジュール２０６を含む。構成モジュール２０６は、ＲＣＡモジュール２０４を構成するための構成情報を格納し、与えられたアプリケーションを処理する。例えば、構成情報は、ＲＣＡモジュール２０４を構成するために使用され、第１構成内でＳＩＭＤ処理を行なって第１プロセスを実行する。他の例では、構成情報は、ＲＣＡモジュール２０４を構成するために使用され、第２構成内でＭＩＭＤ処理を行なって第２プロセスを実行する。構成モジュール２０６は、システム２００の個別のモジュールとして示されるが、構成モジュール２０６は、メモリ２１０内に格納された１セットのプログラム命令およびデータを含むと理解することができる。ただし、本実施例はこの点に制限されない。
【００２４】
一般的な動作では、システム２００は、電力がシステム２００に供給されたときに始動する。初期化プロセス中に、処理システム２１２は、構成モジュール２０６の一部として格納された構成情報を使用してＲＣＡモジュール２０４を構成する。そして、ＲＣＡモジュール２０４は、構成情報に従って多様な機能を行う準備を整える。
【００２５】
一実施例において、ＲＣＡモジュール２０４の構成は、特定のアプリケーションに適合させるために修正される。かかる修正は、周期的に、または外部の駆動イベントに従って行なわれる。後者の例としては、ユーザ、アプリケーション、装置などによって送出されたＲＣＡモジュール２０４を再構成するための明示的な命令の受け取りを含む。ＲＣＡモジュール２０４の構成能力によって、ＲＣＡモジュール２０４は、与えられたプロセスのための特別な並列処理技術を行うことが可能になる。並列処理技術は、例えば、１００万命令／秒（ＭＩＰＳ）の処理速度、待ち時間、所要電力などのような多数の異なる要因に従って選択される。ＲＣＡモジュール２０４は、機能ごとに、ＳＩＭＤ処理、ＭＩＭＤ処理またはそれらの任意の組合せを実行する。
【００２６】
図３は、一実施例に従ったシステム３００のブロック図を示す。システム３００は、プロセッサ３０２、ＲＣＡモジュール３０４、およびアナログ・フロント・エンド（ＡＦＥ）３０６を含む。プロセッサ３０２およびＲＣＡモジュール３０４は、それぞれ、例えばプロセッサ２０２およびＲＣＡモジュール２０４を表わす。図３で示されるように、ＲＣＡモジュール３０４は、例えば網目状トポロジのような任意の数の異なるトポロジに従って通信媒体を介して接続された、複数の処理要素（ＰＥ）１−Ｎ、複数の入力／出力（Ｉ／Ｏ）ノード１−Ｍ、および複数のルーティング・エンジン（Ｒ）１−Ｐを含む。Ｉ／Ｏノード１−Ｍは、プロセッサ３０２およびＡＦＥ３０６のような多様な外部装置に接続される。図３は限られた数の要素を示すが、任意の数の要素をシステム３００内で使用することができると理解すべきである。
【００２７】
一実施例において、ＲＣＡ３０４は、フレキシブル・アクセラレータの異種のアレイ、データ駆動制御、物理層（ＰＨＹ）およびより低いメディア・アクセス制御（ＭＡＣ）処理を提供するための網目状ネットワークから成るインフラストラクチャを形成する。ＲＣＡ３０４は、例えばソフトウェア・ディファインド・ラジオ（ＳＤＲ）のようなワイヤレス装置のために、デジタル・ベースバンド（ＰＨＹ層）およびより低いＭＡＣ（データ・リンク層）の要素として動作する。ただし、本実施例はこの点に制限されない。
【００２８】
一実施例において、ＲＣＡ３０４は、ＰＥ１−Ｎを含む。ＰＥ１−Ｎは、基本的な("coarse" grained)処理要素の異種構成を含む。各ＰＥは、複数のプロトコルをサポートするために構成可能であり、それに匹敵する専用ハードウェア・コンポーネントの領域および電力に近い領域および電力を有するように設計することができる。各ＰＥは、データ駆動制御を使用し、所要レベルの再構成可能性および拡張性のパラメータに従って実行される。ＰＥ１−Ｎは、要素Ｒ１−Ｍを介して比較的低いレイテンシの網目内で接続され、それによってアーキテクチャは、潜在的に前の具体例(instantiation)に影響されることなく規模を変更することが可能になる。
【００２９】
一実施例において、ＰＥ１−Ｎは、特に一般的な通信アプリケーション向けに適合される。そのため、ＰＥ１−Ｎは、比較的基本的な機能を含み、それは種々雑多の汎用動作と同様に、特にフロント・エンドおよびバック・エンド処理機能に向いている。ＰＥ１−Ｎは、それぞれが異なる動作を行うように設計されるが、それらはすべて、ＳＩＭＤおよび／またはＭＩＭＤの並立性を包含する同様の構成上のアプローチを共有する。さらに、それらはすべて、それらが意図した機能を実行するための特別の設計によって最適化された実行ユニットを有し、一方で、パラメータ変更のための合理的な柔軟性を許容する。
【００３０】
一実施例において、ＰＥ１−Ｎの１またはそれ以上のＰＥは、汎用マイクロコード・アクセラレータ（ＧＰＭＣＡ）として実施される。ＧＰＭＣＡは、例えば、マトリクス反転、シンボルのデコードおよびエンコード、逆スクランブル、巡回冗長検査（ＣＲＣ）処理のような一般的な動作のセットを行うために構成される。さらに、ＰＥは、例えば、ＳＩＭＤ処理、ＭＩＭＤ処理のような動作のための並列処理を行うために構成される。かかるＰＥについては、図４でより詳細に説明される。
【００３１】
一実施例において、ＲＣＡ３０４は、Ｉ／Ｏノード１−Ｍを含む。Ｉ／Ｏノード１−Ｍは、プロセッサ３０２のような多様な外部装置とのインターフェイスとして動作する。プロセッサ３０２は、例えば埋込みコントローラを含む。Ｉ／Ｏノード１−Ｍは、さらにＡＦＥ３０６とインターフェイスされる。ただし、本実施例はこの点に制限されない。
【００３２】
一実施例において、システム３００は、ＡＦＥ３０６のような１またはそれ以上のアナログＲＦフロント・エンド装置を含む。ワイヤレス・ノード１０２および／または１０４からの送信のために、ＡＦＥ３０６は、デジタル化されたベースバンドのサンプルをＲＦに変換する。同様に、受信ＲＦ信号のために、ＡＦＥ３０６は、余分なＲＦバンドをデジタル化されたベースバンドに変換する。ただし、本実施例はこの点に制限されない。
【００３３】
一般的な動作では、プロセッサ３０２は、必要なセットアップ情報をＰＥ１−ＮおよびＩ／Ｏノード１−Ｍのそれぞれにダウンロードするために必要とされる全体的な制御および監視、ならびにＡＦＥ３０６のために必要とされるあらゆるセットアップ情報を提供する。その制御機能に加えて、プロセッサ３０２は、ＭＡＣ層の機能動作を提供する。ＰＥ１−Ｎの網目内の各位置には、網目状相互接続の一部であるルーティング・エンジン（Ｒ１−Ｍ）がある。ＰＥ１−Ｎのそれぞれは、Ｒ１−Ｍに電気的に接続される。初期化中に、プロセッサ３０２は、構成データ・パケットを使用して、網目状相互接続を介してＰＥ１−Ｎのそれぞれにデータ・メモリの構成情報および最初のコンテンツをダウンロードする。一旦、全ての構成情報がダウンロードされ、ＰＥ１−Ｎが初期化されると、処理動作が開始する。
【００３４】
システム３００は、送信および受信機能のような複数の異なる機能を行う。送信機能を行うとき、プロセッサ３０２は、ＰＨＹベースバンド処理のためにＰＥ１−Ｎにデータを送る。ベースバンド処理が行われると、デジタル化されたサンプルは、ＲＦに変換するために１またはそれ以上のＡＦＥ３０６に流され、次に、装着されたアンテナによって送信される。受信機能については、ＡＦＥ３０６はアンテナからＲＦ信号を受信し、ＲＦ信号をベースバンドに変換し、デジタル・ベースバンド処理のためのＰＥ１−Ｎにデジタル化されたサンプルを送る。一旦処理されると、デジタル・データは、ＭＡＣ層処理のためにプロセッサ３０２に送られる。
【００３５】
図４は、一実施例に従ったシステム４００のブロック図を示す。システム４００は、例えばシステム３００のＰＥ１−ＮのようなＰＥを表わす。あるいは、システム４００は、再構成可能なハードウェアおよびソフトウェア要素を有することができる任意の処理システムの一部として実行される。ただし、本実施例はこの点に制限されない。
【００３６】
一実施例において、システム４００は、例えば、ＩＥＥＥ８０２．１１、ＩＥＥＥ８０２．１６、ＧＰＲＳ、ＥＧＰＲＳ、Ｂｌｕｅｔｏｏｔｈ、ＵＷＢ、３ＧＰＰ、ＷＣＤＭＡ、４Ｇ、ＩＴＵ  Ｇ．９９２．１  ＡＤＳＬおよびＡＤＳＬ２＋などの多様な通信プロトコルのためのベースバンドのシンボル処理のような動作を行う役割を果たすＧＰＭＣＡビルディング・ブロックを含む。ただし、通信プロトコルのタイプは、これらに制限されない。
【００３７】
一実施例において、シンボル処理は、複数の異なるデータ・パスを必要とする。システム４００は、与えられたプロトコルに適合するために構成される。さらに、異なる並列処理構造は、与えられたプロトコル内の異なる機能に使用することができる。その結果、システム４００は、例えば、ワイヤレス・ノード１０２および／または１０４のような装置のために、全体的なクロックおよび所要電力を低減する。
【００３８】
図４で示されるように、システム４００は、スイッチ４０４に接続された複数の制御ユニット１−Ｒを含む。制御ユニット１−Ｒおよびスイッチ４０４は、主制御器４０２に接続される。スイッチ４０４は、さらに、データ・パス（ＤＰ）１−Ｓに接続される。ＤＰ１−Ｓは、メモリ４０６に接続される。図４では限られた数の制御ユニットおよびデータ・パスが示されているが、所定の数をシステム４００内で使用することができ、しかも、それは本実施例の範囲内であると理解すべきである。
【００３９】
本実施例において、システム４００は制御ユニット１−Ｒを含む。システム４００の動作は、１またはそれ以上の制御ユニット１−Ｒによって制御される。制御ユニット１−Ｒのそれぞれは、制御ユニットがシステム４００の多様なコンポーネントに対して実行する機能に由来する機能制御信号を送るために構成される。例えば、制御ユニット１は、スイッチ４０４を介してＤＰ１に機能制御信号を送り、メモリ４０６から読み取られたデータ上で行われる動作を指定する。一実施例において、制御ユニット１−Ｒのそれぞれは、単一の機能を表わす機能制御信号を送る。制御ユニット１−Ｒのそれぞれは、異なる機能を提供するために再構成可能である。一実施例において、多様なＤＰ１−Ｓを再構成するために使用される信号は、１またはそれ以上の制御ユニット上で走るステート・マシンによって各クロック・サイクルで送られる。
【００４０】
一実施例において、システム４００は、ＤＰ１−Ｓを含む。ＤＰ  １−Ｓは、一般に、例えばＤＳＰ計算に関するような数的に集中した動作を行うために設計される。ＤＰ１−Ｓは、制御ユニット１−ＲおよびＤＰ１−Ｓ間の関係に基づき、ＳＩＭＤ処理またはＭＩＭＤ処理を使用して、それらの並列的な処理を実行するために構成される。各データ・パスは、所要のセットの動作ために適切な任意のロジックで構成される。例えば、データ・パスは、マルチ入力前加算器、乗算器、アキュミュレータ・レジスタ等を含む。一実施例において、これらの要素は、高速ＦＦＴ、フィルタ動作等のような異なる機能を実行するために、制御ユニットによって再構成することができる。
【００４１】
一実施例において、システム４００はスイッチ４０４を含む。スイッチ４０４は、制御ユニット１−ＲとＤＰ１−Ｓとの間の信号を切り替えることができる任意のスイッチを含む。スイッチは、どの制御ユニットがどのＤＰに接続されるかを制御する。その接続によって、制御ユニットは、制御信号を接続されたＤＰに送ることができる。スイッチは、例えば、クロスバースイッチ、バックプレーンなどを含む。本実施例は、この点に制限されない。
【００４２】
一実施例において、システム４００は、主制御器４０２を含む。主制御器４０２は、構成モジュール２０６から構成情報を受信し、与えられたアプリケーションに従って接続を設定するためにスイッチ４０４を構成する。例えば、単一の制御ユニット（例えば制御ユニット１）は、４つのデータ・パスＤＰ１−Ｓをすべて制御するために構成される。この場合、主制御器４０２は、制御ユニット１をＤＰ１−Ｓに接続するためにスイッチ４０４を構成し、制御ユニット１がＤＰ１−Ｓに制御信号を送ることを可能にする。これは、例えばＳＩＭＤ処理を行なうために適切な構成である。他の例では、制御ユニット１−Ｒのそれぞれは、対応するＤＰ１−Ｓをそれぞれ制御するために構成される。制御ユニット１−Ｒのそれぞれは、それぞれが対応するＤＰ１−Ｓにのみ制御信号を送ることができる。これは、例えばＭＩＭＤ処理を行なうために適切な構成である。さらに、制御ユニット１−ＲおよびＤＰ１−Ｓの任意の構成を実施することもできる。例えば、２×２の構成は、２つのデータ・パスを制御する１つの制御ユニット、および他の２つのデータ・パスを制御する他の制御ユニットで構成される。ただし、本実施例はこの点に制限されない。
【００４３】
一実施例において、システム４００はメモリ４０６を含む。メモリ４０６は、システム４００によって実行されるデータを格納するために、任意のタイプのメモリを含む。メモリ４０６は、パケットの形で他のＰＥからのデータを蓄積する。受信データは、メモリ４０６に格納される。受信データが処理を開始するための十分な量になったとき、制御ユニット１−Ｒは、ＤＰ１−Ｓに制御信号の送信を開始し、データの処理が開始される。
【００４４】
上記システムのための動作は、さらに、以下の図および実施例に関して説明される。いくつかの図は、構成可能なロジックを含む。ここに示されるような図は、特定の構成可能なロジックを含むが、この構成可能なロジックは、ここに記述された一般的な機能性をどのように実行することができるのかという例を単に提供するものであると理解されたい。さらに、与えられた構成可能なロジックは、他に順序が示されない限り、必ずしも示された順序で実行する必要はない。加えて、与えられた構成可能なロジックは、ここでは上述のモジュール内で実行されると記述されているが、構成可能なロジックは、システム内のいかなる場所でも実行可能でり、それは本実施例の範囲内であると理解すべきである。
【００４５】
図５は、一実施例に従った構成可能なロジック５００のためのブロック・フローチャートを示す。図５は、一実施例に従った、ＰＥによって行われる動作を表わす構成可能なロジック５００を示す。構成可能なロジック５００に示されるように、構成情報はブロック５０２のスイッチで受信される。スイッチは、複数の制御ユニットと複数のデータ・パスとの間に第１セットの接続を確立するために構成され、ブロック５０４でＳＩＭＤ処理を使用して第１のプロセスを実行する。スイッチは、制御ユニットとデータ・パスとの間に第２セットの接続を確立するために構成され、ブロック５０６でＭＩＭＤ処理を使用して第２のプロセスを実行する。例えば、それぞれの制御ユニットは、単一のプログラム命令の実行を制御する。
【００４６】
一実施例において、制御ユニットのそれぞれは、単一のプログラム命令の実行を制御するために構成される。プログラム命令は、異なるアプリケーションに従って変化する。
【００４７】
一実施例において、第１セットの接続は、第１構成内の制御ユニット１−Ｒとデータ・パスＤＰ１−Ｓとを接続するためにスイッチ４０４を構成し、ＳＩＭＤ処理を実行する。例えば、第１セットの接続は、制御ユニットの少なくとも１つを複数のデータ・パスＤＰ１−Ｓに接続し、１つの制御ユニットが複数のデータ・パスＤＰ１−Ｓを制御する。この構成において、例えば、データ・パスＤＰ１−Ｓのそれぞれは、メモリ４０６に格納されたデータを使用して同じセットの並列動作を実行するために構成される。これは、直交周波数分割（ＯＦＤＭ）キャリア上でシンボル解読を実行するような多くの通信装置に適している。同様の動作がすべてのキャリア上で実行されるので、ＳＩＭＤ処理は改善されたシステム性能をもたらす。ただし、本実施例はこの点に制限されない。
【００４８】
一実施例において、第２セットの接続は、第２の構成内で制御ユニット１−Ｒをデータ・パスＤＰ１−Ｓに接続するためにスイッチ４０４を構成し、ＭＩＭＤ処理を実行する。例えば、第２セットの接続は、複数の制御ユニットを複数のデータ・パスに接続し、各制御ユニットが単一のデータ・パスを制御する。この構成では、例えば、データ・パスＤＰ１−Ｓのそれぞれは、メモリ４０６に格納されたデータを使用して異なるセットの並列動作を実行するために構成される。これは、ＰＨＹ制御ステート・マシン、および、インターリービングおよび多重化のような全面的なデータ・フロー処理を実行するような多くの通信アプリケーションに適している。このグループは、ある場合には並列に実行する必要がある異種の低ＭＩＰＳ動作を含み、したがって、ＭＩＭＤ処理はシステム性能を改善するために実行される。ただし、本実施例はこの点に制限されない。
【００４９】
本実施例は、所要の計算速度、電力レベル、耐熱性、処理サイクル・バジェット、入力データ速度、出力データ速度、メモリ・リソース、データ・バス速度、および他の性能制限のような任意の数の要因に従って変化することが可能なアーキテクチャを使用して実行される。例えば、一実施例は、前述のようにプロセッサによって実行されるソフトウェアを使用して実施される。他の例において、一実施例は、ＡＳＩＣ、プログラム可能論理回路（ＰＬＤ）またはＤＳＰ、および付属のハードウェア構造のような専用ハードウェアとして実施される。さらに他の例において、一実施例は、プログラムされた汎用コンピュータ・コンポーネントおよびカスタム・ハードウェア・コンポーネントの任意の組合せによって実施される。ただし、本実施例はこの点に制限されない。
【００５０】
本実施例は、１またはそれ以上のモジュールに関して記述されている。ある実施例は、説明を進めるために「モジュール」に関して記述されているが、１個、いくつか、または全てのモジュールの代わりに、１またはそれ以上の回路、コンポーネント、レジスタ、プロセッサ、ソフトウェア・サブルーチン、またはそれらの任意の組合せを用いることができる。ただし、本実施例はこの点に制限されない。
【００５１】
以上の記述では本実施例の特定の機能が示されているが、当業者であれば、多くの修正、代替、変更、および均等について想到するであろう。したがって、本実施例の適正な精神に該当する限り、添付の請求項はかかる修正や変更を全てカバーすることを意図していると理解すべきである。
【図面の簡単な説明】
【００５２】
【図１】システム１００のブロック図を示す。
【図２】システム２００のブロック図を示す。
【図３】システム３００のブロック図を示す。
【図４】システム４００のブロック図を示す。
【図５】構成可能なロジック５００のためのフローチャートを示す。
【図１】
2007531118.tif 000002
【図２】
2007531118.tif 000003
【図３】
2007531118.tif 000004
【図４】
2007531118.tif 000005
【図５】
2007531118.tif 000006
【国際調査報告】
2007531118.tif 000007
2007531118.tif 000008