(58)【調査した分野】(Int.Cl.,DB名)
請求項1に記載の方法であって、前記入力加数は、第1入力の実部であり、前記第1積は、第2入力の実部と第3入力の実部を乗算した積であり、前記第2積は、前記第2入力の虚部と前記第3入力の虚部を乗算した積である、
方法。
請求項1に記載の方法であって、前記入力加数は、第1入力の虚部であり、前記第1積は、第2入力の実部と第3入力の虚部の乗算された積であり、そして、前記第2積は、前記第2入力の虚部と前記第3入力の実部の乗算された積である、
方法。
請求項1に記載の方法であって、前記の、前記入力加数、前記第1積および前記第2積の最大指数を備える前記1つ、の仮数と一緒に位置を合わせるために、前記入力加数、前記第1積および前記第2積のより小さい指数を備える前記2つ、の仮数をシフトするシフトステップは、最大指数を備える前記1つの前記仮数と一緒に位置を合わせるために前記より小さい指数を備える前記2つの前記仮数を右にシフトするシフトステップであり、前記の位置合わせされた入力加数、前記の位置合わせされた第1積、前記の位置合わせされた第2積は、同じ指数を備える、シフトステップを含む、
方法。
請求項1に記載の方法であって、前記の位置合わせされた入力加数、前記の位置合わせされた第1積および前記の位置合わせされた第2積を加算する加算ステップは、桁上げ保存加算器および全加算器によって、前記の位置合わせされた入力加数、前記の位置合わせされた第1積および前記の位置合わせされた第2積を加算する加算ステップを含む、
方法。
請求項1に記載の方法であって、前記の位置合わせされた入力加数、前記の位置合わせされた第1積および前記の位置合わせされた第2積を加算する加算ステップは、前記の位置合わせされた入力加数、前記の位置合わせされた第1積および前記の位置合わせされた第2積を2つの径路において加算する加算ステップであり、符号生成および絶対値選択処理によって生成される制御信号に従って2つの径路の1つの径路が選択される、加算ステップを含む、
方法。
【発明を実施するための形態】
【0008】
現在好適の実施形態の作成と使用が以下詳細に議論される。しかし、本発明は、特定の文脈の幅広いバリエーションにおいて実施され得る多くの適用可能な発明のコンセプトを提供するということが理解されるべきである。議論される特定の実施形態は、本発明を作成し使用するための特定の方法の単なる例示であり、本発明の範囲を制限するものではない。
【0009】
浮動小数点(「FLP」)複素数乗加算(「CMAD」)演算を実行するデバイスは、図形処理システム、レーダシステムおよび通信システム等のデジタルシステムの信号処理において最も頻繁に使用される演算の1つを実行する。CMAD演算の高速化およびエネルギー効率の改善は、DSPまたは他のデジタルデバイスの性能を著しく改善することができる。
【0010】
複素数についての算術演算はもっとさらなる挑戦を提起する。そのような複素数演算は一般に、各項の実部と虚部について別々に実行される。その実装のために著しい量のシリコン領域を消費し、その実行のために著しい量の時間を必要とする相当量の処理が実行されなければならない。
【0011】
本明細書において紹介されているように、デジタル処理の一実施形態は、DSP、ハードウェアアクセラレータ等における浮動小数点複素数乗加算処理のための高速アルゴリズムを実装する。
【0012】
一実施形態において、複素数に関する算術演算を実行するために要求される遅延およびエネルギーが削減される。浮動小数点複素数乗加算を効率的に実行できるDSPまたは他の算術デバイスを生み出すために、入力データの特性および中間計算結果が利用される。
【0013】
浮動小数点複素数乗加算ユニットは、下記方程式を実行する。
A=B+C×D
ここで、項A、B、CおよびDは、浮動小数点複素数であり、その各成分は一般に、符号ビット、指数ビット、および仮数ビットを用いたデジタル浮動小数点フォーマットにおいて表現される。項Aは、複素数浮動小数点乗加算結果である。複素数の一インスタンスとして、実数もまた、本発明の実施形態において議論される複素数演算に従って処理することができることに留意すべきである。
【0014】
本発明の一実施形態に従って、標準的な浮動小数点乗算演算に続く標準的な浮動小数点加算演算を用いた浮動小数点CMAD演算を実装する必要はない。通信システムを例とすると、ロングタームエボリューション(「LTE」)、ユニバーサルモバイル通信システム(「UMTS」)、およびモバイル通信のためのグローバルシステム(「GSM(登録商標)」)セルラ仕様書等の下で動作するように設計された通信システムにおいて採用されるベースバンドアプリケーションの精度要求を満足するように、CMAD計算は単純化できる。複素数乗算および加算を組合せて1つの処理にすることにより、シグナルプロセッサにおけるより少ない処理遅延およびより高い電力効率のために、ロジック回路を最適化する重要な機会が許可される。例えば、ロジックから冗長性を削除でき、計算ステップを併合でき、桁上げ保存加算器が使用できる。
【0015】
上述の浮動小数点複素数乗加算を実数成分と虚数成分に分解することにより下記2つの方程式が生成される。
A.実部=B.実部+C.実部×D.実部−C.虚部×D.虚部
A.虚部=B.虚部+C.実部×D.虚部+C.虚部×D.実部
各方程式は一実施形態において実数算術を実行するデジタルロジックを用いて実装できる。A.実部のための方程式の結果は、1実数と、2実数の積を引き算した2実数の積との和である。A.虚部のための方程式の結果は、1実数と、2実数の積と、さらなる2実数の積との和である。各方程式は、実加数と、実積数および実積数の加算または減算の合計とを含む。入力加数および2つの実積数の中でより小さい指数を持つ2つ、の仮数は、最大の指数を持つ第3の数の仮数と位置を合わせるためにシフトされる。3つの仮数の合計は、桁上げ保存加算器とそれに続く2入力全加算器を用いて計算される。
【0016】
2つの積と入力加数の仮数は、その指数に従って位置を合わせられ、その仮数に従って、もし不要な精度の下位ビットがあるならばそのビットを捨てるために切り捨てられる。つぎに、2つの切り捨てられた積は、切り捨てられた入力加数に加算され、および/または、切り捨てられた入力加数から減算される。
【0017】
加算器のビット幅は、アプリケーションの精度要求に従って決定される。加算器のビット幅を若干増加することにより、切り捨てによって生じる精度損失は部分的に補償できる。処理回路および処理時間を節約するために、仮数の2つの積の正規化は(加算器のビット幅にもう1ビット加えることにより)避けることができる。ソフトウェアパイプラインの開始間隔を減らすために、CMADの加数の使用は、後のパイプライン段階に延期させることができる。
【0018】
図1および2を参照すると、一実施形態に従った、合計されるべき3項の3つの例示の仮数101、102および103の位置合わせおよび切り捨てのグラフ表示が示されている。具体的には、
図1は、位置合わせ前の3つの例示の仮数101、102および103を示し、
図2は、位置合わせ後の3つの例示の仮数101、102および103を示す。
【0019】
図1および2において示された切り捨ての例において、浮動小数点入力2進実数は、1個の符号ビット、5個の指数ビット、および10個の仮数ビットとして表される。入力仮数は隠れた「1」のビットによって先行されると想定される。それに応じて、各仮数は形式「1.xxxxxxxxxx」の11ビット、すなわち、隠れたビット「1」に基数点の後の10個の仮数ビットが続く、と想定される。こうして、各入力仮数は、範囲1≦仮数<2に正規化される。11ビットの仮数の単純な乗算は、普通、多くのアプリケーションにとって下位ビットに不要な精度を含む22ビットまでの仮数の積を生成するであろう。
【0020】
図1および2において示された表記は、A.実部およびA.虚部のための上記実数および虚数方程式の表記にさらなるパラメータが続き、その中で、
M
biは、B.虚部の仮数であり、
M
riは、C.実部およびD.虚部の仮数積であり、
M
irは、C.虚部およびD.実部の仮数積である。
図1および2の例において、(C.実部×D.虚部)が最大の指数を持つことが想定されている。そして、位置合わせのためのM
biおよびM
irのそれぞれのシフト距離は、
ΔE
rib=exp(C.実部)+exp(D.虚部)−exp(B.実部)、および
ΔEriir=exp(C.実部)+exp(D.虚部)−(exp(C.虚部)+exp(D.実部))
である。処理の目的は、合計される項のすべての指数を最大の指数に等しく設定することである。その結果、基数点110は、指数の位置合わせ後の各成分に対して同一になる。
【0021】
基数点の位置合わせ後の3個の仮数101、102および103は、
図1および2においてビット「1」によって識別される先頭の1個の符号ビット、それに続く、ビット「2」および「3」によって識別される、3項の加算によって生成される可能性のある桁上げを収容するための2個のビット、それに続く、積の整数部を収容するためのさらなる2ビット「4」および「5」によって表される。先頭の5ビットには、必要な精度を保つための14個の少数ビットが続く。切り捨てビット120は、最終アプリケーションの要求を調べることによって決定され得る不必要なレベルの精度を表すので、無視される。
【0022】
本例において、19ビットの仮数を生成するために、最大の指数を持つ項から6ビットが切り捨てられる。2個の19ビットの仮数を生成するために、仮数102、103からのビットの切り捨てが対応してなされる。本例においては、19ビット加算器を用いて、3個の切り捨てられた結果の仮数を加算することができる。
【0023】
本発明の一実施形態に従った、仮数102を仮数101に位置合わせするための
図1を最初に参照すると、仮数102(位置合わせ後の)のビット「4」は、12ビットの仮数を生成するために「0」を用いて埋められ、その結果得られる12ビット仮数102は、ビット距離ΔE
ribだけ右にシフトされ、その結果、仮数102の全体のビット長は、位置合わせ後に(ΔE
rib+12)になり、それは、ΔE
rib+Mbiのもともとの11ビット+ビット「4」において加えられた「0」の1ビット、である。仮数101は、精度要求に従って望まれたように16ビットに切り捨てられ、仮数102は、対応するように切り捨てられ、仮数102の切り捨てられた部分は(ΔE
rib+12−16)すなわち(ΔE
rib−4)となる。
【0024】
転じて
図3および4を参照すると、一実施形態に従った、複素数浮動小数点乗加算ユニットを採用したA=B+C×Dの虚部A.虚部と実部A.実部の計算のための論理2進処理の配置および相互接続をそれぞれ示すブロック図が示されている。入力C.r.s、C.i.s、D.r.s、D.i.s、B.r.s、およびB.i.sは、それぞれ、項およびファクタC、D、およびBの実部および虚部の符号ビットを表す。入力C.r.e、C.i.e、D.r.e、D.i.e、B.r.e、およびB.i.eは、それぞれ、項およびファクタC、D、およびBの実部および虚部の指数ビットを表す。入力C.r.m、C.i.m、D.r.m、D.i.m、B.r.m、およびB.i.mは、それぞれ、項およびファクタC、D、およびBの実部および虚部の仮数ビットを表す。仮数入力は、2+20ビットの積307、308を生成する乗算器305および306に結合されている。乗算器305および306によって生成された積307、308は、正規化されていない、すなわち、乗算によって生成された基数点の位置は、いくらかの処理回路および時間を節約するために、積の基数点の正規化をすることなく、保持されている。入力の指数ビットは加算器310および311に結合されており、その出力および入力B.i.eの指数ビットは、基数の位置合わせのために必要なシフトを決定する指数最大および差ブロック315に結合されている。指数最大および差ブロック315の出力は、基数の位置合わせを達成するために入力データをシフトするシフトレジスタ320、321、および322と結合されている。指数最大および差ブロック315によって実行される位置合わせは、シフトレジスタ320、321、および322と連携して、
図1を参照して上述された処理に従って動作する。
【0025】
シフトレジスタの出力は、シフトされた2+20ビットの積、およびシフトされた加数の仮数の2の補数表現を形成し、2の補数算術を使用した計算を実行するために使用されるビット反転器を含む2つの径路330、331に結合されている。一実施形態において、2の補数算術を利用する必要はない。2つの径路330、331が提供されているのは、結果となる加算の符号がまだわからないからである。和の絶対値の計算は、経路330、331における和と並行して負の和を計算することにより進められる。ビット反転器はビット反転器制御ブロック335によって制御され、その入力は、排他的ORされた符号ビットC.r.s^D.i.sおよびC.i.s^D.r.s、および加数Bの実数成分の符号ビットB.r.sである。左径路330は、加算の正の結果を想定し、右径路331は、負の結果を想定する。各それぞれの径路における加算は、桁上げ保存加算器340、341を用いて実行され、続いて、
2つの加数に合併するブロック345、346によって、調整ビット(2の補数計算のための)が桁上げ保存加算器
340、341の2つの出力と合わされ、さらに、桁上げ先読み加算器(キャリールックアヘッドアダー(carry-look-ahead adder))360、361が続く。調整ビットは、CMAD演算の入力項の符号ビットに基づいて(2の補数計算の一部として)調整ビットを生成するブロック343から来る。左径路330または右径路331における結果の選択は、符号生成および絶対値選択ブロック350によって制御されるマルチプレクサー380および381によって行われる。
【0026】
2つの仮数の積と入力加数をすべて一緒に位置合わせし、そして合計を計算することの目的は、桁上げ先読み加算器(360、361)(またはリップルキャリーアダー)が後に続く桁上げ保存加算器(340、341)が、計算遅延を減らすために使用できるようにするためである。さもなければ、2つの桁上げ先読み加算器(または2つのリップルキャリーアダー)がシリアルに使用され、より長い遅延を持つであろう。
【0027】
加算器幅にもう1ビット加えることにより、いくらかの処理回路および時間を節約するために、仮数積の正規化が回避される。
【0028】
最終結果の正規化のために、先行ゼロ予測処理370、371が、処理遅延を減らすために採用される。先行ゼロ予測は、先頭の「1」の前の先行ゼロの数が、桁上げ先読み加算器において行われる加算と並行して計算されることを許す。先頭の「1」のビットの予測処理は、鈴木等によるIEEEジャーナルオブソリッドステート回路ボリューム31、No.8、1996年8月の「高速浮動小数点加算のための先行ゼロ予測ロジック」と題する論文において説明されており、その内容は参照により本明細書に組み込まれる。
【0029】
符号生成および絶対値選択ブロック350の入力は、
図3の左部分において示されているように、排他的ORされた符号ビットC.r.s^D.i.sおよびC.i.s^D.r.s、および加数Bの実数成分の符号ビットB.i.s、および360の出力の符号ビットである。選択されたマルチプレクサ380または381の出力は、正規化ブロック390において、先頭の1が基数点の左側に位置するように、左または右にシフトすることにより正規化され、最終CMAD結果の正規化された仮数(本例においては、基数点の右側に10ビット)を形成する。そして、ブロック315からの指数が、ブロック390において、シフトの方向および距離に従って調整される。ブロック350からの符号ビット、正規化された仮数、および調整された指数は、合わされて、浮動小数点フォーマットにおける最終結果となり、それは、
図3の一番下において、「A.i」として示されているように、浮動小数点複素数乗加算ユニットの虚数成分A.虚部である。A.iを形成する項およびファクタは、
図3の一番下において、B.i、C.r、D.i、C.iおよびD.rとして示されており、それぞれ、B.虚部、C.実部、D.虚部、C.虚部、およびD.実部と同じ変数である。
【0030】
転じて
図4を参照すると、一実施形態に従って、複素数Aの実部A.実部を計算するように構成された浮動小数点複素数乗加算ユニットのブロック図が示されている。
図4において示された複素数浮動小数点乗加算ユニットの論理要素は、
図3において示された論理要素と同様に形成され配置されており、簡略にするため、これ以上は説明されない。
【0031】
図3および4において示されたユニットは、より高いスループットのために多段パイプラインユニットとして実装できる。多段パイプラインユニットは、一般に、最終結果を生成するために順番に実行される複数の動作段として形成される。しかし、第1段が第1入力に対する結果を計算し、結果を第2段に渡した後、第1段は、第2段における処理の実行と並行して第2入力を処理することが可能である。このようにして、複数の動作段のそれぞれは、複数の入力に対して同時にデータを処理するように用いることができる。この構造の一例として、加数Bの実部の仮数、すなわちB.r.mは、第1ではないパイプライン段420に結合される。それに対応して、
図3における加数Bの虚部の仮数、すなわちB.i.mは、対応する第2パイプライン段に結合される。
【0032】
図4において示された複素数浮動小数点乗加算ユニットの順序付けられた段は、第1段410、第2段420、第3弾430として識別される。同じような順序付けられた段が
図3において識別されることができる。それに応じて、
図4において示された第1段410は、第1段が第1組のデータについての演算結果を第2段に渡すとすぐに、第2組のデータについての演算をするように構成される。同様に、第2段420は、第2段が第1組のデータについての演算結果を第3段に渡すとすぐに、第2組のデータについての演算をするように構成される。
【0033】
転じて
図5を参照すると、一実施形態に従って、上述した処理の1以上を実行するために使用され得る処理システム500の要素のブロック図が示されている。処理システム500は、ビデオアダプタ/グラフィック処理ユニット(「GPU」)等の1以上の入力/出力デバイスを装備するプロセッサ510を含み得る。プロセッサ510は、バス520に接続された中央処理ユニット(「CPU」)/DSP、メモリ、およびハードウェアアクセラレータを含み得る。
【0034】
バス520は、メモリバスまたはメモリコントローラ、周辺バス、ビデオバス、等を含むいくつかのバスアーキテクチャのいかなるタイプの1以上であり得る。CPUは、電子データプロセッサのいかなるタイプであり得る。メモリは、スタティックランダムアクセスメモリ(SRAM)、ダイナミックランダムアクセスメモリ(DRAM)、シンクロナスDRAM(SDRAM)、リードオンリメモリ(ROM)、不揮発性ランダムアクセスメモリ(「NVRAM」)、これらの組合せ、等のシステムメモリのいかなるタイプを含み得る。一実施形態において、メモリは、ブートアップにおいて使用するためのROM、プログラム実行中に使用するためのデータ格納のためのDRAMを含み得る。ビデオアダプタ/GPUは、プロセッサをディスプレイに結合させるためのインターフェイスを提供する。他のデバイスがプロセッサに結合され得、追加の、またはより少ないインターフェイスカードが利用され得る。例えば、パラレルインターフェイスカード(不図示)が、プリンタのためのパラレルインターフェイスを提供するために使用され得る。
【0035】
プロセッサはまた、ネットワークインターフェイス(不図示)を含み得、それは、イーサネット(登録商標)ケーブル等の有線リンクであり得、および/または、セルラ通信ネットワーク等のネットワークとの通信を可能にする無線リンクであり得る。ネットワークインターフェイスは、ネットワークを介して、プロセッサが遠隔ユニットと通信することを許す。一実施形態において、プロセッサはローカルエリアネットワークまたはワイドエリアネットワークと結合され、他のプロセッサ、インターネット、遠隔記憶施設等の遠隔デバイスに対する通信を提供する。
【0036】
図6aおよび6bを参照すると、LTEシステムの下りリンク伝送および上りリンク伝送におけるベースバンド信号処理の典型的な実装がそれぞれ示されている。さまざまな実施形態において、本発明は、基地局またはUEにおける信号処理に適用され得る。本発明の実施形態に従って、ベースバンド信号処理における浮動小数点複素数乗加算の計算は、3つのベースバンド信号を複素数フォーマットで受信する受信ステップを含む。複素数フォーマットの3つのベースバンド信号のそれぞれは、仮数および指数を備える。本発明の一実施形態において、複素数フォーマットのベースバンド信号はさらに、符号のための1以上のビットを備える。本発明の一実施形態において、ベースバンド信号処理における浮動小数点複素数乗加算の計算方法は、入力加数として第1ベースバンド信号を受信する/取得する受信/取得ステップと、第2ベースバンド信号および第3ベースバンド信号から第1積および第2積を生成する生成ステップであり、入力加数、第1積および第2積はそれぞれ仮数および指数を備える、生成ステップと、入力加数、第1積および第2積のより小さい指数を備える2つ、の仮数をシフトして、プロセッサにおいて、入力加数、第1積および第2積の最も大きい指数をそなえる1つ、の仮数と一緒に位置を合わせる、シフトステップと、位置合わせされた入力加数、位置合わせされた第1積および位置合わせされた第2積を一緒に加算する加算ステップと、を備える。
【0037】
一実施形態において、2つの積は、第2ベースバンド信号の実部/虚部に、第3ベースバンド信号の実部/虚部を乗算することにより形成される。例えば、第1積は、第2ベースバンド信号の実部と第3ベースバンド信号の実部を乗算した積であり、第2積は、第2ベースバンド信号の虚部と第3ベースバンド信号の虚部を乗算した積である。代替の一実施形態において、第1積は、第2ベースバンド信号の実部と第3ベースバンド信号の虚部を乗算した積であり、第2積は、第2ベースバンド信号の虚部と第3ベースバンド信号の実部を乗算した積である。
【0038】
留意すべきことは、処理システムは他のコンポーネントを含み得るということである。例えば、処理システムは、電源、ケーブル、マザーボード、リムーバブル記憶媒体、筐体、等を含み得る。これらの他のコンポーネントは、図示されてはいないが、処理システムの一部と考えられる。
【0039】
複素数乗加算演算において上述の方法を使用する結果は、浮動小数点DSPおよびハードウェアアクセラレータの、改善された性能および電力効率である。より高い電力効率とより高い処理速度を達成することができる。基地局および端末デバイスのための無線ベースバンドデジタルシグナルプロセッサまたはシステムオンチップ(「SOC」)に対して相当なメリットが生じる。
【0040】
留意すべきことは、特に明記しない限り、本明細書に記載された機能は、ハードウェア、ソフトウェア、または両者のなんらかの組合せにおいて、人間の介入をともなって、または人間の介入無しに、実行され得るということである。一実施形態において、該機能は、特に明記しない限り、
図5を参照して上述されたようなコンピュータまたは電子データプロセッサ等のプロセッサによって、それらの機能を実行するようにコード化されたコンピュータプログラムコード、ソフトウェア、および/または集積回路等のコードに従って実行される。
【0041】
本明細書において提示されたような実施形態は、第1複素数被乗数、第2複素数被乗数、および複素数加数から、浮動小数点複素数乗加算処理によって生成される実部を計算するための装置および関連する方法を提供する。該装置は、メモリおよびメモリに結合されたプロセッサを用いて形成される。一実施形態において、プロセッサは、メモリと連携して、または独立して、第1複素数被乗数の実部の仮数と第2複素数被乗数の実部の仮数の第1仮数積を形成し、第1複素数被乗数の虚部の仮数と第2複素数被乗数の虚部の仮数の第2仮数積を形成するように構成される。他の実施形態において、プロセッサはさらに、メモリと連携して、または独立して、第1複素数被乗数の実部の指数と第2複素数被乗数の実部の指数の第1指数和を形成し、第1複素数被乗数の虚部の指数と第2複素数被乗数の虚部の指数の第2指数和を形成するように構成される。
【0042】
一実施形態において、プロセッサはさらに、メモリと連携して、または独立して、複素数加数の実部、第1指数和、および第2指数和の中の最大指数を見つけるように構成される。他の実施形態において、プロセッサはさらに、メモリと連携して、または独立して、第1仮数積、第2仮数積、および複素数加数の実部の仮数を、指数の中で最大の指数に関するそれぞれの指数に従って、位置合わせをし、位置合わせされた第1仮数積、第2仮数積、および複素数加数の実部の最下位ビットを切り捨てるように構成される。他の実施形態において、プロセッサはさらに、位置合わせされた第1仮数積、第2仮数積、および複素数加数の実部を、それらの符号に従って、2の補数フォーマットに変換するように構成される。そして、変換された位置合わせされた第1仮数積、第2仮数積、および複素数加数の実部は、プロセッサによって加算され、浮動小数点複素数乗加算処理によって生成された実部の非正規化仮数を形成する。浮動小数点複素数乗加算処理によって生成された実部の非正規化仮数は、正規化された仮数の基数点の左に先頭の「1」のビットを生成するためにビットをシフトすることによって正規化される。
【0043】
一実施形態において、プロセッサはさらに、メモリと連携して、または独立して、2入力全加算器が後に続く桁上げ保存加算器を用いて、位置合わせされた第1仮数積、第2仮数積、および複素数加数の実部を加算するように構成される。一実施形態において、2入力全加算器は、桁上げ先読み加算器である。
【0044】
一実施形態において、プロセッサはさらに、メモリと連携して、または独立して、2径路において、2入力全加算器が後に続く桁上げ保存加算器を用いて、位置合わせされた第1仮数積、第2仮数積、および複素数加数の実部を加算するように構成され、該2径路の1つの径路が、実部の仮数の正規化の前に、符号生成および絶対値選択処理によって生成される制御信号に従って選択される。
【0045】
一実施形態において、プロセッサはさらに、メモリと連携して、または独立して、2の補数算術を用いて、位置合わせされた第1仮数積、第2仮数積、および複素数加数の実部を加算するように構成される。一実施形態において、2の補数算術を用いることは必要ではない。
【0046】
一実施形態において、プロセッサはさらに、メモリと連携して、または独立して、加算された位置合わせされた第1仮数積、第2仮数積、および複素数加数の実部を、2の補数フォーマットからサインマグニチュードフォーマット(sign-magnitude format)に変換するように構成される。
【0047】
一実施形態において、プロセッサはさらに、メモリと連携して、または独立して、位置合わせされた仮数を加算するように構成された加算器のビット幅を増やすことにより、最下位ビットの切り捨てによって生じる精度損失を補償するように構成される。
【0048】
一実施形態において、プロセッサはさらに、メモリと連携して、または独立して、第1仮数積および第2仮数積を正規化することなく、乗算によって生成された第1仮数積の基数点と第2仮数積の位置を保持するように構成される。
【0049】
一実施形態において、プロセッサは、メモリと連携して、または独立して、複素数加数の実部の仮数の使用を、第2または後のパイプライン段まで延期するように構成される。
【0050】
一実施形態において、プロセッサはさらに、メモリと連携して、または独立して、第1複素数被乗数、第2複素数被乗数、および複素数加数から、浮動小数点複素数乗加算処理によって生成される虚部を計算するように構成される。他の実施形態において、プロセッサは、メモリと連携して、または独立して、第1複素数被乗数の虚部の仮数と第2複素数被乗数の実部の仮数との第3仮数積を形成し、第1複素数被乗数の実部の仮数と第2複素数被乗数の虚部の仮数との第4仮数積を形成し、第1複素数被乗数の虚部の指数と第2複素数被乗数の実部の指数との第3指数和を形成し、第1複素数被乗数の実部の指数と第2複素数被乗数の虚部の指数との第4指数和を形成し、複素数加数の虚部、第3指数和、および第4指数和の指数の中の最大指数を見つけ、複素数加数の虚部、第3指数和、および第4指数和の指数の中の最大に関するそれぞれの指数に従って、第3仮数積、第4仮数積、および複素数加数の虚部の仮数の位置合わせをするように構成される。
【0051】
プロセッサはさらに、メモリと連携して、位置合わせされた第3仮数積、第4仮数積、および複素数加数の虚部の最下位ビットを切り捨て、位置合わせされた第3仮数積、第4仮数積、および複素数加数の虚部を、それらの符号に従って2の補数フォーマットに変換し、変換された位置合わせされた第3仮数積、第4仮数積、および複素数加数の虚部を加算して浮動小数点複素数乗加算処理によって生成された虚部の非正規化仮数を形成し、浮動小数点複素数乗加算処理によって生成された虚数成分の正規化仮数の基数点の左に先頭の「1」のビットを生成するためにシフトすることにより、浮動小数点複素数乗加算処理によって生成された虚部の非正規化仮数を正規化し、基数点の左に先頭の「1」のビットを生成するためにシフトした結果のシフト距離に従って、複素数加数の虚部の指数、第3指数和、および第4指数和の最大指数を調整するように構成される。
【0052】
本明細書において提示されたような実施形態は、浮動小数点複素数乗加算処理によって生成される実部を計算するための装置および関連する方法を提供する。該装置は、メモリおよびメモリに結合されたプロセッサを用いて形成される。該プロセッサは、第1複素数被乗数、第2複素数被乗数、および複素数加数に対して動作する浮動小数点複素数乗加算処理によって生成される実部を計算し、複素数加数の実部、第1複素数被乗数の実部の指数と第2複素数被乗数の実部の指数との第1指数和、および第1複素数被乗数の虚部の指数と第2複素数被乗数の虚部の指数との第2指数和の指数の中の最大指数を見つけ、指数の中の最大指数に関するそれぞれの指数に従って、第1複素数被乗数の実部と第2複素数被乗数の実部との第1仮数積、第1複素数被乗数の虚部と第2複素数被乗数の虚部との第2仮数積、および複素数加数の実部の仮数の位置を合わせるように構成される。一実施形態において、プロセッサはさらに、メモリに結合されて、または独立して、位置合わせされた仮数の最下位ビットを切り捨て、位置合わせされ切り捨てされた第1仮数積、第2仮数積、および複素数加数の実部を、それらの符号に従って2の補数フォーマットに変換し、変換された仮数を加算して非正規化合計仮数を形成するように構成される。
【0053】
一実施形態において、プロセッサはさらに、その基数点の左に先頭の「1」のビットを生成するためにビットをシフトすることにより、非正規化合計仮数を正規化して、浮動小数点複素数乗加算処理によって生成される実部を形成するように構成される。他の実施形態において、プロセッサはさらに、シフトした結果のビットシフト距離に従って、最大指数を調整するように構成される。
【0054】
本明細書において提示されたような実施形態は、浮動小数点複素数乗加算のデジタル計算のための方法および関連する装置を提供する。該装置は、メモリおよびメモリに結合されたプロセッサを用いて形成される。該方法は、入力加数、第1積、および第2積を受信する受信ステップであり、入力加数、第1積、および第2積はそれぞれ仮数および指数を備える、受信ステップと、プロセッサにおいて、入力加数、第1積、および第2積の最大の指数を備えるものの仮数と一緒に位置を合わせるために、入力加数、第1積、および第2積のより小さい指数を備える2つの仮数をシフトするシフトステップと、位置合わせされた入力加数、位置合わせされた第1積、および位置合わせされた第2積を加算する加算ステップと、を含む。
【0055】
一実施形態において、入力加数は、第1入力の実部であり、第1積は、第2入力の実部と第3入力の実部との乗算された積であり、第2積は、第2入力の虚部と第3入力の虚部との乗算された積である。
【0056】
一実施形態において、位置合わせされた入力加数、位置合わせされた第1積、および位置合わせされた第2積を加算する加算ステップは、位置合わせされた入力加数に位置合わせされた第1積を加算するステップと、位置合わせされた第2積を、位置合わせされた入力加数と位置合わせされた第1積との和から引き算するステップと、を含む。
【0057】
一実施形態において、該方法はさらに、第2入力の実部の仮数に第3入力の実部の仮数を乗算することにより第1積の仮数を形成するステップと、第2入力の実部の指数と第3入力の実部の指数とを加算することにより第1積の指数を形成するステップと、第2入力の虚部の仮数に第3入力の虚部の仮数を乗算することにより第2積の仮数を形成するステップと、第2入力の虚部の指数と第3入力の虚部の指数とを加算することにより第2積の指数を形成するステップと、を含む。
【0058】
一実施形態において、第2入力の実部の仮数、第3入力の実部の仮数、第2入力の虚部の仮数、および第3入力の虚部の仮数は、乗算の前に正規化されない。
【0059】
一実施形態において、入力加数は、第1入力の虚部であり、第1積は、第2入力の実部と第3入力の虚部とを乗算した積であり、第2積は、第2入力の虚部と第3入力の実部とを乗算した積である。
【0060】
一実施形態において、該方法はさらに、第2入力の実部の仮数に第3入力の虚部の仮数を乗算することにより第1積の仮数を形成するステップと、第2入力の実部の指数と第3入力の虚部の指数とを加算することにより第1積の指数を形成するステップと、第2入力の虚部の仮数に第3入力の実部の仮数を乗算することにより第2積の仮数を形成するステップと、第2入力の虚部の指数と第3入力の実部の指数とを加算することにより第2積の指数を形成するステップと、を含む。
【0061】
一実施形態において、第2入力の実部の仮数、第3入力の実部の仮数、第2入力の虚部の仮数、および第3入力の虚部の仮数は、乗算の前に正規化されない。
【0062】
一実施形態において、第1積は、2つの非正規化入力の積である。一実施形態において、第2積は、2つの非正規化入力の積である。
【0063】
一実施形態において、入力加数、第1積、および第2積の最大の指数を備える1つ、の仮数と一緒に位置を合わせるために、入力加数、第1積、および第2積のより小さい指数を備える2つ、の仮数をシフトするシフトステップは、最大の指数を備える1つ、の仮数と一緒に位置を合わせるために、最大の指数を備えるものより小さい指数を備える2つ、の仮数を右にシフトするシフトステップであり、位置合わせされた入力加数、位置合わせされた第1積、位置合わせされた第2積は同じ指数を備える、シフトステップを含む。
【0064】
一実施形態において、該方法はさらに、もし、位置合わせされた入力加数、位置合わせされた第1積、および位置合わせされた第2積の仮数のビット幅が、精度要求に従ったビット幅を超えるならば、位置合わせされた入力加数、位置合わせされた第1積、および位置合わせされた第2積の1以上のビットを切り捨てるステップを含む。
【0065】
一実施形態において、該方法はさらに、入力加数、第1積、および第2積を、それらの符号に従って、2の補数フォーマットに変換するステップを含む。
【0066】
一実施形態において、入力加数、第1積、および第2積を、それらの符号に従って、2の補数フォーマットに変換するステップは、位置合わせされた入力加数、位置合わせされた第1積、および位置合わせされた第2積を、それらの符号に従って、2の補数フォーマットに変換するステップを含む。
【0067】
一実施形態において、位置合わせされた入力加数、位置合わせされた第1積、および位置合わせされた第2積を加算するステップは、変換された位置合わせされた入力加数、変換された位置合わせされた第1積、および変換された位置合わせされた第2積を加算するステップを含む。
【0068】
一実施形態において、位置合わせされた入力加数、位置合わせされた第1積、および位置合わせされた第2積を加算するステップは、桁上げ保存加算器および全加算器によって、位置合わせされた入力加数、位置合わせされた第1積、および位置合わせされた第2積を加算するステップを含む。
【0069】
一実施形態において、位置合わせされた入力加数、位置合わせされた第1積、および位置合わせされた第2積を加算するステップは、位置合わせされた第1積、および位置合わせされた第2積を2つの径路において加算する加算ステップであり、符号生成および絶対値選択処理によって生成される制御信号に従って2つの径路の1つの径路が選択される、加算ステップを含む。
【0070】
本明細書において提示されたような実施形態は、浮動小数点複素数乗加算処理のデジタル計算を実行するための装置および関連する方法を提供する。該装置は、メモリおよびメモリに結合されたプロセッサを用いて形成される。該プロセッサは、入力加数、第1積、および第2積を受信し、入力加数、第1積、および第2積はそれぞれ仮数および指数を備え、入力加数、第1積、および第2積の最大の指数を備える1つ、の仮数と一緒に位置を合わせるために、入力加数、第1積、および第2積のより小さい指数を備える2つ、の仮数をシフトし、位置合わせされた入力加数と、位置合わせされた第1積と、位置合わせされた第2積とを加算するように構成される。
【0071】
一実施形態において、入力加数は、第1入力の実部であり、第1積は、第2入力の実部と第3入力の実部の乗算された積であり、第2積は、第2入力の虚部と第3入力の虚部の乗算された積である。
【0072】
一実施形態において、位置合わせされた入力加数、位置合わせされた第1積、および位置合わせされた第2積を加算するように構成されたプロセッサは、位置合わせされた入力加数に位置合わせされた第1積を加算し、位置合わせされた第2積を、位置合わせされた入力加数と位置合わせされた第1積との和から引き算するように構成される。
【0073】
一実施形態において、プロセッサはさらに、第2入力の実部の仮数に第3入力の実部の仮数を乗算することにより第1積の仮数を形成し、第2入力の実部の指数と第3入力の実部の指数とを加算することにより第1積の指数を形成し、第2入力の虚部の仮数に第3入力の虚部の仮数を乗算することにより第2積の仮数を形成し、第2入力の虚部の指数と第3入力の虚部の指数を加算することにより第2積の指数を形成するように構成される。
【0074】
一実施形態において、入力加数は、第1入力の虚部であり、第1積は、第2入力の実部と第3入力の虚部を乗算した積であり、第2積は、第2入力の虚部と第3入力の実部を乗算した積である。
【0075】
一実施形態において、プロセッサはさらに、第2入力の実部の仮数に第3入力の虚部の仮数を乗算することにより第1積の仮数を形成し、第2入力の実部の指数と第3入力の虚部の指数を加算することにより第1積の指数を形成し、第2入力の虚部の仮数に第3入力の実部の仮数を乗算することにより第2積の仮数を形成し、第2入力の虚部の指数と第3入力の実部の指数を加算することにより第2積の指数を形成するように構成される。
【0076】
一実施形態において、第1積は、2つの非正規化入力の積である。一実施形態において、第2積は、2つの非正規化入力の積である。
【0077】
一実施形態において、入力加数、第1積、および第2積の最大の指数を備える1つ、の仮数と一緒に位置を合わせるために、入力加数、第1積、および第2積のより小さい指数を備える2つ、の仮数をシフトするように構成されたプロセッサは、最大の指数を備える1つ、の仮数と一緒に位置を合わせるために、最大の指数を備えるものより小さい指数を備える2つ、の仮数を右にシフトするように構成され、位置合わせされた入力加数、位置合わせされた第1積、位置合わせされた第2積は同じ指数を備える。
【0078】
一実施形態において、プロセッサはさらに、もし、位置合わせされた入力加数、位置合わせされた第1積、および位置合わせされた第2積の仮数のビット幅が、精度要求に従ったビット幅を超えるならば、位置合わせされた入力加数、位置合わせされた第1積、および位置合わせされた第2積の1以上のビットを切り捨てるように構成される。
【0079】
一実施形態において、プロセッサはさらに、入力加数、第1積、および第2積を、それらの符号に従って2の補数フォーマットに変換するように構成される。
【0080】
一実施形態において、入力加数、第1積、および第2積を、それらの符号に従って2の補数フォーマットに変換するように構成されたプロセッサはさらに、位置合わせされた入力加数、位置合わせされた第1積、および位置合わせされた第2積を、それらの符号に従って2の補数フォーマットに変換するように構成される。
【0081】
一実施形態において、位置合わせされた入力加数、位置合わせされた第1積、および位置合わせされた第2積を加算するように構成されたプロセッサはさらに、変換された位置合わせされた入力加数、変換された位置合わせされた第1積、および変換された位置合わせされた第2積を加算するように構成される。
【0082】
一実施形態において、位置合わせされた入力加数、位置合わせされた第1積、および位置合わせされた第2積を加算するように構成されたプロセッサはさらに、桁上げ保存加算器および全加算器を用いて、位置合わせされた入力加数、位置合わせされた第1積、および位置合わせされた第2積を加算するように構成される。
【0083】
一実施形態において、位置合わせされた入力加数、位置合わせされた第1積、および位置合わせされた第2積を加算するように構成されたプロセッサはさらに、位置合わせされた第1積、および位置合わせされた第2積を2つの径路において加算し、符号生成および絶対値選択処理によって生成される制御信号に従って2つの径路の1つの径路が選択されるように構成される。
【0084】
本発明は例示的な実施形態を参照して記載されてきたが、この記載は、制限する意味において解釈されることを意図するものではない。本発明の他の実施形態とともに、例示的な実施形態のさまざまな修正および組合せは、該記載を参照することにより当業者にとって明らかであろう。従って、添付された特許請求の範囲は、いかなるそのような修正または実施形態を包含することが意図されている。