(57)【要約】  本発明は、スカラーデータパスとスカラーレジスタファイルとを提供し、スカラー命令を実行するように設けられたスカラークラスタと、複数のベクトルクラスタがそれによってスカラークラスタと接続される少なくとも２つの相互接続されたベクトルクラスタとを備えたプログラマブルデバイスに関する。少なくとも２つのベクトルクラスタのそれぞれは、ベクトルデータパスとベクトルレジスタファイルとを提供し、少なくとも２つのベクトルクラスタの任意の他のベクトルクラスタによって実行されるベクトル命令と異なる少なくとも１つのベクトル命令を実行するように設けられる。
2010530677.tif 000002
【特許請求の範囲】
【請求項１】
スカラーデータパスとスカラーレジスタファイルとを提供し、スカラー命令を実行するように設けられたスカラー部と、
少なくとも２つの相互接続されたベクトル部とを備えたプログラマブルデバイスであって、
上記複数のベクトル部は、上記スカラー部に接続され、
上記少なくとも２つのベクトル部のそれぞれは、ベクトルデータパスとベクトルレジスタファイルとを提供し、上記少なくとも２つのベクトル部の任意の他のベクトル部によって実行されるベクトル命令と異なる少なくとも１つのベクトル命令を実行するように設けられたプログラマブルデバイス。
【請求項２】
上記スカラー部及び上記少なくとも２つのベクトル部のそれぞれは、複数のそれぞれの命令を記憶する局所記憶手段を備えた請求項１記載のプログラマブルデバイス。
【請求項３】
上記複数のベクトル部の間のデータ通信のための、ソフトウェア制御される相互接続をさらに備えた請求項１又は２記載のプログラマブルデバイス。
【請求項４】
上記少なくとも２つのベクトル部の第１のベクトル部は、算術論理演算装置の命令のための演算子を備え、
第２のベクトル部は、乗算演算子を備えた請求項１から３のうちのいずれか１つの請求項記載のプログラマブルデバイス。
【請求項５】
上記少なくとも１つのベクトル命令を提供するように設けられたプログラミング手段をさらに備えた請求項１から４のうちのいずれか１つの請求項記載のプログラマブルデバイス。
【請求項６】
第２のスカラー部及び３つの相互接続されたベクトル部をさらに備えた請求項１から５のうちのいずれか１つの請求項記載のプログラマブルデバイス。
【請求項７】
それぞれのベクトルレジスタファイルは、３つの読み出しポート及び１つの書き込みポートを有する請求項１から６のうちのいずれか１つの請求項記載のプログラマブルデバイス。
【請求項８】
上記複数の読み出しポートのうちの２つは、上記ベクトルデータパスにおける機能ユニット専用である請求項７記載のプログラマブルデバイス。
【請求項９】
上記複数の読み出しポートのうちの１つは、上記複数のベクトルスロットの間の読み出しのために設けられた請求項７又は８記載のプログラマブルデバイス。
【請求項１０】
上記少なくとも２つのベクトル部のベクトル部において実行可能なすべてのベクトル命令は、任意の他のベクトル部において実行可能なベクトル命令と異なる請求項１から９のうちのいずれか１つの請求項記載のプログラマブルデバイス。
【請求項１１】
ＩＥＥＥ８０２．１１ａ／ｇ／ｎ，ＩＥＥＥ８０２．１６ｅ，３ＧＰＰ−ＬＴＥを含む規格のグループに属する規格にしたがって通信を実行するようにさらに設けられた請求項１から１０のうちのいずれか１つの請求項記載のプログラマブルデバイス。
【請求項１２】
請求項１から１２のうちのいずれか１つの請求項記載のプログラマブルデバイスを備えたデジタルフロントエンド回路。
【請求項１３】
請求項１から１２のうちのいずれか１つの請求項記載のプログラマブルデバイスを備えたソフトウェア無線端末。
【請求項１４】
請求項１から１１のうちのいずれか１つの請求項記載のプログラマブルデバイス上のアルゴリズムのための命令セットを自動的に設計する方法であって、
高水準プログラミング言語で上記アルゴリズムを記述するステップと、
上記アルゴリズムをデータフローグラフに変換するステップと、
プロファイリングを実行して、上記データフローグラフの起動を評価するステップと、
上記プロファイリングの結果に基づいて上記命令セットを導出するステップとを備えた方法において、
上記方法はさらに、スロットごとの命令の数が最小化されるように、上記命令セットの部分集合を上記スカラー部及び上記少なくとも２つのベクトル部に割り当てるステップを備えたことを特徴とする方法。
【請求項１５】
請求項１から１１のうちのいずれか１つの請求項記載のプログラマブルデバイスを用いて、複数のデータパケットの間の相関を解析するステップを備えた受信されたデータパケットのパケット検出のための方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ソフトウェア無線プラットフォームでの使用に適したデジタルプログラマブルデバイスに関し、特に、高いデューティサイクルと、プログラム能力において緩和された、しかしゼロではない、必要条件とを有する機能性に適したデジタルプログラマブルデバイスに関する。
【背景技術】
【０００２】
ソフトウェア無線（ＳＤＲ）は、無線ネットワーク及びユーザ端末のための再構成可能なシステムアーキテクチャを使用可能にするハードウェア技術及びソフトウェア技術の集合である。ＳＤＲは、ソフトウェアのアップグレードを用いることによって、適合され、更新され、又は強化されるマルチモードで、マルチバンドで、多機能な無線装置を構築する問題に対して、効率的でかつ比較的安価な解決方法を提供する。したがって、ＳＤＲは、無線コミュニティ内の幅広い分野にわたって適用可能である実現技術として考えられる。
【０００３】
様々な無線規格の継続的な増大、及びＩＣの設計並びにハンドセットの統合に関係したコストの増加は、このような再構成可能な無線プラットフォーム上で無線規格を実装することを、近い将来において唯一の実行可能なオプションにする。プラットフォームは、アプリケーションがその上で実行されてもよいフレームワークを意味する。したがって、ＳＤＲは、必要な性能及び柔軟性を提供する効果的な方法である。
【０００４】
（Ｃなどの）高水準言語からプログラム可能な場合、ＳＤＲはコスト効率が高いマルチモードな端末を使用可能にするが、まだ、専用のハードウェアによる解決方法と比較して、重大なエネルギー損失という欠点がある。したがって、プログラム能力とエネルギー効率とは、慎重にバランスをとられなければならない。携帯型装置の統合に要求されるレベルにエネルギー効率を維持するために、抽象化が、全体の平均電力に対する抽象化の影響が十分に低い場合、又は結果として得られる追加の柔軟性が改善されたエネルギー管理によって活用されうる（目標とされる柔軟性）場所においてのみ、導入されてもよい。
【０００５】
多くの異なるアーキテクチャスタイルが、ＳＤＲのためにすでに提案されている。これらのほとんどは、無線物理層における処理の重要な特徴、すなわち高いデータレベルの並列性（ＤＬＰ（ｄａｔａ  ｌｅｖｅｌ  ｐａｒａｌｌｅｌｉｓｍ））及びデータフローの支配（dominance）に留意して設計される。目標とされる柔軟性と、無線システムではエリアがエネルギー効率と部分的に交換されるという事実とは、世代交代のマルチプロセッサシステムオンチップ（ＭＰＳＯＣ）アーキテクチャを要求し、そのアーキテクチャでは、伝送方法の異なるタスクが、最小のコストでちょうど必要な性能を提供する特定のエンジン上で実施される。
【０００６】
実際には、無線規格の実施は、変調及び復調に次いで、媒体アクセス制御（ＭＡＣ）のための機能性、及びバーストベースの通信の場合は信号検出並びに時間同期を含む。高いＤＬＰは、定義により制御支配型でありかつ（例えば、ＲＩＳＣ上で）別々に実施されるべきであるＭＡＣ処理については保持されない。さらに、パケット検出及び粗い時間同期は、パケットの変調及び復調よりも顕著に高いデューティサイクルを有する。
【０００７】
対照的に、高いデューティサイクルを有する上記機能性は、通常、プログラム能力の点では、緩和された必要条件を有する。典型的に、パケット検出及び粗い時間同期の特定の機能性は、（ソースコードのサイズの点で）全体の機能性のうちの５％未満を占める。したがって、上記高いデューティサイクルの機能性がマッピングされるアーキテクチャは、（例えばＣ言語などの）高水準言語のプログラム能力を提供することなく最適化される。後述する本発明は、主として、高いデューティサイクルを有する上記機能性に関するが、これに限らない。
【０００８】
プログラム能力の点で緩和された必要条件を有する無線アプリケーションのための効率的なデジタル信号処理は、典型的に、ベクトル処理を仮定する。このベクトル処理では、命令が発行されるとき、同様の演算が、データベクトルと呼ばれるデータ要素の複数の集合からなる複数のオペランドに並列に適用される。データ要素はまた、ベクトルの方法でレジスタファイルに記憶される。
【０００９】
多くの実施例では、ベクトル処理は、スカラー（すなわち、単一のデータ要素）のオペランドのみが考慮されるスカラー処理と組み合わせられる（非特許文献１及び非特許文献２参照。）。その結果、２つのクラスの命令、すなわち、主としてアドレス計算並びに制御のためのスカラー命令と、主として計算主体のタスクのためのベクトル命令とが使用される。したがって、このようなプロセッサは、スカラー命令及びベクトル命令を並列に計算することができるべきである。従来技術で一般に用いられるアプローチは、別々のスカラー命令スロットとベクトル命令スロットとを有する超長命令語（ＶＬＩＷ）を使用する。
【００１０】
従来技術の解決方法は、いくつかの重要な欠点を有する。アダー及びマルチプライヤなどの多くの異なる演算子（オペレータ）が、スカラースロット及びベクトルスロットで様々な命令を処理するために必要とされる。これらの演算子の利用は、一度に１つの命令／スロットのみが実行されるので、非常に低いことがある。よりよい性能のために、スロットの数が増加されてもよい。しかし、これはまた、設計での演算子の数を増加させ、演算子の利用を改善しない。さらに、ＶＬＩＷプロセッサにおいて発行スロットの数を増加させることは、より高価な命令フェッチのコストに達し、かつ通常、電力を多く必要とするマルチポートのレジスタファイルを要求する。
【００１１】
（ＳＤＲのような）特定のアプリケーションのために設計されていないとき、ＶＬＩＷ プロセッサは、純粋に機能的なアプローチにしたがって、命令スロットごとの演算子の数を削減するように最適化される。例えば、３つの命令スロットを有するプロセッサでは、第１のスロットが読み出し／記憶演算専用にされ、第２のスロットがＡＬＵ演算専用にされ、かつ第３のスロットが積和演算専用にされる。しかしながら、このアプリケーション不可知論（application-agnostic）アプローチは、アプリケーションがこれらのタイプの演算のアンバランスな利用統計を有する場合、非効率的な演算子の利用をもたらす。
【００１２】
反対に、（単一発行の）特定用途向け命令セットプロセッサ（ＡＳＩＰ）が最適化されるとき、演算子の数は、目標とされるアプリケーションにおける演算利用統計に基づいて、命令を定義することによって最小化される。
【００１３】
演算子利用の点での特定用途向けＶＬＩＷプロセッサの効率性は、これ以上の命令の定義に対してだけでなく、多数の並列スロットへの命令の割り当てに対する演算のプロファイリングに基づいてＡＳＩＰの最適化アプローチを一般化することによって、顕著に高められる。
【先行技術文献】
【非特許文献】
【００１４】
【非特許文献１】van Berkel et al., "Vector processing as an enabler for software-defined radio in handsets from 3G+WLAN onwards", SDR Forum Technical Conference，2004.
【非特許文献２】Rounioja and Puusaari, "Implementation of an HSDPA receiver with a customized vector processor", SoC2006, November, 2006.
【非特許文献３】Rixner et al., "Register organization for media processing", HPCA, January, 2000, pp. 375-386.
【発明の概要】
【発明が解決しようとする課題】
【００１５】
本発明は、最大化された利用を有した最小の演算子を有する複数の実行スロットを備えたプログラマブルデバイスを提供することを目的とする。本発明はまた、密なスケジューリングを達成するために、複数のスロットへの命令の割り当てを最適化し、かつ命令フローをスケジューリングし制御する方法を提供することを目的とする。
【課題を解決するための手段】
【００１６】
本発明は、スカラーデータパスとスカラーレジスタファイルとを提供し、それによってデータパスとレジスタファイルとが接続され、スカラー命令を実行するように設けられたスカラー部と、複数のベクトル部がそれによってスカラー部と接続される少なくとも２つの相互接続されたベクトル部とを備えたプログラマブルデバイスに関する。上記少なくとも２つのベクトル部のそれぞれは、互いに接続されたベクトルデータパスとベクトルレジスタファイルとを提供し、上記少なくとも２つのベクトル部の任意の他のベクトル部によって実行されるベクトル命令と異なる少なくとも１つのベクトル命令を実行するように設けられる。
【００１７】
好ましい実施形態では、上記スカラー部及び上記少なくとも２つのベクトル部のそれぞれは、いくつかのそれぞれの命令を記憶する局所記憶手段を備える。
【００１８】
好ましくは、上記プログラマブルデバイスは、上記複数のベクトル部の間のデータ通信のための、ソフトウェア制御される相互接続をさらに備える。
【００１９】
有利に、上記少なくとも２つのベクトル部の第１のベクトル部は、算術論理演算装置の命令のための演算子を備え、第２のベクトル部は、乗算演算子を備える。
【００２０】
もう１つの好ましい実施形態では、上記プログラマブルデバイスは、上記少なくとも１つのベクトル命令を提供するように設けられたプログラミング手段を備える。
【００２１】
上記プログラマブルデバイスは、第２のスカラー部及び３つの相互接続されたベクトル部をさらに備えてもよい。
【００２２】
有利に、それぞれのベクトルレジスタファイルは、３つの読み出しポート及び１つの書き込みポートを有する。上記複数の読み出しポートのうちの２つは、機能ユニット専用である。上記複数の読み出しポートのうちの１つは、上記複数のベクトルスロットの間の読み出しのために設けられる。これは、クラスタ間の読み出しと呼ばれる。
【００２３】
好ましい実施形態では、上記少なくとも２つのベクトル部のベクトル部において実行可能なすべてのベクトル命令は、任意の他のベクトル部において実行可能なベクトル命令と異なる。
【００２４】
上記本発明のプログラマブルデバイスは、有利に、ＩＥＥＥ８０２．１１ａ／ｇ／ｎ，ＩＥＥＥ８０２．１６ｅ，３ＧＰＰ−ＬＴＥを含む規格のグループに属する規格にしたがって通信を実行するように設けられる。
【００２５】
本発明はまた、上述したプログラマブルデバイスを備えたデジタルフロントエンド回路、及びこれらの装置を備えたソフトウェア無線に関する。
【００２６】
別の態様では、本発明は、上述されたプログラマブルデバイスに適用されるアルゴリズムのための命令セットを自動的に設計する方法に関する。上記方法は、命令セットの部分集合の特定のスロットへの静的な割り当てを最適化するという特定の利点を有する。
上記方法は、
高水準プログラミング言語で上記アルゴリズムを記述するステップと、
上記アルゴリズムをデータフローグラフに変換するステップと、
プロファイリングを実行して、上記データフローグラフの起動を評価するステップと、
上記プロファイリングの結果に基づいて上記命令セットを導出するステップと、
上記命令セットの部分集合を上記スカラー部及び／又は上記少なくとも２つのベクトル部に割り当てるステップとを備える。
このアプローチは、スロットごとの異なる命令の数を最小化することを可能にし、かつ先行するステップにおいて抽出されたプロファイリングデータに基づいて密なスケジューリングを可能にする。
【００２７】
別の態様では、本発明は、受信されたデータパケットのパケット検出のための方法に関する。上記方法は、上述されたプログラマブルデバイスを用いて、複数のデータパケットの間の相関を解析するステップを備える。
【図面の簡単な説明】
【００２８】
【図１】ＩＥＥＥ８０２．１１ａ規格のための同期アルゴリズムを表す。
【図２】ＩＥＥＥ８０２．１１ａの同期のピークを表す。
【図３】ベクトルアキュムレーションを表す。
【図４】本発明に係るプログラマブルデバイスを表す。
【図５】ソフトウェア制御される相互接続の機能性を表す。
【図６】ソフトウェア制御される相互接続の機能性を表す。
【図７】ソフトウェア制御される相互接続の機能性を表す。
【図８】ソフトウェア制御される相互接続の機能性を表す。
【図９】ソフトウェア制御される相互接続の機能性を表す。
【発明を実施するための形態】
【００２９】
本発明は、ＳＤＲのための世代交代のＭＰＳＯＣプラットフォームに統合するための信号検出及び粗い時間同期に適合された命令セットプロセッサに関する。信号検出及び粗い時間同期のタスクは、最高のデューティサイクルを有し、かつ待機電力を支配する。本発明の重要なアプリケーションは、ＩＥＥＥ８０２．１１ａ／ｇ／ｎ規格、及びＩＥＥＥ８０２．１６ｅ規格に関係し、これらの規格では、パケットベースの無線伝送が、直交周波数分割多重、又は直交周波数分割多元接続（ＯＦＤＭ又はＯＦＤＭＡ）に基づいて実施される。本発明は、この例を用いて詳細に説明されるが、これは本発明の範囲をまったく制限しない単なる例であることが当業者には明らかである。主要な設計目標は、エネルギー効率である。性能は、規格によって定められた速度で、実時間処理を可能にするのにちょうど十分でなければならない。３ＧＰＰ−ＬＴＥなどの将来の規格に備えるために、特定用途向け命令セットプロセッサ（ＡＳＩＰ）のアプローチが、その方法で最良のエネルギー／効率性のトレードオフが達成されるので、好ましい。
【００３０】
十分なデータの並列性を有するアプリケーションのために、少なくとも１つのスカラー命令スロットと少なくとも２つのベクトル命令スロットとを有するＶＬＩＷ  ＡＳＩＰプロセッサアーキテクチャが提案される。我々の例では、複数のベクトルスロットのうちのいくつか（少なくとも１つ）が、ＡＬＵ命令のための演算子を含み、かつ他のベクトルスロットのうちのいくつか（少なくとも１つ）が、乗算演算子を含む。ＡＬＵ演算子と乗算演算子との比率は、目標とするアプリケーションの領域におけるこれらの演算の比率に適合されるべきである。通常、１つより多いＡＬＵ演算子が望ましく、かつこの場合、すべての追加のＡＬＵの命令セットアーキテクチャ（ＩＳＡ）は、（プロセッサの命令セットの正確なモデル上で、代表的なベンチマークプログラムの実行をシミュレートすることからなるプロファイリング実験に基づいて、）目標とするアプリケーションで発生する特定の演算にカスタマイズされる。
【００３１】
追加の複数のオペランドを並列に読み出すための追加のコストは、演算子及びレジスタファイルを用いて複数の命令スロットをクラスタリングすることによって削減される。好ましい実施形態では、複数のクラスタ間の通信は、大きなマルチポートのレジスタファイルの柔軟性をほとんど提供するが、非常に少ない電力でこれを提供するソフトウェア制御される相互接続を用いて実行される。これに関する詳細は、非特許文献３で提供される。
【００３２】
より高価な命令フェッチのためのオーバヘッドを削減するために、スカラー命令及びベクトル命令のための別々のループバッファ及びコントローラが、潜在的にベクトル演算子のクラスタの内部においても、提案される。この方法では、異なるクラスタの制御フローがもはや同一である必要がない、すなわち、あらゆるクラスタが独自の制御フローを有することができ、かつそれがまだ、プログラムメモリに記憶された同一の共有プログラムから導出されるので、発行スロットをさらによりよく満たすことが可能になる。
【００３３】
エネルギーを意識した実施のために、特別な注意が、命令セットの選択、並列化、記憶素子（レジスタファイル、メモリ）、及び相互接続に払われなければならない。これらの話題のそれぞれが、以下で詳述される。
【００３４】
命令セットの選択．
通常、ＡＳＩＰの設計は、目標とされるアルゴリズムを注意深く解析することから始まる。フローは、プロファイリングがアプリケーション上で実行される場所に適用されて、命令セットを定義し、分割し、かついくつかの並列のクラスタ化された命令セットに割り当てる。したがって、第１のステップでは、目標とされるアルゴリズムが、Ｃなどの高水準言語で記述されなければならない。その後、これらのアルゴリズムは、データフローグラフに変換され、アプリケーションを代表するランダムな刺激（励振）セットを用いて実行される。それによって、よく起動されるデータフローグラフの複数の部分が識別される。その後、半自動的な方法で、特別な命令が定義され、組み込み関数の形式でアルゴリズムに導入される。特別な命令の粒度は、目標とされる技術、及びクロック周波数に依存する。
【００３５】
命令セットが定義された後、寸法決定ステップ、分割ステップ、及び割り当てステップが実行される。したがって、新たに定義された組み込み関数を含むアルゴリズムは、起動統計を収集するために実行される。上記統計に基づいて、支配的な演算が、（ユーザによって定義されたしきい値に基づいて）識別される。得られた情報に基づいて、その後、複数の演算子は、
（１）スロットごとの異なる命令の数が最小化され、それによって、演算子のタイプの数、及び全体の演算子の数が最小化され、
（２）（データの依存関係を含む）演算のシーケンスが制限された穴を有することを保証することによって、より密なスケジューリングが実行可能にされ、かつ
（３）（演算子のグループごとに）これらのシーケンスが、実時間の制約よりも短いクリティカルパスを有するように、グループ分けされ、又は演算子のグループごとに複製される。目標とするクロック速度が既知であるので、これは自動化されることができる。
【００３６】
図１は、ＩＥＥＥ８０２．１１ａの例における同期アルゴリズムの典型的な構造を示す。コードは、主として３つのループからなる。これらのループの最初の２つでは、入力信号の相関が調査される。ここでは、ベクトルマシンによって効率的に活用される顕著なＤＬＰが存在する。第３のループでは、コードは、相関結果におけるピークを調べ、それをしきい値と比較する。これは、より制御指向のタスクである。多数の入力サンプル（相関ウィンドウ）がメモリに記憶される必要があることもわかる。図２は、結果として得られる同期のピークを示す。
【００３７】
ＩＥＥＥ８０２．１６ｅのためのコードは、非常に似た特徴を示す。さらに、多数の共通の計算のプリミティブが識別され、これらは、後続のＡＳＩＰアプローチに適合する。しかしながら、ＩＥＥＥ８０２．１１ａの同期と比較して、ＩＥＥＥ８０２．１６ｅのためのアルゴリズムは、より計算主体である（平均１９１演算／サンプルに対して、ＩＥＥＥ８０２．１１ａは８２演算／サンプルである。）。スループットの点では、両方のアプリケーションは、非常に要求が厳しい（最高２０メガサンプル／秒まで）。
【００３８】
制限された精度を用いて浮動小数点のコードを固定小数点のコードに変換すること（固定小数点改良（fixed-point refinement））は、ＩＥＥＥ８０２．１１ａ及びＩＥＥＥ８０２．１６ｅのためのすべての計算が、１６ビット符号付きの精度で実行されることを示す。さらに、すべての除算がアルゴリズムの変換によって除去される。コードは、カーネルを単一のループにマージして、データの局所性を改善し、かつ制御を削減することを含んで最適化される。その後、コードは、ベクトル化され、多数の実用的に選択されたプリミティブにマッピングされる。その後、命令セットが導出される。すべての計算が複素数サンプル上のものであるので、複素数演算は、ハードウェアで実装されることが好ましい。これは、ＳＤＲの処理について非常に効率的であることを証明する。
【００３９】
特定の目標とされるアプリケーションでは、特定の挑戦は、ベクトルアキュムレーションのためのメカニズムを開発することである。この例では、同期ピークの検出が、サンプリングの正確性を必要とする。したがって、すべての相関出力が評価される必要がある。したがって、好ましい実施形態では、ベクトルアキュムレーション（ｔｒｉａｎｇ，レベル−図３参照。）、及びベクトルから最大値（ｒｍａｘ／ｉｍａｘ）を抽出するような命令の中間結果を保存する方法が導入される。
【００４０】
並列処理．
ベクトル処理のための能力を有するインオーダＶＬＩＷマシン（In-order VLIW machine）が、ＳＤＲに対して最もエネルギー効率的である。命令セットの定義の後、方法は、最小のエネルギーコストで実時間の性能を保証するために必要な並列処理の量について決定しなければならない。
【００４１】
まず、目標とするクロックが導出される。我々の例では、最大の達成可能なクロック速度は、選択された低電力メモリ技術によって、２００ＭＨｚに制限される。プログラムメモリ及びデータメモリは、マルチサイクルのアクセスなしに、又はプロセッサを止めることなしに、読み出しかつ書き込むことを意図される。次に、命令及びデータレベルの並列性が解析される。アプリケーションからは、制御及びデータ処理が簡単に並列化されることが観察される。これは、別々のスカラースロット及びベクトルスロットをもたらす。ＤＬＰが、信号検出及び粗い時間同期のためのアルゴリズムに多く存在するので、ベクトル化の量が最初に決定される。単一のベクトルスロット及び２００ＭＨｚのクロック速度を有するプロセッサを仮定すると、少なくとも４．５のベクトル化のファクタ（ベクトルごとの複素数データ要素の数）が、実時間の最も要求の厳しいアプリケーション（２０ＭＨｚの入力速度のＩＥＥＥ８０２．１６ｅ）の完全な（すなわち、穴のない）スケジューリングを処理するために必要とされるであろう。最適な演算子の利用に近いスケジューリングが、ベクトル化のファクタ４について、直交の（重複しない）命令セットを有する複数のベクトルスロットを用いることによって、可能になる。これはまた、演算子の最大の利用を保証する。したがって、性能及びエネルギー効率は、追加の演算子を追加することなく、直交の（重複しない）方法で、命令セットを複数のスカラースロット及びベクトルスロットに分散させることによって改善される。最高の効率性は、アプリケーションの命令統計にしたがって命令セットを分散することによって、達成される。いくつかの特定の例では、ベクトル演算とスカラー演算との比率は、ＩＥＥＥ８０２．１６ｅでは４６／２８であり、ＩＥＥＥ８０２．１１ａカーネルでは２３／１６である。したがって、目標とするアーキテクチャは、理想的には、３つのベクトル演算及び２つのスカラー演算を並列に処理することができるべきである。したがって、設計は、３つのベクトル命令スロット及び２つのスカラー命令スロットに分割される。
【００４２】
図３は、マイクロアーキテクチャ、及び例で導出された命令セットの分散を示す。スカラースロット内の命令は、１６ビット符号付きオペランドに作用し、ベクトルスロット内の命令は、４つの複素数サンプル（１２８ビット）に並列に作用する。さらなるベクトル化（２５６ビット、又は５１２ビット）は、相互接続ネットワークにおいて、より一層の複雑性をもたらすであろうことが、直観的にわかる。
【００４３】
クラスタ化されたレジスタファイル及び相互接続．
典型的に、共有のマルチポート化されたレジスタファイルは、ＶＬＩＷ構造においてスケーラビリティのボトルネックであり、かつ最大の電力の消費者のうちの１つでもある。したがって、クラスタ化されたレジスタファイルの実装が好ましい。
【００４４】
図４に示すように、上述した特定の例では、４つの汎用レジスタファイルが実装される。スカラーレジスタファイル（ＳＲＦ）は、１６個の１６ビットレジスタを含み、４つの読み出しポート及び２つの書き込みポートを有する。その小さいワード幅によって、２つのスカラースロットにおける機能ユニット（ＦＵ）の間でレジスタを共有するコストは、かなり低い。プロセッサのベクトル側は、完全にクラスタ化されている。３つのベクトルレジスタファイル（ＶＲＦ）のそれぞれは、４つの１２８ビットレジスタを有し、かつ３つの読み出しポート及び１つの書き込みポートを有する。読み出しポートのうちの２つは、特定のベクトルスロットにおける複数のＦＵ専用である（図５）。第３の読み出しポートは、オペランドのブロードキャスト（クラスタ間の読み出し−図６）のために使用され、かつスカラークラスタ（ベクトル評価、ベクトル記憶）を含むすべての他のクラスタからアクセスされる。ベクトルオペランドをルーティングすることは、ベクトルオペランド読み出し相互接続を介して実行される。それぞれのＶＲＦは、ただ１つのブロードキャストポートを有するので、ＶＲＦごとにただ１つのクラスタ間の読み出しが、サイクルごとに実行されることができる。ベクトルオペランド読み出し相互接続はまた、ベクトルクラスタ内の、及び複数のベクトルクラスタにわたるオペランドの転送を可能にする（図７、図８）。この柔軟性に起因して、任意のベクトル命令の結果は、以降のサイクルで、任意のベクトルクラスタにおいて、任意のベクトル命令のための入力オペランドとして直接的に使用されることができる。ソフトウェア制御される相互接続はまた、任意のベクトル命令のレジスタファイルのライトバックを使用不可能にすることを可能にする。このように、以降のサイクルで直接的に消費される計算結果は、記憶される必要がなく、かつレジスタファイルへのプレッシャが削減される（割り当て、電力）。ベクトル結果書き込み相互接続は、計算結果をＶＲＦの書き込みポートにルーティングするために使用される。
【００４５】
それぞれのＶＲＦ書き込みポートは、すべてのベクトルスロット、及びスロットスカラー２の複数のＦＵ（ベクトル生成、ベクトル読み出し）から書き込まれることができる。プログラマは、アクセスの衝突を回避する責任がある。選択された相互接続は、中央のレジスタファイルとほぼ同じ柔軟性を提供するが、より低いエネルギーコストで提供する。
【００４６】
好ましい実施形態では、データスクラッチパッドが実装される。相互接続を共有するために、ベクトル読み出しとベクトル記憶とは、異なるユニットに実装される。読み出しＦＵは、ベクトルを書き込むことができる第１のスカラースロットに接続される。記憶ＦＵは、ベクトルオペランドが読み出されることができる第２のスカラースロットに割り当てられる（図４）。プラットフォームの統合を簡単にするために、プロセッサは、多数の直接的なＩ／Ｏポート、例えば、入力ストリームからベクトルを読み出すためのブロッキングインターフェース（blocking interface）を提供してもよい。
【００４７】
説明されたアーキテクチャ及び目標とする技術が与えられると、その後、目標とされるクロック速度に到達し、かつ命令メモリ及びデータメモリとシームレスにインターフェースするために必要なパイプラインの量を決定する必要がある。
【００４８】
好ましい実施形態では、パイプラインモデルは、２つの命令フェッチステージ（ＦＥ１、ＦＥ２）、及び１つの命令デコードステージ（ＤＥ）を有して導出される。さらに、複数のスカラースロットにおける複数のユニット、及び第１のベクトルスロット並びに第２のベクトルスロットにおける複数のユニットは、１つの実行ステージ（ＥＸ）を有する。第３のベクトルスロットにおける複素数ベクトルのマルチプライヤのＦＵは、２つの実行ステージ（ＥＸ、ＥＸ２）を有する。
【００４９】
ＦＥ１ステージは、プログラムメモリのアドレス指定フェーズを実施する。命令語は、ＦＥ２で読み出される。ＤＥステージでは、命令がデコードされ、かつデータメモリがアドレス指定される。デコーダは、どのレジスタファイルのポートがアクセスされる必要があるかを決定する。ソースのオペランドのルーティング、転送、及び連鎖（chaining）は、完全にソフトウェア制御される。ソースのオペランドは、ＤＥの最後にパイプラインレジスタにセーブされ、以降のサイクルで起動されたＦＵによって消費される。レジスタファイルは、ＥＸ（又はＥＸ２）の最後に書き込まれる。
【図１】
2010530677.tif 000003
【図２】
2010530677.tif 000004
【図３】
2010530677.tif 000005
【図４】
2010530677.tif 000006
【図５】
2010530677.tif 000007
【図６】
2010530677.tif 000008
【図７】
2010530677.tif 000009
【図８】
2010530677.tif 000010
【図９】
2010530677.tif 000011
【国際調査報告】
2010530677.tif 000012
2010530677.tif 000013
2010530677.tif 000014