【文献】
Chul Y. Jung,Design of Reconfigurable Coprocessor for Communication Systems,IEEE WORKSHOP ON SIGNAL PROCESSING SYSTEMS 2004 (SIPS 2004),米国,2004年,pp.142-147
(58)【調査した分野】(Int.Cl.,DB名)
【背景技術】
【0002】
多数の移動通信端末のなかでもとりわけ、送信/受信信号をマルチキャリア変調/復調しチャネルを復号化する端末は、高速フーリエ変換、すなわちFFT(英語の「Fast Fourier Transform」)または逆高速フーリエ変換、すなわちIFFT(英語の「Inverse Fast Fourier Transform」)のデジタル計算に一般にかつ有利に関わるデジタル処理コンポーネントと、とりわけソフトウェア無線または再構成可能な無線SDR(英語の「Software Defined Radio」)の枠組でのビタビアルゴリズムの実装とを備えている。ところが、FFT/IFFT計算およびビタビアルゴリズムの実装には、特に特殊な加算/減算の演算が必要である。
【0003】
SDRタイプの送信/受信端末とは、デジタル−アナログ変換をアンテナの最も近くで行う端末のことであり、こうすることによって端末が実行する変調/復調および符号化/復号化の処理がデジタル信号で行われる。このデジタル信号は実際に、再構成可能な処理に最適であり、すなわちさまざまな規格またはさまざまな進化に適応可能なものである。残念ながら、プロセッサの性能およびプロセッサの過剰消費を考えると、デジタル処理を行うソフトウェアを純粋に搭載することはできないため、少なくとも部分的なハードウェアの搭載に頼る必要がある。
【0004】
このような背景の中、加算/減算ハードウェア演算器の有用性が前述の移動通信端末に見出され、少なくともFFT/IFFT計算およびビタビ演算に対して、リアルタイムでの動作保証を目的とする有用性が見出された。このような加算/減算ハードウェア演算器は、用途に応じて特別に設計したのち、FFT/IFFT計算を行うプロセッサ、ビタビアルゴリズムを実装するプロセッサ、または加算および/または減算ハードウェアモジュールを用いる算術計算を含む処理を実行するその他のあらゆるプロセッサに搭載することができる。
【0005】
しかしながら、規格のなかでも特に無線通信規格が増加していることから、さまざまな規格を管理できる端末を備える必要に迫られている。
【0006】
複数の規格を管理する第1の対策は、対象規格のさまざまな処理チェーンでそれぞれがハードウェア演算器を有するものを同じ端末内に並列させる方法である。この対策は実装が容易だが、使用するシリコン表面の点、つまり使用するハードウェア演算器の点で効率的ではないという最大の欠点がある。
【0007】
もう1つの対策は、さまざまな処理チェーンを設計し、これらの処理チェーンが機能モジュールの一部およびハードウェア演算器を共用化するようにする方法である。この第2の対策では、端末をパラメータ化し、該当するそれぞれの処理チェーンを実行するための再構成がパラメータ値の変更を1回しか必要としないようにする。とりわけ、ハードウェア演算器を共用化する技術が、L.Alausらによる「Promising technique of parametrization for reconfigurable radio、the Common Operators Technique:fundamentals and examples(再構成可能な無線の有望なパラメータ化、共用演算器の技術:基礎および例)」と題した文献(Journal of Signal Processing Systems、DOI10.1007/s11265−009−0353−04、2009年3月14日発行)に記載されている(非特許文献1)。
【0008】
この文献は例として、FFT/IFFT計算を行うハードウェア演算器は大多数の規格で必要なため、共用化できることが有利であると指摘している。実際、現在の通信規格または開発途中の通信規格のほとんどは、OFDM(英語の「Orthogonal Frequency Division Multiplexing:直交周波数分割多重」)タイプの変調に基づくものである。OFDM変調は、直交周波数に分割することによってデジタル信号を符号化する方法である。OFDM変調の原理は、独立周波数で同時に送信されるサブチャネルに分割して通信を多重化することにある。OFDM変調のまさに中核がFFT計算を有する。
【0009】
FFT演算器は、より一般には周波数領域で信号を受信する機能の基本演算器として働く。例えばFFT演算器は、イコライゼーションによるチャネル推定の周波数領域での実装、マルチキャリア方式の変調/復調、およびいわゆる「canalisation(チャネル管理)」(すなわちチャネルの選択)の機能のフィルタバンクでの実行に使用される。したがってこの演算器は、処理チェーンのさまざまなレベルでさまざまな規格の枠組で使用できる。この演算器によって、FFT計算を行う限定数のハードウェア演算器を備える再構成可能な端末を得ることを検討することができる。
【0010】
しかし、この対策には現在限界がある。というのも、FFT計算を行う演算器またはプロセッサの内部でさえ、異なる構造を持つ複数の加算/減算演算器を使用する必要があるためである。例えば、FFTの係数の実部の計算に含まれる加算/減算演算は、虚部の計算に含まれる加算/減算演算と同じものではい。
【0011】
さらに、FFT計算を行う演算器またはプロセッサとビタビアルゴリズムを実装する演算器またはプロセッサとでは含まれる加算/減算演算も異なるため、別々のハードウェアモジュールを備えることが当然必要になる。
【発明の概要】
【発明が解決しようとする課題】
【0014】
したがって、前述の問題および制約を少なくとも部分的に解決でき、かつ/または端末のリコンフィギュレーション性を向上できる加算/減算ハードウェア演算器を備えることが望まれる。
【課題を解決するための手段】
【0015】
したがって本発明は、加算/減算ハードウェア演算器であって、算術計算を実行する所定構造に応じて、複数の加算/減算ハードウェアモジュールと、これらのモジュール同士の間ならびに演算器の入力および出力とこれらのモジュールとの間の複数のデータ転送接続とを有する加算/減算ハードウェア演算器において、少なくともこの演算器が高速フーリエ変換の係数の実部の計算を完了させる第1の構成と、この演算器が高速フーリエ変換の係数の虚部の計算を完了させる第2の構成と、この演算器がパスメトリック値とビタビアルゴリズムの実装の生き残りパスの計算を実行する第3の構成との間で、加算/減算ハードウェアモジュールの少なくとも一部およびこれらのモジュール間の接続の少なくとも一部は、プログラム可能な少なくとも1つのパラメータを用いて構成可能である加算/減算ハードウェア演算器を目的とする。
【0016】
実際、加算/減算モジュール、このモジュール間の接続および/またはこれらのモジュール間の接続、および加算/減算ハードウェア演算器の入力/出力をパラメータ化すると、このパラメータ化に応じて、FFT計算およびパスメトリック値とビタビアルゴリズムの実装の生き残りパスの計算という異なる段階を含む異なる算術演算に参加することができる所定構造をした単一のハードウェア演算器の設計を検討することができるようになる。そのため、同じ1つの生成ハードウェア演算器を複数の関数に使用し、同じ処理で、共通の規格に従って異なる処理をしたり、あるいは異なる規格に従って異なる処理をしたりすることができる。
【0017】
このような処理には少なくとも1つのFFT/IFFT計算およびビタビアルゴリズムの実装が含まれることを確認すると、この生成ハードウェア演算器は特に移動通信用途に対して有用になる。端末のなかでもとりわけマルチ規格の携帯端末に搭載するコンポーネントの数を削減できるからである。チャネルを変調/復調および符号化/復号化する機能は、実際には1つまたは複数の共用の生成ハードウェア演算器に基づく同じ端末で果たすことができ、端末内に搭載するハードウェア素子の数およびサイズが抑えられる。
【0018】
さらに、FFTの係数の実部および虚部の計算は複素数データに対して演算されるため、得られた生成演算器は、このような演算と、パスメトリック値とビタビアルゴリズムの実装の生き残りパスの計算との間で構成可能であり、入力データを硬データ(2進)か(複数ビットに符号化した)軟データに処理してビタビ復号を実行することができる。
【0019】
選択的に、加算/減算ハードウェアモジュールおよび構成可能な接続はさらに、演算器が独立した加算および/または減算の演算を実行する第4の構成、および演算器が加算および/または減算の連続演算を完了させる第5の構成で、前記少なくとも1つのプログラム可能なパラメータを用いて構成可能にする。
【0020】
同じく選択的に、本発明による加算/減算ハードウェア演算器は、加算器構成と減算器構成との間で第1の2進パラメータを用いて構成可能な第1の加算/減算ハードウェアモジュールと、加算器構成と減算器構成との間で第2の2進パラメータを用いて構成可能な第2の加算/減算ハードウェアモジュールと、加算器構成と減算器構成との間で第3の2進パラメータを用いて構成可能な第3の加算/減算ハードウェアモジュールとを有することができる。
【0021】
同じく選択的に、本発明による加算/減算ハードウェア演算器は、
− 演算器の入力データを供給する構成と構成可能な第2のモジュールの出力を供給する構成との間で、第1の多重化パラメータを用いて構成可能な第1のモジュールにオペランド値を供給する第1の接続と、
− 演算器の入力データを供給する構成と構成可能な第1のモジュールの出力を供給する構成との間で、第2の多重化パラメータを用いて構成可能な第2のモジュールに第1のオペランド値を供給する第2の接続と、
− 演算器の入力データを供給する構成と構成可能な第3のモジュールの出力を供給する構成との間で、第3の多重化パラメータを用いて構成可能な第2のモジュールに第2のオペランド値を供給する第3の接続と、
− 演算器の入力データを供給する構成と構成可能な第2のモジュールの出力を供給する構成との間で、第4の多重化パラメータを用いて構成可能な第3のモジュールにオペランド値を供給する第4の接続と
を有することができる。
【0022】
同じく選択的に、構成可能なそれぞれの接続は、2つの入力と1つの出力を備えて2進パラメータを用いて2つの入力の一方を選択するマルチプレクサを有する。
【0023】
本発明はまた、前述したような少なくとも1つの加算/減算ハードウェア演算器を備える少なくとも1つのバタフライ演算器を有するデジタルデータ処理プロセッサであって、バタフライ演算器は、高速フーリエ変換の計算を実行する第1の構成と、ブランチメトリック値とパスメトリック値とビタビアルゴリズム実装の生き残りパスの計算を実行する第2の構成との間で前記プログラム可能なパラメータを用いて構成可能であるデジタルデータ処理プロセッサも目的とする。
【0024】
選択的に、本発明によるデジタルデータ処理プロセッサは、それぞれのバタフライ演算器が前記高速フーリエ変換の計算を実行する前記第1の構成と、それぞれのバタフライ演算器がブランチメトリック値とパスメトリック値とビタビアルゴリズム実装の生き残りパスの計算を実行する前記第2の構成との間で構成可能な複数のバタフライ演算器であって、Radix−2タイプのトレリス構造のCooley−Tukey型アルゴリズム法による高速フーリエ変換の計算を行い、4つの基準シンボルを持つトレリス構造のビタビアルゴリズムを実装するように両演算器の間で構成されるバタフライ演算器を有することができる。
【0025】
本発明はまた、送信/受信信号をマルチキャリア変調/復調し、畳み込み符号で処理した信号を復号化する移動通信端末であって、前述したような加算/減算ハードウェア演算器を少なくとも1つ有する移動通信端末も目的とする。
【0026】
選択的に、本発明による移動通信端末は、OFDMタイプの変調および復調を行うことができる。
【0027】
同じく選択的に、本発明による移動通信端末は、実装したそれぞれの規格と互換性のあるOFDM変調および復調を行う少なくとも1つの変調器/復調器と、実装したそれぞれの規格と互換性のある畳み込み符号で符号化した信号を復号化する少なくとも1つの復号化器とを有することができる。
【0028】
本発明は、添付の図を参照しながら例のみを目的として挙げた以下の説明文を読めばよりよく理解できるであろう。
【発明を実施するための形態】
【0030】
高速フーリエ変換FFTは、離散フーリエ変換を計算するアルゴリズムである。このアルゴリズムは、信号をデジタル処理し、時間または空間領域の離散データを周波数領域で変換するのに使用する。
【0031】
つまり、例えば信号xのN値の離散時間値x[0]、...、x[N−1]である。この信号xのフーリエ変換XのN個の周波数値は次式で規定される。
【0035】
逆離散フーリエ変換は、符号および因子1/Nを除いて離散フーリエ変換と同じであるため、逆高速フーリエ変換IFFTは、この逆離散フーリエ変換を計算するためのFFTと同じアルゴリズムに基づくものである。したがって、高速フーリエ変換FFTの計算を実行するように構成されたあらゆるハードウェア演算器またはデジタルデータ処理プロセッサも同じく逆高速フーリエ変換IFFTの計算ができる。
【0036】
FFT計算のうち特に単純でよく用いられる実装が、Radix2タイプの再分割によるCooley−Tukey型アルゴリズム法である。この実装では、変換したサンプル数Nが2の累乗であると仮定し、n個のサンプル処理を規模の小さいn/2のサイズである同じ処理2回に再帰的に分割する。実際、第1の規模は以下のようになる。
【0038】
帰納的に、所定規模のFFT計算を規模の小さい2つのFFT計算で実行し、所定規模の信号のうち1つは偶数のサンプルに対して係り、もう1つは奇数のサンプルに対して係る。
【0039】
よく知られているさらに単純な方法を用いると、連続ステップを含む複数の規模(またはレベル)のある
図1に示したようなトレリス構造の処理が得られ、この図ではN=8で3つのステップSt1、St2およびSt3が含まれている。
【0040】
各ステップではバタフライ演算をN/2回行い、合計すると
図2に示した計算のようにN/2×log
2(N)回のバタフライ演算を行う。このバタフライ演算では、2つのデータy
k[0]およびy
k[1]をクロス計算する必要があり、一方のデータy
k[1]の複素数に因子Wを乗算して中間値を供給したのち、y
k[0]とこの中間値との間で複素加算および複素減算を行って2つのデータy
k+1[0]およびy
k+1[1]を供給する。
図1に示した例では、因子Wの値は、規模/ステップSt1ではw
0、規模/ステップSt2ではw
0またはw
2、規模/ステップSt3ではw
0、w
1、w
2またはw
3になる。
【0041】
y
k+1[0]およびy
k+1[1]をy
k[0]およびy
k[1]に結びつける2つの関係は次式になる。
y
k+1[0]=y
k[0]+W.y
k[1]
y
k+1[1]=y
k[0]−W.y
k[1]
【0042】
実際には、バタフライ演算は、複素乗算を行う第1のステージと、第1のステージの出力データを入力で受信して複素加算および複素減算を行う第2のステージとで構成した演算器で実行する。この複素乗算を実行するため、第1のステージは、実数乗算を行うハードウェアモジュールと、実数加算/減算を行うハードウェアモジュールと、これらのモジュール間でデータを転送する接続とを有する。この複素加算および複素減算を実行するため、第2のステージは、実数加算/減算を行うハードウェアモジュールと、これらのモジュールにデータを転送する接続とを有する.
【0043】
さらに正確には、
y
k[1]=a+ib、
W=c+id、
y
k[0]=e+if、
であることがわかり、式中a、b、c、d、eおよびfは実数値であり、次式の実数乗算、実数加算および実数減算を行うハードウェアモジュールが必要であることがわかる。
y
k+1[0]=(ac−bd+e)+i(bc+ad+f)
y
k+1[1]=(−ac+bd+e)+i(−bc−ad+f)
【0044】
この式では、バタフライ演算器が実行する計算には、実数乗算を行うハードウェアモジュール4つ、実数加算を行うハードウェアモジュール3つ、実数減算を行うハードウェアモジュール3つを必要とし、これは
図3に示したとおりである。
【0045】
さらに正確には、
図3に示したバタフライ演算器10が複素乗算を行う符号12を付した第1のステージは、それぞれが積ad、bc、bdおよびacを実行する4つの乗算モジュール14、16、18および20と、モジュール14および16からの出力データを受信して減算ac−bdを実行する減算モジュール22と、モジュール18および20からの出力データを受信して加算bc+adを実行する加算モジュール24とを有する。
【0046】
バタフライ演算器10が複素加算および複素減算を行う符号26を付した第2のステージは、
− モジュール22からの出力データおよび変数eを受信して演算ac−bd+eを実行し、y
k+1[0]からFFt−Re0と表記した実部を供給する加算モジュール28と、
− モジュール22からの出力データおよび変数eを受信して演算−ac+bd+eを実行し、y
k+1[1]からFFt−Re1と表記した実部を供給する減算モジュール30と、
− モジュール24からの出力データおよび変数fを受信して演算bc+ad+fを実行し、y
k+1[0]からFFt−Im0と表記した虚部を供給する加算モジュール32と、
− モジュール24からの出力データおよび変数fを受信して演算−bc−ad+fを実行し、y
k+1[1]からFFt−Im1と表記した虚部を供給する減算モジュール34と、
を有する。
【0047】
相互接続した3つの加算モジュールおよび減算モジュール22、28および30は第1の加算/減算ハードウェア演算器36を構成し、相互接続した3つの加算モジュールおよび減算モジュール24、32および34は構造がほぼ同じ第2の加算/減算ハードウェア演算器38を構成することがわかる。
【0048】
この2つの加算/減算ハードウェア演算器36および38の構造はほぼ同じように見えるが、第1の演算器36は2つの減算器(22、30)および1つの加算器(28)を有するのに対し、第2の演算器38は2つの加算器(24、32)および1つの減算器(34)を有する点が異なる。
【0049】
考えられるその他の形態では、FFTを行うバタフライ演算器が実行する計算はわずかに異なる構造を含むことができるが、この構造は一般に、相互接続した3つの加算/減算モジュールを有するハードウェア演算器36および38を少なくとも備える。
【0050】
ビタビアルゴリズムを実装するためのデータ処理チェーンの全体構造は、
図4に示すとおりである。
【0051】
このアルゴリズムは、畳み込み符号化器、すなわち各入力ビットがレジスタ内でシフトを生成し、出力で結果を生成するシフトレジスタを有する符号化器で符号化した信号の場合に[X
0,...,X
N−1]を測定する系列を生成する最も確からしい状態の系列を帰納法により発見することを目的とする。
【0052】
このアルゴリズムの原理は、受信したそれぞれの値をシフトレジスタから出力され得るあらゆる値と比較し、最も確からしいこのレジスタのどのシフトから受信値が生じたのかを判定する。このシフトを認識することによって、このシフトを発生させた値がわかり、その結果、受信メッセージの生成値がわかる。
【0053】
受信メッセージの各値に対して、縦座標がシフトレジスタの取り得る状態の集合であり、横座標が可能な遷移の集合であるトレリス構造が得られ、このトレリスのパターンは、符号化器に新たな入力があるごとに時間的に変化することなく反復される。符号化器の出力では、特定の2進系列のみが可能である。この系列はトレリス線図に存在する異なるパスと対応する。
【0054】
ビタビアルゴリズムの適用は、トレリスの中から受信系列に最も近い2進系列を検索することで成り立つ。実際には、このアルゴリズムの実行には、それぞれの時点でトレリスのそれぞれの状態に対して、以下の3つの演算を行う。
【0055】
− ブロック40が実行するブランチメトリック値の計算であって、(効率1/Nに対して)N個のシンボルを受信した場合に、受信したシンボルの2
N個のシンボルに対する尤度を表す値を計算することからなる計算。この2
N個の値はブランチメトリックと呼ばれ、N=2の場合はBm00、Bm01、Bm10およびBm11と表記する。
【0056】
− ブロック42が実行するパスメトリック値および生き残りパスの計算であって、シフトレジスタの最も確からしい状態を判定することからなる計算。トレリスの各ノードに対して、送信系列の一部となるこのノードに累積した確からしさを表すパスメトリックが、前の周期で計算されたパスメトリックおよび現在のブランチメトリック値を考慮して更新される。この更新は、2つのパスメトリックの計算および最も弱いパス(生き残りパス)の選択を含む。
【0057】
− ブロック44が実行する判定によるビットの記憶であって、生き残りパスをトレースバックする技術によってフレームの最後で復号した信号を復元するための記憶。
【0058】
具体的には、ブロック40は受信値とシフトレジスタが出力し得る値との差を計算する。
【0059】
ブロック42は、一般にACS(加算比較選択)(「Addition Comparison and Selection」)ブロックと呼ばれるもので、トレリスの各ノードで2つのパスメトリックとブランチメトリックとの加算、得られた2つのパスメトリックの比較、および最も弱いパスの選択を実行する。
【0060】
そのため、ブロック40が計算した4つの可能なブランチメトリックBm00、Bm01、Bm10およびBm11に基づく計算の場合、
図5に示したようなバタフライ演算器で次の2つのパスメトリックの計算をすることがわかる。
Pm
k[t+l]=Vit0=Min(Pm
k[t]+Bm00,Pm
k+1[t]+Bm10)
Pm
k+N/2[t+1]=Vit1=Min(Pm
k[t]+Bm01,Pm
k+1[t]+Bm11)
【0061】
2つの値の比較による最小値の検出は、マルチプレクサに接続する減算器を用いて実行できることを考えると、ブロック40および42の計算、つまりブランチメトリック値とパスメトリック値とビタビアルゴリズム実装の生き残りパスの計算を実行するために、このバタフライ演算器は、
− パスメトリック値および生き残りパスの2つの計算それぞれに対し、加算ハードウェアモジュール2つおよび減算ハードウェアモジュール1つ、
− 4つのブランチメトリック値Bm00、Bm01、Bm10およびBm11を計算する追加の減算ハードウェアモジュール4つ
を必要とすることがわかる。
【0062】
総合すると、
図6に示すように、10個の加算/減算ハードウェアモジュールがこのバタフライ演算器に使用される。前の周期で計算した2つのパスメトリックをP0およびP1、受信値をRef、4つの可能な出力値をa、b、c、dと表示すると、
図6に示すバタフライ演算器46は連続する第1のレベルで、
− 演算Ref−b=Bm01、Ref−d=Bm11、Ref−c=Bm10およびRef−a=Bm00を実行する4つの減算モジュール56、58、60および62を有し、
連続する第2のレベルで、
− モジュール54からの出力データおよび変数P0を受信して演算P0+Bm00を実行する加算モジュール56と、
− モジュール52からの出力データおよび変数P1を受信して演算P1+Bm10を実行する加算モジュール58と、
− モジュール48からの出力データおよび変数P0を受信して演算P0+Bm01を実行する加算モジュール62と、
− モジュール50からの出力データおよび変数P1を受信して演算P1+Bm11を実行する加算モジュール64とを有し、
連続する第3のレベルで、
− モジュール56および58からの出力データを受信してP0+Bm00とP1+Bm10とを比較し、そこからVit0の値を導く減算モジュール60と、
− モジュール62および64からの出力データを受信してP0+Bm01とP1+Bm11とを比較し、そこからVit1の値を導く減算モジュール66とを有する。
【0063】
したがって、相互接続した3つの加算モジュールおよび減算モジュール56、58および60は第3の加算/減算ハードウェア演算器68を構成し相互接続した3つの加算モジュールおよび減算モジュール62、64および66は同じ構造の第4の加算/減算ハードウェア演算器70を構成することがわかる。
【0064】
第3および第4の演算器68および70のこの同じ構造は前述した第1および第2の演算器36および38の構造とほぼ同じように見えるが、加算モジュールと減算モジュールとの間が相互接続されている点が異なる。
【0065】
本発明では、所定構造の一般的な加算/減算ハードウェア演算器だが少なくとも1つのパラメータを用いて構成可能なものを提供する。
【0066】
実際、FFTを行うバタフライ演算器10およびビタビ演算器のバタフライ構造46は、ハードウェアの構成を含み、この構成によって、これらの演算器の特定の加算/減算モジュールおよび接続を例えばマルチプレクサを用いてパラメータ化することによる演算器36、38、68および70の共用化の検討が可能になる。
【0067】
図7に一例を示したように、このような共用化が可能になるのは、前述の2組の演算器、つまりFFT用の演算器36および38の組とビタビアルゴリズム用の演算器68および70の組が、加算/減算モジュールを同じように分割し(2×3)、1つのモジュールと同じ演算器の他の2つのモジュールとの間に体系的な接続を有するためである。これは、対象とする演算器の入力と出力とをそれぞれ共通の数学表現にした場合にさらに顕著になる。
【0068】
第1の加算/減算演算器36のモジュール22、28および30を考える場合、加算モジュール28の2つの入力の一方をE1(e)、減算モジュール22の2つの入力をE3(bd)およびE4(ac)、減算モジュール30の2つの入力の一方をE6(e)、加算モジュール28の出力をS1(ac−bd+e)、減算モジュール22の出力をS2(ac−bd)、減算モジュール30の出力をS3(−ac+bd+e)と表記すると、次の一連の式が得られる。
【0070】
次に、第2の加算/減算演算器38のモジュール24、32および34を考える場合、加算モジュール32の2つの入力の一方をE1(f)、加算モジュール24の2つの入力をE3(ad)およびE4(bc)、減算モジュール34の2つの入力の一方をE6(f)、加算モジュール32の出力をS1(ad+bc+f)、加算モジュール24の出力をS2(ad+bc)、S3減算モジュール34の出力を(−ad−bc+f)と表記すると、次の一連の式が得られる。
【0072】
次に、第3の加算/減算演算器68のモジュール56、58および60を考える場合、加算モジュール58の2つの入力をE1(Ref−c)およびE2(P1)、加算モジュール56の2つの入力をE5(Ref−a)およびE6(P0)、加算モジュール58の出力をS1(P1+Bm10)、減算モジュール60の出力をS2(P0+Bm00−(P1+Bm10))、加算モジュール56の出力をS3(P0+Bm00)と表記すると、次の一連の式が得られる。
【0074】
最後に、第4の加算/減算演算器70のモジュール62、64および66を考える場合、加算モジュール64の2つの入力をE1(Ref−d)およびE2(P1)、加算モジュール62の2つの入力をE5(Ref−b)およびE6(P0)、加算モジュール64の出力をS1(P1+Bm11)、減算モジュール66の出力をS2(P0+Bm01−(P1+Bm11))、加算モジュール62の出力をS3(P0+Bm01)と表記すると、前の式と同じ一連の式が得られる。
【0075】
この3つの一連の式から、2つの2進パラメータ(αおよびβ)を除いて前述の4つの演算器に共用の第4の式を導くことができる。
【0077】
(α、β)=(0、1)である第1の演算器36、(α、β)=(0、0)である第2の演算器38、および(α、β)=(1、1)である第3および第4の演算器が得られる。
【0078】
この第4の一連の式から、
− E1およびパラメータαの値に応じて制御されるマルチプレクサの出力を受信してE2(α=1)またはS2(α=0)を供給する加算ハードウェアモジュールと、
− パラメータαの値に応じて制御される第1のマルチプレクサの出力を受信してS1(α=1)またはE3(α=0)を供給し、パラメータαの値に応じて制御される第2のマルチプレクサの出力を受信してS3(α=1)またはE4(α=0)を供給する加算/減算ハードウェアモジュール(β=0の場合は加算器、β=1の場合は減算器)と、
− E6およびパラメータαの値に応じて制御されるマルチプレクサの出力を受信してE5(α=1)またはS2(α=0)を供給する加算/減算ハードウェアモジュール(α=0の場合は加算器、α=1の場合は減算器)と
を最低限有する共用演算器を導くことができる。
【0079】
さらに有利な方法では、
図7に示す生成演算器72は、これらの最低限の要求に応答するだけでなく、その他の算術計算用途を検討することもできる。
【0080】
この演算器は、6つの入力ポートE1、E2、E3、E4、E5および6および3つの出力ポートS1、S2およびS3を有する。この演算器はさらに、パラメータβ1に応じて(β1=0であれば加算器またはβ1=1であれば減算器)加算器または減算器に構成可能であり、E1およびパラメータα1の値に応じて制御される第1のマルチプレクサ80の出力を受信してE2(α1=1)またはS2(α1=0)を供給し、S1を供給する第1の加算/減算モジュール74を有する。この演算器はさらに、パラメータβ2に応じて(β2=0であれば加算器またはβ2=1であれば減算器)加算器または減算器に構成可能であり、パラメータα2の値に応じて制御される第2のマルチプレクサ82の出力を受信してS1(α2=1)またはE3(α2=0)を供給し、パラメータα3の値に応じて制御される第3のマルチプレクサ84の出力を受信してE4(α3=1)またはS3(α3=0)を供給し、S2を供給する第2の加算/減算モジュール76を有する。最後に、この演算器はさらに、パラメータβ3に応じて(β3=0であれば加算器またはβ3=1であれば減算器)加算器または減算器に構成可能であり、E6およびパラメータα4の値に応じて制御される第4のマルチプレクサ86の出力を受信してS2(α4=1)またはE5(α4=0)を供給し、S3を供給する第3の加算/減算モジュール78を有する。
【0081】
このことから、以下のパラメータ化可能な一連の式を導く。
【0083】
前述した7つの2進パラメータ(α1、α2、α3、α4、β1、β2、β3)を使用すると、演算器36、38、68および70の構成が得られるだけでなく、前述したFFT計算およびビタビ演算以外の処理にも仕様できるその他の構成も得ることができる。
【0084】
現実的には、加算器/減算器の出力および/または入力に記憶素子を導入してラップアラウンドによって生成される不確定を解決する必要があることがわかるであろう。
【0085】
したがって、
図8に示すように、(α1、α2、α3、α4、β1、β2、β3)=(0、0、1、1、0、1、1)または(0、0、1、1、0、0、1)の場合、生成演算器72はそれぞれ演算器36または38として働く。
【0086】
図9に示すように、(α1、α2、α3、α4、β1、β2、β3)=(1、1、0、0、0、1、0)の場合、生成演算器72は演算器68または70として働く。
【0087】
このほか、例を挙げると、
図10に示すように、(α1、α2、α3、α4、β1、β2、β3)=(1、0、1、0、β1、β2、β3)の場合、β1、β2、β3の2進値がどのようなものであっても、生成演算器72は以下の複数の(この場合は3つの)加算および/または減算演算を独立して実行する。
E1+/−E2=S1、E3+/−E4=S2、E5+/−E6=S3
【0088】
最後に、さらに例を挙げると、
図11に示すように、(α1、α2、α3、α4、β1、β2、β3)=(1、1、1、1、β1、β2、β3)の場合、β1、β2、β3の2進値がどのようなものであっても、生成演算器72は以下の複数の(この場合は3つの)加算および/または減算演算を連続して実行する。
[(E1+/−E2)+/−E4]+/−E6
【0089】
最低限必要な4つの構成である演算器36、38、68および70における係数α1、α2、α3、α4、β1、β2、β3同士の相関関係に注目すると、2つの2進パラメータαおよびβを用いて生成演算器72に対して可能な最低限のパラメータ化が発見されることがよくわかる。実際、この4つの構成(α1、α2、α3、α4、β1、β2、β3)=(α、α、1−α、1−α、0、β、1−α)では、前述したように第1の演算器36は(α、β)=(0、1)、第2の演算器38は(α、β)=(0、0)、第3および第4の演算器68および70は(α、β)=(1、1)になる。
【0090】
生成演算器72を基に、演算器36、38、68および70の機能を実行するための演算器72のような少なくとも1つの演算器を共用化することによって、第1の構成で高速フーリエ変換の計算を実行でき、第2の構成でブランチメトリック値とパスメトリック値とビタビアルゴリズム実装の生き残りパスの計算を実行できる(少なくともパラメータαおよびβを用いて)パラメータ化可能な少なくとも1つのバタフライ共用演算器を有するデータ処理プロセッサを設計することができる。
【0091】
FFTアルゴリズムとビタビアルゴリズムとは、処理するデータにおいても実行する機能においても異なるものだが、演算器72のような演算器を用いることによる減算および/または加算ハードウェアモジュールの共用化および共用構造の概念は、この2つのアルゴリズムを実行するバタフライ演算器の動作が元々似ていることが明らかであったために実現可能なものである。
【0092】
ハードウェアの複雑性という点では、演算器72のような生成演算器は演算器36、38、68および70のいずれかのような演算器と同じものである。したがって、FFTアルゴリズムまたはビタビアルゴリズムに特化した演算器36、38、68または70の代わりに生成演算器を実装することで、データ処理プロセッサに「生成」特性を与えることが可能になる。
【0093】
さらに、この生成演算器を使用することにより、実際に実装されているハードウェア資源を減少させて複雑性という点で利得が得られる結果になる。現在の規格に要求される最大数のバタフライ演算器および各バタフライ演算器の割合を考慮する場合、この割合は実装の並列処理率、つまり具体的に実装した演算器の数を表している。ビタビアルゴリズムおよびFFTアルゴリズムに対する1組の割合の場合、特定の加算/減算演算器を2つのアルゴリズムのどちらかに必要な演算器の最大数と同数の前述の生成演算器に代替することで潜在的に実現可能な利得の計算が可能になる。
【0094】
したがって、演算器72の生成特性によって、FFTアルゴリズムのバタフライ演算器数とビタビアルゴリズムのバタフライ演算器数との間の配分に最適な形で適合させることができる。得られる利得は、代替する演算器の並列処理によって異なる。最初にビタビアルゴリズムを実装したバタフライ演算器での並列処理が増加した場合、利得は小さくなる(表の最終行)。FFTアルゴリズムを実装したバタフライ演算器での並列処理が増加した場合、利得は大きくなる(表の最終列)。
【0095】
生成演算器72のもう1つの利点が、FFTモードで処理したデータは複素数になるはずであり、その実部および虚部は一般に整数であることから、ビタビモードの場合に利益を引き出すことができるという点である。そのためビタビモードでは、処理プロセッサは、硬入力データ(2進)とも軟入力データ(整数)とも動作することができる。
【0096】
最後に、マイクロエレクトロニクス技術の性能には変動があることを考慮すると、基礎が可能なかぎり規則的な演算器/プロセッサを提供することが有利である。実際には、このようなプロセッサを超過数設置し、それを性能またはこれらのプロセッサのそれぞれに起こり得る故障に応じて後験的に構成するように検討することができる。その結果、前述したような少なくとも1つの生成演算器72を備えるプロセッサを、送信/受信信号をマルチキャリア変調/復調し、
図12に示すように畳み込み符号で処理した信号を復号化する移動通信端末88に搭載することが有利である。
【0097】
少なくともこのような生成演算器を備え、FFTおよびビタビの2つの動作モードを有するプロセッサの用途は多数あり、単一規格の端末または多数の規格に対応する端末に適用される。実際、多くの規格は、例えばOFDM変調(FFT計算)を実行し、畳み込み符号の復号化(ビタビアルゴリズム)を必要とし、以下の規格がある。
【0098】
− 地上波デジタルラジオ放送DAB、
− 地上波デジタルテレビジョン放送(DVB−T、DVB−H)、
− 地上波デジタルラジオ放送T−DMB、
− デジタルラジオ放送DRM、
− 有線接続:ADSL、VDSL、電力線モデム(Homeplug)、ケーブルモデム(Docsis規格)、
− 802.11a、802.11g(Wi−Fi)、802.16(WiMAX)およびHiperNの規格に基づく無線ネットワーク
− 次世代モバイルネットワーク(4G)。
【0099】
当然ながら、現在の規格または研究途中の規格のほぼすべてはOFDM変調および/またはビタビ復号を利用するため、このリストは網羅的なものではない。
【0100】
さらに、最近の研究から、FFTは単純な変調よりもさらに多様な演算に適用できることがわかった。とりわけFFTは、相関関係の計算、FIRタイプのフィルタ生成、チャネルの推定、または複数のユーザの検出に使用できる。同じように、ビタビアルゴリズムは、過去の研究ではターボ符号の復号化にも及んだ。
【0101】
したがって、本発明が提供する生成演算器72は、単一規格またはマルチ規格の移動通信端末のほとんどの機能に使用できる。構成可能な生成演算器を有する同種の処理ブロックを実装することによって生成演算器の搭載が容易になる。
【0102】
最後に、本発明は、本明細書で検討した実施形態に限定されるものではないことがわかるであろう。ここに開示した教示に照らし合わせて、上に記載した実施形態にさまざまな修正を加えてもよいことは当業者には明らかであろう。以下の特許請求の範囲では、使用した用語が請求項を本明細書で明らかにした実施形態に限定するものと解釈してはならず、本文の記載およびそこから予見される内容は、ここに開示した教示の実装に一般知識を応用することによって当業者が到達しうる範囲内であることから、請求項が範囲に含めると想定するあらゆる同等のものも含まれると解釈すべきである。