JP5324568B2 - ソフトウェア無線端末のためのプログラマブルデバイス - Google Patents

ソフトウェア無線端末のためのプログラマブルデバイス Download PDF

Info

Publication number
JP5324568B2
JP5324568B2 JP2010512532A JP2010512532A JP5324568B2 JP 5324568 B2 JP5324568 B2 JP 5324568B2 JP 2010512532 A JP2010512532 A JP 2010512532A JP 2010512532 A JP2010512532 A JP 2010512532A JP 5324568 B2 JP5324568 B2 JP 5324568B2
Authority
JP
Japan
Prior art keywords
vector
programmable device
scalar
instruction
parts
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2010512532A
Other languages
English (en)
Other versions
JP2010530677A (ja
Inventor
ブルーノ・バウガルト
トーマス・シュースター
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Interuniversitair Microelektronica Centrum vzw IMEC
Original Assignee
Interuniversitair Microelektronica Centrum vzw IMEC
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Interuniversitair Microelektronica Centrum vzw IMEC filed Critical Interuniversitair Microelektronica Centrum vzw IMEC
Publication of JP2010530677A publication Critical patent/JP2010530677A/ja
Application granted granted Critical
Publication of JP5324568B2 publication Critical patent/JP5324568B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3885Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units
    • G06F9/3889Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units controlled by multiple instructions, e.g. MIMD, decoupled access or execute
    • G06F9/3891Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units controlled by multiple instructions, e.g. MIMD, decoupled access or execute organised in groups of units sharing resources, e.g. clusters
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • G06F15/78Architectures of general purpose stored program computers comprising a single central processing unit
    • G06F15/7867Architectures of general purpose stored program computers comprising a single central processing unit with reconfigurable architecture
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • G06F15/80Architectures of general purpose stored program computers comprising an array of processing units with common control, e.g. single instruction multiple data processors
    • G06F15/8053Vector processors
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/30007Arrangements for executing specific machine instructions to perform operations on data operands
    • G06F9/30036Instructions to perform operations on packed data, e.g. vector, tile or matrix operations

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Mathematical Physics (AREA)
  • Computing Systems (AREA)
  • Executing Machine-Instructions (AREA)
  • Transceivers (AREA)
  • Complex Calculations (AREA)
  • Devices For Executing Special Programs (AREA)
  • Advance Control (AREA)

Description

本発明は、ソフトウェア無線プラットフォームでの使用に適したデジタルプログラマブルデバイスに関し、特に、高いデューティサイクルと、プログラム能力において緩和された、しかしゼロではない、必要条件とを有する機能性に適したデジタルプログラマブルデバイスに関する。
ソフトウェア無線(SDR)は、無線ネットワーク及びユーザ端末のための再構成可能なシステムアーキテクチャを使用可能にするハードウェア技術及びソフトウェア技術の集合である。SDRは、ソフトウェアのアップグレードを用いることによって、適合され、更新され、又は強化されるマルチモードで、マルチバンドで、多機能な無線装置を構築する問題に対して、効率的でかつ比較的安価な解決方法を提供する。したがって、SDRは、無線コミュニティ内の幅広い分野にわたって適用可能である実現技術として考えられる。
様々な無線規格の継続的な増大、及びICの設計並びにハンドセットの統合に関係したコストの増加は、このような再構成可能な無線プラットフォーム上で無線規格を実装することを、近い将来において唯一の実行可能なオプションにする。プラットフォームは、アプリケーションがその上で実行されてもよいフレームワークを意味する。したがって、SDRは、必要な性能及び柔軟性を提供する効果的な方法である。
(Cなどの)高水準言語からプログラム可能な場合、SDRはコスト効率が高いマルチモードな端末を使用可能にするが、まだ、専用のハードウェアによる解決方法と比較して、重大なエネルギー損失という欠点がある。したがって、プログラム能力とエネルギー効率とは、慎重にバランスをとられなければならない。携帯型装置の統合に要求されるレベルにエネルギー効率を維持するために、抽象化が、全体の平均電力に対する抽象化の影響が十分に低い場合、又は結果として得られる追加の柔軟性が改善されたエネルギー管理によって活用されうる(目標とされる柔軟性)場所においてのみ、導入されてもよい。
多くの異なるアーキテクチャスタイルが、SDRのためにすでに提案されている。これらのほとんどは、無線物理層における処理の重要な特徴、すなわち高いデータレベルの並列性(DLP(data level parallelism))及びデータフローの支配(dominance)に留意して設計される。目標とされる柔軟性と、無線システムではエリアがエネルギー効率と部分的に交換されるという事実とは、世代交代のマルチプロセッサシステムオンチップ(MPSOC)アーキテクチャを要求し、そのアーキテクチャでは、伝送方法の異なるタスクが、最小のコストでちょうど必要な性能を提供する特定のエンジン上で実施される。
実際には、無線規格の実施は、変調及び復調に次いで、媒体アクセス制御(MAC)のための機能性、及びバーストベースの通信の場合は信号検出並びに時間同期を含む。高いDLPは、定義により制御支配型でありかつ(例えば、RISC上で)別々に実施されるべきであるMAC処理については保持されない。さらに、パケット検出及び粗い時間同期は、パケットの変調及び復調よりも顕著に高いデューティサイクルを有する。
対照的に、高いデューティサイクルを有する上記機能性は、通常、プログラム能力の点では、緩和された必要条件を有する。典型的に、パケット検出及び粗い時間同期の特定の機能性は、(ソースコードのサイズの点で)全体の機能性のうちの5%未満を占める。したがって、上記高いデューティサイクルの機能性がマッピングされるアーキテクチャは、(例えばC言語などの)高水準言語のプログラム能力を提供することなく最適化される。後述する本発明は、主として、高いデューティサイクルを有する上記機能性に関するが、これに限らない。
プログラム能力の点で緩和された必要条件を有する無線アプリケーションのための効率的なデジタル信号処理は、典型的に、ベクトル処理を仮定する。このベクトル処理では、命令が発行されるとき、同様の演算が、データベクトルと呼ばれるデータ要素の複数の集合からなる複数のオペランドに並列に適用される。データ要素はまた、ベクトルの方法でレジスタファイルに記憶される。
多くの実施例では、ベクトル処理は、スカラー(すなわち、単一のデータ要素)のオペランドのみが考慮されるスカラー処理と組み合わせられる(非特許文献1及び非特許文献2参照。)。その結果、2つのクラスの命令、すなわち、主としてアドレス計算並びに制御のためのスカラー命令と、主として計算主体のタスクのためのベクトル命令とが使用される。したがって、このようなプロセッサは、スカラー命令及びベクトル命令を並列に計算することができるべきである。従来技術で一般に用いられるアプローチは、別々のスカラー命令スロットとベクトル命令スロットとを有する超長命令語(VLIW)を使用する。
従来技術の解決方法は、いくつかの重要な欠点を有する。アダー及びマルチプライヤなどの多くの異なる演算子(オペレータ)が、スカラースロット及びベクトルスロットで様々な命令を処理するために必要とされる。これらの演算子の利用は、一度に1つの命令/スロットのみが実行されるので、非常に低いことがある。よりよい性能のために、スロットの数が増加されてもよい。しかし、これはまた、設計での演算子の数を増加させ、演算子の利用を改善しない。さらに、VLIWプロセッサにおいて発行スロットの数を増加させることは、より高価な命令フェッチのコストに達し、かつ通常、電力を多く必要とするマルチポートのレジスタファイルを要求する。
(SDRのような)特定のアプリケーションのために設計されていないとき、VLIW プロセッサは、純粋に機能的なアプローチにしたがって、命令スロットごとの演算子の数を削減するように最適化される。例えば、3つの命令スロットを有するプロセッサでは、第1のスロットが読み出し/記憶演算専用にされ、第2のスロットがALU演算専用にされ、かつ第3のスロットが積和演算専用にされる。しかしながら、このアプリケーション不可知論(application-agnostic)アプローチは、アプリケーションがこれらのタイプの演算のアンバランスな利用統計を有する場合、非効率的な演算子の利用をもたらす。
反対に、(単一発行の)特定用途向け命令セットプロセッサ(ASIP)が最適化されるとき、演算子の数は、目標とされるアプリケーションにおける演算利用統計に基づいて、命令を定義することによって最小化される。
演算子利用の点での特定用途向けVLIWプロセッサの効率性は、これ以上の命令の定義に対してだけでなく、多数の並列スロットへの命令の割り当てに対する演算のプロファイリングに基づいてASIPの最適化アプローチを一般化することによって、顕著に高められる。
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.
本発明は、最大化された利用を有した最小の演算子を有する複数の実行スロットを備えたプログラマブルデバイスを提供することを目的とする。本発明はまた、密なスケジューリングを達成するために、複数のスロットへの命令の割り当てを最適化し、かつ命令フローをスケジューリングし制御する方法を提供することを目的とする。
本発明は、スカラーデータパスとスカラーレジスタファイルとを提供し、それによってデータパスとレジスタファイルとが接続され、スカラー命令を実行するように設けられたスカラー部と、複数のベクトル部がそれによってスカラー部と接続される少なくとも2つの相互接続されたベクトル部とを備えたプログラマブルデバイスに関する。上記少なくとも2つのベクトル部のそれぞれは、互いに接続されたベクトルデータパスとベクトルレジスタファイルとを提供し、上記少なくとも2つのベクトル部の任意の他のベクトル部によって実行されるベクトル命令と異なる少なくとも1つのベクトル命令を実行するように設けられる。
好ましい実施形態では、上記スカラー部及び上記少なくとも2つのベクトル部のそれぞれは、いくつかのそれぞれの命令を記憶する局所記憶手段を備える。
好ましくは、上記プログラマブルデバイスは、上記複数のベクトル部の間のデータ通信のための、ソフトウェア制御される相互接続をさらに備える。
有利に、上記少なくとも2つのベクトル部の第1のベクトル部は、算術論理演算装置の命令のための演算子を備え、第2のベクトル部は、乗算演算子を備える。
もう1つの好ましい実施形態では、上記プログラマブルデバイスは、上記少なくとも1つのベクトル命令を提供するように設けられたプログラミング手段を備える。
上記プログラマブルデバイスは、第2のスカラー部及び3つの相互接続されたベクトル部をさらに備えてもよい。
有利に、それぞれのベクトルレジスタファイルは、3つの読み出しポート及び1つの書き込みポートを有する。上記複数の読み出しポートのうちの2つは、機能ユニット専用である。上記複数の読み出しポートのうちの1つは、上記複数のベクトルスロットの間の読み出しのために設けられる。これは、クラスタ間の読み出しと呼ばれる。
好ましい実施形態では、上記少なくとも2つのベクトル部のベクトル部において実行可能なすべてのベクトル命令は、任意の他のベクトル部において実行可能なベクトル命令と異なる。
上記本発明のプログラマブルデバイスは、有利に、IEEE802.11a/g/n,IEEE802.16e,3GPP−LTEを含む規格のグループに属する規格にしたがって通信を実行するように設けられる。
本発明はまた、上述したプログラマブルデバイスを備えたデジタルフロントエンド回路、及びこれらの装置を備えたソフトウェア無線に関する。
別の態様では、本発明は、上述されたプログラマブルデバイスに適用されるアルゴリズムのための命令セットを自動的に設計する方法に関する。上記方法は、命令セットの部分集合の特定のスロットへの静的な割り当てを最適化するという特定の利点を有する。
上記方法は、
高水準プログラミング言語で上記アルゴリズムを記述するステップと、
上記アルゴリズムをデータフローグラフに変換するステップと、
プロファイリングを実行して、上記データフローグラフの起動を評価するステップと、
上記プロファイリングの結果に基づいて上記命令セットを導出するステップと、
上記命令セットの部分集合を上記スカラー部及び/又は上記少なくとも2つのベクトル部に割り当てるステップとを備える。
このアプローチは、スロットごとの異なる命令の数を最小化することを可能にし、かつ先行するステップにおいて抽出されたプロファイリングデータに基づいて密なスケジューリングを可能にする。
別の態様では、本発明は、受信されたデータパケットのパケット検出のための方法に関する。上記方法は、上述されたプログラマブルデバイスを用いて、複数のデータパケットの間の相関を解析するステップを備える。
IEEE802.11a規格のための同期アルゴリズムを表す。 IEEE802.11aの同期のピークを表す。 ベクトルアキュムレーションを表す。 本発明に係るプログラマブルデバイスを表す。 ソフトウェア制御される相互接続の機能性を表す。 ソフトウェア制御される相互接続の機能性を表す。 ソフトウェア制御される相互接続の機能性を表す。 ソフトウェア制御される相互接続の機能性を表す。 ソフトウェア制御される相互接続の機能性を表す。
本発明は、SDRのための世代交代のMPSOCプラットフォームに統合するための信号検出及び粗い時間同期に適合された命令セットプロセッサに関する。信号検出及び粗い時間同期のタスクは、最高のデューティサイクルを有し、かつ待機電力を支配する。本発明の重要なアプリケーションは、IEEE802.11a/g/n規格、及びIEEE802.16e規格に関係し、これらの規格では、パケットベースの無線伝送が、直交周波数分割多重、又は直交周波数分割多元接続(OFDM又はOFDMA)に基づいて実施される。本発明は、この例を用いて詳細に説明されるが、これは本発明の範囲をまったく制限しない単なる例であることが当業者には明らかである。主要な設計目標は、エネルギー効率である。性能は、規格によって定められた速度で、実時間処理を可能にするのにちょうど十分でなければならない。3GPP−LTEなどの将来の規格に備えるために、特定用途向け命令セットプロセッサ(ASIP)のアプローチが、その方法で最良のエネルギー/効率性のトレードオフが達成されるので、好ましい。
十分なデータの並列性を有するアプリケーションのために、少なくとも1つのスカラー命令スロットと少なくとも2つのベクトル命令スロットとを有するVLIW ASIPプロセッサアーキテクチャが提案される。我々の例では、複数のベクトルスロットのうちのいくつか(少なくとも1つ)が、ALU命令のための演算子を含み、かつ他のベクトルスロットのうちのいくつか(少なくとも1つ)が、乗算演算子を含む。ALU演算子と乗算演算子との比率は、目標とするアプリケーションの領域におけるこれらの演算の比率に適合されるべきである。通常、1つより多いALU演算子が望ましく、かつこの場合、すべての追加のALUの命令セットアーキテクチャ(ISA)は、(プロセッサの命令セットの正確なモデル上で、代表的なベンチマークプログラムの実行をシミュレートすることからなるプロファイリング実験に基づいて、)目標とするアプリケーションで発生する特定の演算にカスタマイズされる。
追加の複数のオペランドを並列に読み出すための追加のコストは、演算子及びレジスタファイルを用いて複数の命令スロットをクラスタリングすることによって削減される。好ましい実施形態では、複数のクラスタ間の通信は、大きなマルチポートのレジスタファイルの柔軟性をほとんど提供するが、非常に少ない電力でこれを提供するソフトウェア制御される相互接続を用いて実行される。これに関する詳細は、非特許文献3で提供される。
より高価な命令フェッチのためのオーバヘッドを削減するために、スカラー命令及びベクトル命令のための別々のループバッファ及びコントローラが、潜在的にベクトル演算子のクラスタの内部においても、提案される。この方法では、異なるクラスタの制御フローがもはや同一である必要がない、すなわち、あらゆるクラスタが独自の制御フローを有することができ、かつそれがまだ、プログラムメモリに記憶された同一の共有プログラムから導出されるので、発行スロットをさらによりよく満たすことが可能になる。
エネルギーを意識した実施のために、特別な注意が、命令セットの選択、並列化、記憶素子(レジスタファイル、メモリ)、及び相互接続に払われなければならない。これらの話題のそれぞれが、以下で詳述される。
命令セットの選択.
通常、ASIPの設計は、目標とされるアルゴリズムを注意深く解析することから始まる。フローは、プロファイリングがアプリケーション上で実行される場所に適用されて、命令セットを定義し、分割し、かついくつかの並列のクラスタ化された命令セットに割り当てる。したがって、第1のステップでは、目標とされるアルゴリズムが、Cなどの高水準言語で記述されなければならない。その後、これらのアルゴリズムは、データフローグラフに変換され、アプリケーションを代表するランダムな刺激(励振)セットを用いて実行される。それによって、よく起動されるデータフローグラフの複数の部分が識別される。その後、半自動的な方法で、特別な命令が定義され、組み込み関数の形式でアルゴリズムに導入される。特別な命令の粒度は、目標とされる技術、及びクロック周波数に依存する。
命令セットが定義された後、寸法決定ステップ、分割ステップ、及び割り当てステップが実行される。したがって、新たに定義された組み込み関数を含むアルゴリズムは、起動統計を収集するために実行される。上記統計に基づいて、支配的な演算が、(ユーザによって定義されたしきい値に基づいて)識別される。得られた情報に基づいて、その後、複数の演算子は、
(1)スロットごとの異なる命令の数が最小化され、それによって、演算子のタイプの数、及び全体の演算子の数が最小化され、
(2)(データの依存関係を含む)演算のシーケンスが制限された穴を有することを保証することによって、より密なスケジューリングが実行可能にされ、かつ
(3)(演算子のグループごとに)これらのシーケンスが、実時間の制約よりも短いクリティカルパスを有するように、グループ分けされ、又は演算子のグループごとに複製される。目標とするクロック速度が既知であるので、これは自動化されることができる。
図1は、IEEE802.11aの例における同期アルゴリズムの典型的な構造を示す。コードは、主として3つのループからなる。これらのループの最初の2つでは、入力信号の相関が調査される。ここでは、ベクトルマシンによって効率的に活用される顕著なDLPが存在する。第3のループでは、コードは、相関結果におけるピークを調べ、それをしきい値と比較する。これは、より制御指向のタスクである。多数の入力サンプル(相関ウィンドウ)がメモリに記憶される必要があることもわかる。図2は、結果として得られる同期のピークを示す。
IEEE802.16eのためのコードは、非常に似た特徴を示す。さらに、多数の共通の計算のプリミティブが識別され、これらは、後続のASIPアプローチに適合する。しかしながら、IEEE802.11aの同期と比較して、IEEE802.16eのためのアルゴリズムは、より計算主体である(平均191演算/サンプルに対して、IEEE802.11aは82演算/サンプルである。)。スループットの点では、両方のアプリケーションは、非常に要求が厳しい(最高20メガサンプル/秒まで)。
制限された精度を用いて浮動小数点のコードを固定小数点のコードに変換すること(固定小数点改良(fixed-point refinement))は、IEEE802.11a及びIEEE802.16eのためのすべての計算が、16ビット符号付きの精度で実行されることを示す。さらに、すべての除算がアルゴリズムの変換によって除去される。コードは、カーネルを単一のループにマージして、データの局所性を改善し、かつ制御を削減することを含んで最適化される。その後、コードは、ベクトル化され、多数の実用的に選択されたプリミティブにマッピングされる。その後、命令セットが導出される。すべての計算が複素数サンプル上のものであるので、複素数演算は、ハードウェアで実装されることが好ましい。これは、SDRの処理について非常に効率的であることを証明する。
特定の目標とされるアプリケーションでは、特定の挑戦は、ベクトルアキュムレーションのためのメカニズムを開発することである。この例では、同期ピークの検出が、サンプリングの正確性を必要とする。したがって、すべての相関出力が評価される必要がある。したがって、好ましい実施形態では、ベクトルアキュムレーション(triang,レベル−図3参照。)、及びベクトルから最大値(rmax/imax)を抽出するような命令の中間結果を保存する方法が導入される。
並列処理.
ベクトル処理のための能力を有するインオーダVLIWマシン(In-order VLIW machine)が、SDRに対して最もエネルギー効率的である。命令セットの定義の後、方法は、最小のエネルギーコストで実時間の性能を保証するために必要な並列処理の量について決定しなければならない。
まず、目標とするクロックが導出される。我々の例では、最大の達成可能なクロック速度は、選択された低電力メモリ技術によって、200MHzに制限される。プログラムメモリ及びデータメモリは、マルチサイクルのアクセスなしに、又はプロセッサを止めることなしに、読み出しかつ書き込むことを意図される。次に、命令及びデータレベルの並列性が解析される。アプリケーションからは、制御及びデータ処理が簡単に並列化されることが観察される。これは、別々のスカラースロット及びベクトルスロットをもたらす。DLPが、信号検出及び粗い時間同期のためのアルゴリズムに多く存在するので、ベクトル化の量が最初に決定される。単一のベクトルスロット及び200MHzのクロック速度を有するプロセッサを仮定すると、少なくとも4.5のベクトル化のファクタ(ベクトルごとの複素数データ要素の数)が、実時間の最も要求の厳しいアプリケーション(20MHzの入力速度のIEEE802.16e)の完全な(すなわち、穴のない)スケジューリングを処理するために必要とされるであろう。最適な演算子の利用に近いスケジューリングが、ベクトル化のファクタ4について、直交の(重複しない)命令セットを有する複数のベクトルスロットを用いることによって、可能になる。これはまた、演算子の最大の利用を保証する。したがって、性能及びエネルギー効率は、追加の演算子を追加することなく、直交の(重複しない)方法で、命令セットを複数のスカラースロット及びベクトルスロットに分散させることによって改善される。最高の効率性は、アプリケーションの命令統計にしたがって命令セットを分散することによって、達成される。いくつかの特定の例では、ベクトル演算とスカラー演算との比率は、IEEE802.16eでは46/28であり、IEEE802.11aカーネルでは23/16である。したがって、目標とするアーキテクチャは、理想的には、3つのベクトル演算及び2つのスカラー演算を並列に処理することができるべきである。したがって、設計は、3つのベクトル命令スロット及び2つのスカラー命令スロットに分割される。
図3は、マイクロアーキテクチャ、及び例で導出された命令セットの分散を示す。スカラースロット内の命令は、16ビット符号付きオペランドに作用し、ベクトルスロット内の命令は、4つの複素数サンプル(128ビット)に並列に作用する。さらなるベクトル化(256ビット、又は512ビット)は、相互接続ネットワークにおいて、より一層の複雑性をもたらすであろうことが、直観的にわかる。
クラスタ化されたレジスタファイル及び相互接続.
典型的に、共有のマルチポート化されたレジスタファイルは、VLIW構造においてスケーラビリティのボトルネックであり、かつ最大の電力の消費者のうちの1つでもある。したがって、クラスタ化されたレジスタファイルの実装が好ましい。
図4に示すように、上述した特定の例では、4つの汎用レジスタファイルが実装される。スカラーレジスタファイル(SRF)は、16個の16ビットレジスタを含み、4つの読み出しポート及び2つの書き込みポートを有する。その小さいワード幅によって、2つのスカラースロットにおける機能ユニット(FU)の間でレジスタを共有するコストは、かなり低い。プロセッサのベクトル側は、完全にクラスタ化されている。3つのベクトルレジスタファイル(VRF)のそれぞれは、4つの128ビットレジスタを有し、かつ3つの読み出しポート及び1つの書き込みポートを有する。読み出しポートのうちの2つは、特定のベクトルスロットにおける複数のFU専用である(図5)。第3の読み出しポートは、オペランドのブロードキャスト(クラスタ間の読み出し−図6)のために使用され、かつスカラークラスタ(ベクトル評価、ベクトル記憶)を含むすべての他のクラスタからアクセスされる。ベクトルオペランドをルーティングすることは、ベクトルオペランド読み出し相互接続を介して実行される。それぞれのVRFは、ただ1つのブロードキャストポートを有するので、VRFごとにただ1つのクラスタ間の読み出しが、サイクルごとに実行されることができる。ベクトルオペランド読み出し相互接続はまた、ベクトルクラスタ内の、及び複数のベクトルクラスタにわたるオペランドの転送を可能にする(図7、図8)。この柔軟性に起因して、任意のベクトル命令の結果は、以降のサイクルで、任意のベクトルクラスタにおいて、任意のベクトル命令のための入力オペランドとして直接的に使用されることができる。ソフトウェア制御される相互接続はまた、任意のベクトル命令のレジスタファイルのライトバックを使用不可能にすることを可能にする。このように、以降のサイクルで直接的に消費される計算結果は、記憶される必要がなく、かつレジスタファイルへのプレッシャが削減される(割り当て、電力)。ベクトル結果書き込み相互接続は、計算結果をVRFの書き込みポートにルーティングするために使用される。
それぞれのVRF書き込みポートは、すべてのベクトルスロット、及びスロットスカラー2の複数のFU(ベクトル生成、ベクトル読み出し)から書き込まれることができる。プログラマは、アクセスの衝突を回避する責任がある。選択された相互接続は、中央のレジスタファイルとほぼ同じ柔軟性を提供するが、より低いエネルギーコストで提供する。
好ましい実施形態では、データスクラッチパッドが実装される。相互接続を共有するために、ベクトル読み出しとベクトル記憶とは、異なるユニットに実装される。読み出しFUは、ベクトルを書き込むことができる第1のスカラースロットに接続される。記憶FUは、ベクトルオペランドが読み出されることができる第2のスカラースロットに割り当てられる(図4)。プラットフォームの統合を簡単にするために、プロセッサは、多数の直接的なI/Oポート、例えば、入力ストリームからベクトルを読み出すためのブロッキングインターフェース(blocking interface)を提供してもよい。
説明されたアーキテクチャ及び目標とする技術が与えられると、その後、目標とされるクロック速度に到達し、かつ命令メモリ及びデータメモリとシームレスにインターフェースするために必要なパイプラインの量を決定する必要がある。
好ましい実施形態では、パイプラインモデルは、2つの命令フェッチステージ(FE1、FE2)、及び1つの命令デコードステージ(DE)を有して導出される。さらに、複数のスカラースロットにおける複数のユニット、及び第1のベクトルスロット並びに第2のベクトルスロットにおける複数のユニットは、1つの実行ステージ(EX)を有する。第3のベクトルスロットにおける複素数ベクトルのマルチプライヤのFUは、2つの実行ステージ(EX、EX2)を有する。
FE1ステージは、プログラムメモリのアドレス指定フェーズを実施する。命令語は、FE2で読み出される。DEステージでは、命令がデコードされ、かつデータメモリがアドレス指定される。デコーダは、どのレジスタファイルのポートがアクセスされる必要があるかを決定する。ソースのオペランドのルーティング、転送、及び連鎖(chaining)は、完全にソフトウェア制御される。ソースのオペランドは、DEの最後にパイプラインレジスタにセーブされ、以降のサイクルで起動されたFUによって消費される。レジスタファイルは、EX(又はEX2)の最後に書き込まれる。

Claims (14)

  1. スカラーデータパスとスカラーレジスタファイルとを提供し、スカラー命令を実行するように設けられたスカラー部と、
    少なくとも2つの相互接続されたベクトル部とを備えたプログラマブルデバイスであって、
    上記複数のベクトル部は、上記スカラー部に接続され、
    上記少なくとも2つのベクトル部のそれぞれは、ベクトルデータパスとベクトルレジスタファイルとを提供し、上記少なくとも2つのベクトル部の任意の他のベクトル部によって実行されるベクトル命令と異なる少なくとも1つのベクトル命令を実行するように設けられ
    上記各ベクトルレジスタファイルは、上記複数のベクトル部の間のブロードキャスト演算のために1つだけの読み出しポートを有し、
    上記プログラマブルデバイスは、
    上記複数のベクトル部の間のデータ通信のための、ソフトウェア制御される相互接続を備えたプログラマブルデバイス。
  2. 上記スカラー部及び上記少なくとも2つのベクトル部のそれぞれは、複数のそれぞれの命令を記憶する局所記憶手段を備えた請求項1記載のプログラマブルデバイス。
  3. 上記少なくとも2つのベクトル部の第1のベクトル部は、算術論理演算装置の命令のための演算子を備え、
    第2のベクトル部は、乗算演算子を備えた請求項1又は2記載のプログラマブルデバイス。
  4. 上記少なくとも1つのベクトル命令を提供するように設けられたプログラミング手段をさらに備えた請求項1からのうちのいずれか1つの請求項記載のプログラマブルデバイス。
  5. 第2のスカラー部及び3つの相互接続されたベクトル部をさらに備えた請求項1からのうちのいずれか1つの請求項記載のプログラマブルデバイス。
  6. それぞれのベクトルレジスタファイルは、3つの読み出しポート及び1つの書き込みポートを有する請求項1からのうちのいずれか1つの請求項記載のプログラマブルデバイス。
  7. 上記複数の読み出しポートのうちの2つは、上記ベクトルデータパスにおける機能ユニット専用である請求項記載のプログラマブルデバイス。
  8. 上記複数の読み出しポートのうちの1つは、上記複数のベクトルの間の読み出しのために設けられた請求項又は記載のプログラマブルデバイス。
  9. 上記少なくとも2つのベクトル部のベクトル部において実行可能なすべてのベクトル命令は、任意の他のベクトル部において実行可能なベクトル命令と異なる請求項1からのうちのいずれか1つの請求項記載のプログラマブルデバイス。
  10. IEEE802.11a/g/n,IEEE802.16e,3GPP−LTEを含む規格のグループに属する規格にしたがって通信を実行するようにさらに設けられた請求項1からのうちのいずれか1つの請求項記載のプログラマブルデバイス。
  11. 請求項1から10のうちのいずれか1つの請求項記載のプログラマブルデバイスを備えたデジタルフロントエンド回路。
  12. 請求項1から11のうちのいずれか1つの請求項記載のプログラマブルデバイスを備えたソフトウェア無線端末。
  13. 請求項1から10のうちのいずれか1つの請求項記載のプログラマブルデバイス上のアルゴリズムのための命令セットを自動的に設計する方法であって、
    高水準プログラミング言語で上記アルゴリズムを記述するステップと、
    上記アルゴリズムをデータフローグラフに変換するステップと、
    プロファイリングを実行して、上記データフローグラフの起動を評価するステップと、
    上記プロファイリングの結果に基づいて上記命令セットを導出するステップとを備えた方法において、
    上記方法はさらに、スロットごとの命令の数が最小化されるように、上記命令セットの部分集合を上記スカラー部及び上記少なくとも2つのベクトル部に割り当てるステップを備えたことを特徴とする方法。
  14. 請求項1から10のうちのいずれか1つの請求項記載のプログラマブルデバイスを用いて、複数のデータパケットの間の相関を解析するステップを備えた受信されたデータパケットのパケット検出のための方法。
JP2010512532A 2007-06-18 2007-10-19 ソフトウェア無線端末のためのプログラマブルデバイス Expired - Fee Related JP5324568B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
EP07110493.9 2007-06-18
EP07110493 2007-06-18
PCT/EP2007/061220 WO2008154963A1 (en) 2007-06-18 2007-10-19 Programmable device for software defined radio terminal

Publications (2)

Publication Number Publication Date
JP2010530677A JP2010530677A (ja) 2010-09-09
JP5324568B2 true JP5324568B2 (ja) 2013-10-23

Family

ID=38800885

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2010512532A Expired - Fee Related JP5324568B2 (ja) 2007-06-18 2007-10-19 ソフトウェア無線端末のためのプログラマブルデバイス

Country Status (5)

Country Link
US (3) US20100186006A1 (ja)
EP (1) EP2171609A1 (ja)
JP (1) JP5324568B2 (ja)
KR (1) KR101445794B1 (ja)
WO (1) WO2008154963A1 (ja)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8656376B2 (en) * 2011-09-01 2014-02-18 National Tsing Hua University Compiler for providing intrinsic supports for VLIW PAC processors with distributed register files and method thereof
KR20130089418A (ko) * 2012-02-02 2013-08-12 삼성전자주식회사 Asip를 포함하는 연산장치 및 설계 방법
JP6102528B2 (ja) * 2013-06-03 2017-03-29 富士通株式会社 信号処理装置及び信号処理方法
KR102179385B1 (ko) * 2013-11-29 2020-11-16 삼성전자주식회사 명령어를 실행하는 방법 및 프로세서, 명령어를 부호화하는 방법 및 장치 및 기록매체
JP6237241B2 (ja) * 2014-01-07 2017-11-29 富士通株式会社 処理装置

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0814411A3 (en) * 1988-06-07 1998-03-04 Fujitsu Limited Vector data processing apparatus
US5752035A (en) * 1995-04-05 1998-05-12 Xilinx, Inc. Method for compiling and executing programs for reprogrammable instruction set accelerator
US7100026B2 (en) * 2001-05-30 2006-08-29 The Massachusetts Institute Of Technology System and method for performing efficient conditional vector operations for data parallel architectures involving both input and conditional vector values
US6301653B1 (en) * 1998-10-14 2001-10-09 Conexant Systems, Inc. Processor containing data path units with forwarding paths between two data path units and a unique configuration or register blocks
US6366998B1 (en) * 1998-10-14 2002-04-02 Conexant Systems, Inc. Reconfigurable functional units for implementing a hybrid VLIW-SIMD programming model
US7721069B2 (en) * 2004-07-13 2010-05-18 3Plus1 Technology, Inc Low power, high performance, heterogeneous, scalable processor architecture
US7299342B2 (en) * 2005-05-24 2007-11-20 Coresonic Ab Complex vector executing clustered SIMD micro-architecture DSP with accelerator coupled complex ALU paths each further including short multiplier/accumulator using two's complement

Also Published As

Publication number Publication date
JP2010530677A (ja) 2010-09-09
KR101445794B1 (ko) 2014-11-03
US20140040594A1 (en) 2014-02-06
KR20100018039A (ko) 2010-02-16
US20100186006A1 (en) 2010-07-22
EP2171609A1 (en) 2010-04-07
US20130173884A1 (en) 2013-07-04
WO2008154963A1 (en) 2008-12-24

Similar Documents

Publication Publication Date Title
CN109213723B (zh) 一种用于数据流图处理的处理器、方法、设备、及一种非暂时性机器可读介质
US10445451B2 (en) Processors, methods, and systems for a configurable spatial accelerator with performance, correctness, and power reduction features
EP3726389B1 (en) Apparatuses, methods, and systems for memory interface circuit allocation in a configurable spatial accelerator
US11086816B2 (en) Processors, methods, and systems for debugging a configurable spatial accelerator
US10416999B2 (en) Processors, methods, and systems with a configurable spatial accelerator
US10380063B2 (en) Processors, methods, and systems with a configurable spatial accelerator having a sequencer dataflow operator
US10558575B2 (en) Processors, methods, and systems with a configurable spatial accelerator
US20190095369A1 (en) Processors, methods, and systems for a memory fence in a configurable spatial accelerator
WO2020005449A1 (en) Apparatuses, methods, and systems for conditional operations in a configurable spatial accelerator
JP5324568B2 (ja) ソフトウェア無線端末のためのプログラマブルデバイス
She et al. Scheduling for register file energy minimization in explicit datapath architectures
CN113934455A (zh) 指令转换方法及装置
US20100005274A1 (en) Virtual functional units for vliw processors
Pothineni et al. Application specific datapath extension with distributed i/o functional units
She et al. OpenCL code generation for low energy wide SIMD architectures with explicit datapath
She et al. Energy efficient special instruction support in an embedded processor with compact ISA
Schuster et al. Design of a low power pre-synchronization ASIP for multimode SDR terminals
Meijer et al. Automatic partitioning and mapping of stream-based applications onto the intel ixp network processor
Jungeblut et al. A systematic approach for optimized bypass configurations for application-specific embedded processors
Lin et al. A system solution for High-Performance, low power SDR
Sunny et al. Energy efficient hardware loop based optimization for CGRAs
Liang et al. A green software-defined communication processor for dynamic spectrum access
Seto et al. Custom instruction generation for configurable processors with limited numbers of operands
Yuan et al. Octopus: A Flexible, Efficient MPSoC Prototype for Non-linear Interference Cancellation
Llopard et al. Code generation for an application-specific VLIW processor with clustered, addressable register files

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20100901

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20121113

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20121217

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20130702

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20130718

R150 Certificate of patent or registration of utility model

Ref document number: 5324568

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees