JPS62194577A - 複素乗算器及び複素乗算方法 - Google Patents
複素乗算器及び複素乗算方法Info
- Publication number
- JPS62194577A JPS62194577A JP61296870A JP29687086A JPS62194577A JP S62194577 A JPS62194577 A JP S62194577A JP 61296870 A JP61296870 A JP 61296870A JP 29687086 A JP29687086 A JP 29687086A JP S62194577 A JPS62194577 A JP S62194577A
- Authority
- JP
- Japan
- Prior art keywords
- carry
- complex
- sum
- multiplier
- input
- 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.)
- Granted
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F17/00—Digital computing or data processing equipment or methods, specially adapted for specific functions
- G06F17/10—Complex mathematical operations
- G06F17/14—Fourier, Walsh or analogous domain transformations, e.g. Laplace, Hilbert, Karhunen-Loeve, transforms
- G06F17/141—Discrete Fourier transforms
- G06F17/142—Fast Fourier transforms, e.g. using a Cooley-Tukey type algorithm
Landscapes
- Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computational Mathematics (AREA)
- Mathematical Analysis (AREA)
- Mathematical Optimization (AREA)
- Pure & Applied Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Theoretical Computer Science (AREA)
- Discrete Mathematics (AREA)
- Algebra (AREA)
- Databases & Information Systems (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Complex Calculations (AREA)
Abstract
(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。
め要約のデータは記録されません。
Description
【発明の詳細な説明】
〔発明の技術分野〕
本発明は、概して乗算器及び乗算方法に関し、特に高速
フーリエ変換に用いるシストリック・アレーの乗算器及
び乗算方法に関する。
フーリエ変換に用いるシストリック・アレーの乗算器及
び乗算方法に関する。
通常、高速フーリエ変換(FFT)の計算には、相当量
の処理器能が必要となる。FFTアルゴリズムの計算の
中心をなすものは、ベクトル回転(単位ベクトルにより
乗算)の条件である。このベクトル回転の典型的なもの
は「バタフライ(Butterfly ) Jと呼ばれ
る。基数2のFETバタフライは8対の値に対して複素
乗算十複素加算+引算を必要とする。更に、複素乗算を
行なうには、4回の乗算及び2回の加算が必要である。
の処理器能が必要となる。FFTアルゴリズムの計算の
中心をなすものは、ベクトル回転(単位ベクトルにより
乗算)の条件である。このベクトル回転の典型的なもの
は「バタフライ(Butterfly ) Jと呼ばれ
る。基数2のFETバタフライは8対の値に対して複素
乗算十複素加算+引算を必要とする。更に、複素乗算を
行なうには、4回の乗算及び2回の加算が必要である。
これらの処理は全て比較的高速度で実行され、かつ計算
回路をその最大効率で用いなければならない。
回路をその最大効率で用いなければならない。
ディジタル・フーリエ変t!!! (DET)を実現す
るために、広範なアーキテクチャ−が設けられていた。
るために、広範なアーキテクチャ−が設けられていた。
これらのアーキテクチャ−の多くは過度の計算(即ちチ
ャーブ(chirp ) z変換)、過度の制御回路(
即ちウイノグラート(Winograd)及び混合素基
数アルゴリズム)、又は過度のゲート数、又はI10ビ
ン(例えばクーレイ・タケイ(Cooley −Tuk
ey )を必要とする。利用されていた効果的な−アー
キテクチャーでは、11演算装置によってバタフライを
並列計算する直列パイプライン・アーキテクチャ−が用
いられる。この形式の計算は直列演算を利用できるよう
にすると、演算装置のそれぞれにおけるスルーブツト仕
様が低下する。しかし、総合的なゲート・H2積は、各
演算ユニットが最高速度時の半分の時間で処理し、残り
の半分の時間でアイドル状態を必要とするパイプライン
・アーキテクチャ−のために、過度なものとなってしま
い、データを連続的に処理することができない。演算装
置は加算器セルのシストリック・アレーとして実現する
ことができ、かつ和及びキャリーをこれらを介してパイ
プライン化しているので、乗算サイクル時間はシストリ
ック・アレーの1ビツト・セルについての加算時間に等
しい。このシストリック・アレーの技術はマツフタガー
ト(Hactaggart )及びM、Aジャック(J
ack)により「並列データ分散演算を用いた単一チッ
プ・アレーによる基数2のFETバタフライ(^Sin
gle Chip Array Radix 2 FF
TButterfly Arc旧tecture Us
ing Parallel DataDistribu
ted Arithmetic ) J 、IEEEE
J。
ャーブ(chirp ) z変換)、過度の制御回路(
即ちウイノグラート(Winograd)及び混合素基
数アルゴリズム)、又は過度のゲート数、又はI10ビ
ン(例えばクーレイ・タケイ(Cooley −Tuk
ey )を必要とする。利用されていた効果的な−アー
キテクチャーでは、11演算装置によってバタフライを
並列計算する直列パイプライン・アーキテクチャ−が用
いられる。この形式の計算は直列演算を利用できるよう
にすると、演算装置のそれぞれにおけるスルーブツト仕
様が低下する。しかし、総合的なゲート・H2積は、各
演算ユニットが最高速度時の半分の時間で処理し、残り
の半分の時間でアイドル状態を必要とするパイプライン
・アーキテクチャ−のために、過度なものとなってしま
い、データを連続的に処理することができない。演算装
置は加算器セルのシストリック・アレーとして実現する
ことができ、かつ和及びキャリーをこれらを介してパイ
プライン化しているので、乗算サイクル時間はシストリ
ック・アレーの1ビツト・セルについての加算時間に等
しい。このシストリック・アレーの技術はマツフタガー
ト(Hactaggart )及びM、Aジャック(J
ack)により「並列データ分散演算を用いた単一チッ
プ・アレーによる基数2のFETバタフライ(^Sin
gle Chip Array Radix 2 FF
TButterfly Arc旧tecture Us
ing Parallel DataDistribu
ted Arithmetic ) J 、IEEEE
J。
固体回路5C−19,368(1984)に説明されて
いる。
いる。
パイプライン・アーキテクチャ−のいくつかの欠点には
、いくつかの処理を実行しているときのパイプラインに
おけるアイドル時間mがある。通常、バイブラインを実
現するために用いる回路の速度は、その回路の一部をな
す周辺の種々の加算器を実現するために用いた回路より
も速い。従って、前記パイプライン構造にはまだいくつ
かの欠点が存在する。
、いくつかの処理を実行しているときのパイプラインに
おけるアイドル時間mがある。通常、バイブラインを実
現するために用いる回路の速度は、その回路の一部をな
す周辺の種々の加算器を実現するために用いた回路より
も速い。従って、前記パイプライン構造にはまだいくつ
かの欠点が存在する。
ここに開示し、特許請求の範囲に記載した本発明は、バ
タフライ処理を実行する高速フーリエ変換プロセッサを
有する。入力ベクトル及びフーリエ係数を記憶し、複素
乗算を実行して複素積を得た後、入力ベクトルのうちの
一つと複素加惇をするだめにメモリが備えられる。複素
乗算はシストリック複素乗算器により実行され、このシ
ストリック複素乗算器は係数の実数及び虚数部と、入力
ベクトルのうちの一つの実数及び虚数部との複数の積を
逐次発生する。これらの積は逐次発生し、その間に1ビ
ツト遅延を買いで予め定めた方法で出力される。先ず、
乗算器を介する第1バスで係数の実数部を用いた前記積
を乗算器により発生し、次いで係数の虚数部を用いる前
記積と加算をするために乗算器の入力にフィードバック
する。次の処理の第1バスで前記積を形成するために必
要なステップは第2バスの処理とインタレースされる。
タフライ処理を実行する高速フーリエ変換プロセッサを
有する。入力ベクトル及びフーリエ係数を記憶し、複素
乗算を実行して複素積を得た後、入力ベクトルのうちの
一つと複素加惇をするだめにメモリが備えられる。複素
乗算はシストリック複素乗算器により実行され、このシ
ストリック複素乗算器は係数の実数及び虚数部と、入力
ベクトルのうちの一つの実数及び虚数部との複数の積を
逐次発生する。これらの積は逐次発生し、その間に1ビ
ツト遅延を買いで予め定めた方法で出力される。先ず、
乗算器を介する第1バスで係数の実数部を用いた前記積
を乗算器により発生し、次いで係数の虚数部を用いる前
記積と加算をするために乗算器の入力にフィードバック
する。次の処理の第1バスで前記積を形成するために必
要なステップは第2バスの処理とインタレースされる。
第2バスにおいて、複素数部分の実数及び虚数部分は高
速加算器に入力され、乗算器の1クロツク・サイクルだ
け隔てられる。高速加算器はメモリにある他の入力ベク
トルの実数及び虚数部分と加算及び引算処理を実行する
。高速加算器は乗算器の速度の1/2で動作する現在処
理と次の処理と ・のインターレースによって乗算器を
介して連続的にデータが流れるようにする。
速加算器に入力され、乗算器の1クロツク・サイクルだ
け隔てられる。高速加算器はメモリにある他の入力ベク
トルの実数及び虚数部分と加算及び引算処理を実行する
。高速加算器は乗算器の速度の1/2で動作する現在処
理と次の処理と ・のインターレースによって乗算器を
介して連続的にデータが流れるようにする。
本発明及びその効果をより完全に理解するために、添付
する図面と関連させて以下説明を行なう。
する図面と関連させて以下説明を行なう。
FFTアルゴリズムの計算にはベクトル回転(単位ペタ
ー・ルにより乗算)が必要である。次に示すような1回
の回転計算を「バタフライ」と呼ぶ。
ー・ルにより乗算)が必要である。次に示すような1回
の回転計算を「バタフライ」と呼ぶ。
WRBR−W、B1=ZR(11
W、BR−WRB、=Z、 !2また
だし、Bは入力ベクトル、Zは出力データ、Wは「トラ
イドル(twiddle )係数」又はFFTバタフラ
イと呼ぶ単位ベクトルである。(1)および(り式から
明らかなように、FFTバタフライに関するベクトル回
転を直接実行する゛ことには、4回の乗算による複素乗
算+加算+引算が含まれ、複素乗算積2,2.を得る。
だし、Bは入力ベクトル、Zは出力データ、Wは「トラ
イドル(twiddle )係数」又はFFTバタフラ
イと呼ぶ単位ベクトルである。(1)および(り式から
明らかなように、FFTバタフライに関するベクトル回
転を直接実行する゛ことには、4回の乗算による複素乗
算+加算+引算が含まれ、複素乗算積2,2.を得る。
更に、基数2のFFTバタフライの計算には複素積Zと
入力データ・ベタ1ルAとの2回の加算及び2回の引算
が必要である。
入力データ・ベタ1ルAとの2回の加算及び2回の引算
が必要である。
AR+/−ZR(3)
A1+/−Zl (4](1
)及び(2)式を参照すると、ZR及びz■の計算には
実数成分のFFT係数WR及び虚数部分のFFT係数W
■、が用いられることが分かる。このデータを(3)及
び(4)式に代入する前に、FFT係数WR又はWl、
逆に成分BRまたはWlのうちの一つを用いて2つの乗
算を実行しなければならない。各計算はベクトルの成分
をメモリからアクセスしなければならないので、以下で
説明するが、計算をバイブライン化することにより、パ
イプラインのFFT係数WRを用いてZR及びZlを計
算するのに必要とするアクセスを1回だけにする。
)及び(2)式を参照すると、ZR及びz■の計算には
実数成分のFFT係数WR及び虚数部分のFFT係数W
■、が用いられることが分かる。このデータを(3)及
び(4)式に代入する前に、FFT係数WR又はWl、
逆に成分BRまたはWlのうちの一つを用いて2つの乗
算を実行しなければならない。各計算はベクトルの成分
をメモリからアクセスしなければならないので、以下で
説明するが、計算をバイブライン化することにより、パ
イプラインのFFT係数WRを用いてZR及びZlを計
算するのに必要とするアクセスを1回だけにする。
第1図を参照すると、FFTオペレーションを実行する
ディジタル・プロセッサのブロック図が示されている。
ディジタル・プロセッサのブロック図が示されている。
シストリック・プロセッサ用の1御信号を発生する制御
回路10が備えられる。
回路10が備えられる。
ROM12にはFFT係数WR及びWlが記憶され、バ
ス15を介して演算装置14に出力される。
ス15を介して演算装置14に出力される。
演算装置14は、以下で説明するように、加算器のセル
のシストリック・アレー形式にある。入力ベクトルA及
びBをロードし、バス18を介して演算装置14に供給
するバッファ・データのためにレジスタ・ファイル16
が儀えられる。演算装置14の結果はバス20を介して
レジスタ・ファイル16に出力され、記憶される。レジ
スタ・ファイル16はデータ入出力バス22のインタフ
ェース処理をすることにより、レジスタ・ファイル16
にデータを入力し、またこれからデータを出力している
。
のシストリック・アレー形式にある。入力ベクトルA及
びBをロードし、バス18を介して演算装置14に供給
するバッファ・データのためにレジスタ・ファイル16
が儀えられる。演算装置14の結果はバス20を介して
レジスタ・ファイル16に出力され、記憶される。レジ
スタ・ファイル16はデータ入出力バス22のインタフ
ェース処理をすることにより、レジスタ・ファイル16
にデータを入力し、またこれからデータを出力している
。
データ入出力バス22も処理すべきデータを含むRAM
24によりインタフェースされる。このデータはRAM
24からレジスタ・ファイル16に転送されて処理され
、処理結果がレジスタ・ファイル16からデータ入出力
バス22に出力され、ディジタル・プロセッサから出力
される。
24によりインタフェースされる。このデータはRAM
24からレジスタ・ファイル16に転送されて処理され
、処理結果がレジスタ・ファイル16からデータ入出力
バス22に出力され、ディジタル・プロセッサから出力
される。
第2図を参照すると、第1図のディジタル・プロセッサ
のブロック図が示され、演算装置14も詳細に示されて
いる。演算装置14の中心には、修正ブース(Boot
h )アルゴリズムを用いて乗算を実行するパイプライ
ン・アレー乗N526がある。パイプライン・アレー乗
算器26はキャリーを保持するシストリック・アレー乗
算器である。
のブロック図が示され、演算装置14も詳細に示されて
いる。演算装置14の中心には、修正ブース(Boot
h )アルゴリズムを用いて乗算を実行するパイプライ
ン・アレー乗N526がある。パイプライン・アレー乗
算器26はキャリーを保持するシストリック・アレー乗
算器である。
入力ベクトル成分B 及びB1はバス28上の被乗数と
して乗算される。パイプライン・アレー乗算器26の他
の入力にはFFT係数WR及びWlから発生したブース
演算子である。その和出力はバス30に出力され、また
キャリー出力はバス32に出力される。
して乗算される。パイプライン・アレー乗算器26の他
の入力にはFFT係数WR及びWlから発生したブース
演算子である。その和出力はバス30に出力され、また
キャリー出力はバス32に出力される。
入力ベクトル成分BR及びB1はレジスタ・ファイル3
4、またこれに代わってレジスタ・ファイル36に記憶
される。バス制御回路38はレジスタ・ファイル34と
バス4o及び42を介してそれぞれインタフェース接続
され、Bベクトルがレジスタ・ファイル34及び36の
うちのいずれに記憶されているかに基づき、レジスタ・
ファイル34及び36の間で交番することができる。バ
ス制御回路38はパイプライン・アレー乗算器26に入
力するためにバス28に接続されている。
4、またこれに代わってレジスタ・ファイル36に記憶
される。バス制御回路38はレジスタ・ファイル34と
バス4o及び42を介してそれぞれインタフェース接続
され、Bベクトルがレジスタ・ファイル34及び36の
うちのいずれに記憶されているかに基づき、レジスタ・
ファイル34及び36の間で交番することができる。バ
ス制御回路38はパイプライン・アレー乗算器26に入
力するためにバス28に接続されている。
FFT係数W 及びWlはROM12に記憶され、かつ
レジスタ47に一時記憶される。レジスタ47はバス4
6を介してマルチプレクサシ44に接続されている。F
FT係数WR及びWlはそれぞれ16ビツト幅であり、
両者は32ビツト幅のバス46に同時に出力され、かつ
レジスタ47に記憶される。マルチプレクサ44は16
ビツト幅の出力を有し、FFT係数W 及びWIの間で
選択可能であり、バス46を介して出力される。
レジスタ47に一時記憶される。レジスタ47はバス4
6を介してマルチプレクサシ44に接続されている。F
FT係数WR及びWlはそれぞれ16ビツト幅であり、
両者は32ビツト幅のバス46に同時に出力され、かつ
レジスタ47に記憶される。マルチプレクサ44は16
ビツト幅の出力を有し、FFT係数W 及びWIの間で
選択可能であり、バス46を介して出力される。
マルチプレクサ44の出力は遅延線48に入力され、遅
延線48は少なくとも2つの最上位ビットに対して1ビ
ツトの遅延をし、その遅延の1ビツトは次の2ビツトに
対するものであり、かつ付加的な1ビツト遅延は次の対
の各ビットのものであり、2つの最上位ビットは総計8
ビツトの遅延をする。従って、遅延線48には16本の
遅延線がある。
延線48は少なくとも2つの最上位ビットに対して1ビ
ツトの遅延をし、その遅延の1ビツトは次の2ビツトに
対するものであり、かつ付加的な1ビツト遅延は次の対
の各ビットのものであり、2つの最上位ビットは総計8
ビツトの遅延をする。従って、遅延線48には16本の
遅延線がある。
遅延線48の出力はブース・デコーダ5oに入力され、
ブース・デコーダ50は修飾したブース・アルゴリズム
によって3ビツトを調べ、ブース演算子を発生する。乗
算器の2ビツトのそれぞれに対して、1ブース演算子を
発生するので、16ビツト・ワードに対して8ブース演
算子を発生する。これは、レーウイスP、ルーピンフィ
ールド(Lewis P Rubinfield)、「
乗算用修飾ブース演算子の証明(、A Proof o
r The Modified Booth’sAlo
gorithm、For Hultiplicatio
n) 、I E E Eコンピュータ学会、1975年
10月、第1014頁〜第1015頁に記載されている
通常のアルゴリズムである。更に、修飾したブース演算
子の説明は、テキサス・インスツルメンツ■に譲渡され
、1984年8月31日に出願された米国特許出願筒6
46,868号にも見出すことができる。
ブース・デコーダ50は修飾したブース・アルゴリズム
によって3ビツトを調べ、ブース演算子を発生する。乗
算器の2ビツトのそれぞれに対して、1ブース演算子を
発生するので、16ビツト・ワードに対して8ブース演
算子を発生する。これは、レーウイスP、ルーピンフィ
ールド(Lewis P Rubinfield)、「
乗算用修飾ブース演算子の証明(、A Proof o
r The Modified Booth’sAlo
gorithm、For Hultiplicatio
n) 、I E E Eコンピュータ学会、1975年
10月、第1014頁〜第1015頁に記載されている
通常のアルゴリズムである。更に、修飾したブース演算
子の説明は、テキサス・インスツルメンツ■に譲渡され
、1984年8月31日に出願された米国特許出願筒6
46,868号にも見出すことができる。
パイプライン・アレー乗算器26は先ず積WRBR及び
WRBlの値を計算し、その和及びキャリーをバス30
及び32に出力する動作が可能である。これをパイプラ
イン・アレー乗算器26を介する「第1バス」と考える
。次いで、バス30上の和II S 11はバス54を
介して2ビツト遅延52に入力され、従ってキャリー1
1 C11はバス56を介して2ピツト遅延52に入力
される。遅延された和及びキャリーはバス58及び60
を介してパイプライン・アレー乗算器26の和及びキャ
リー入力に入力される。以下で説明するように、処理が
初期化されたときに、16ビツト幅のO値ワードをパイ
プライン・アレー乗算器26の和入力及びキャリー入力
に入力させるゲート62が備えられている。
WRBlの値を計算し、その和及びキャリーをバス30
及び32に出力する動作が可能である。これをパイプラ
イン・アレー乗算器26を介する「第1バス」と考える
。次いで、バス30上の和II S 11はバス54を
介して2ビツト遅延52に入力され、従ってキャリー1
1 C11はバス56を介して2ピツト遅延52に入力
される。遅延された和及びキャリーはバス58及び60
を介してパイプライン・アレー乗算器26の和及びキャ
リー入力に入力される。以下で説明するように、処理が
初期化されたときに、16ビツト幅のO値ワードをパイ
プライン・アレー乗算器26の和入力及びキャリー入力
に入力させるゲート62が備えられている。
第1バスの後にパイプライン・アレー乗4B26に和入
力及びキャリー入力がフィードバックされたときは、W
Iの値がマルチプレクサ44に入力され、被乗数の8
及びBRが再び「第2バス」■ のために、パイプライン・アレー乗算器26を通過する
。この結果、最初に7 、次に71を1ビット遅延して
複素積成分Z 及びZlの値を出力する。
力及びキャリー入力がフィードバックされたときは、W
Iの値がマルチプレクサ44に入力され、被乗数の8
及びBRが再び「第2バス」■ のために、パイプライン・アレー乗算器26を通過する
。この結果、最初に7 、次に71を1ビット遅延して
複素積成分Z 及びZlの値を出力する。
この第2バスにおいて、第1バスからフィードバックさ
れたWR−BIlの和及びキャリーの値からW、B、の
値を引算する。この引算処理は乗数又は被乗数の符号を
変更することにより行なわれる。
れたWR−BIlの和及びキャリーの値からW、B、の
値を引算する。この引算処理は乗数又は被乗数の符号を
変更することにより行なわれる。
これには通常の回路(図示せず)が利用される。
バス30及び32上のパイプライン・アレー乗算器26
の和及びキャリーは、それぞれ加算処理用に構成された
高速加算器64及び引算処理用に構成された高速加算器
66に入力される。高速加算器64及び66の入力はバ
ス68に接続され、マルチプレクサ70から六入カベク
トルの実数及び虚数部分を受け取る。高速加算器64及
び66は、ラッチ入力を有し、乗算器クロックの一つ置
きのクロック・サイクルでのみデータを入力する。
の和及びキャリーは、それぞれ加算処理用に構成された
高速加算器64及び引算処理用に構成された高速加算器
66に入力される。高速加算器64及び66の入力はバ
ス68に接続され、マルチプレクサ70から六入カベク
トルの実数及び虚数部分を受け取る。高速加算器64及
び66は、ラッチ入力を有し、乗算器クロックの一つ置
きのクロック・サイクルでのみデータを入力する。
マルチプレクサ7oの入力はバス制御38の出力に接続
され、レジスタ・ファイル34又は36から成分A 及
びA1を受け取る。高速加算器64及び66はラッチ入
力を有し、パイプライン・アレー乗算器26の一つ置き
のサイクルでのみ入力を受け取る。
され、レジスタ・ファイル34又は36から成分A 及
びA1を受け取る。高速加算器64及び66はラッチ入
力を有し、パイプライン・アレー乗算器26の一つ置き
のサイクルでのみ入力を受け取る。
^速用算器64はレジスタ72の入力及びレジスタ74
の入力に接続した出力を有し、その結果を記憶する。レ
ジスタ72は(3)式の加算処理を記憶し、またレジス
タ74は(4)式の加算処理を記憶する。同様に、高速
加算器66の出力はレジスタ76及びレジスタ78に入
力され、かつレジスタ76は(3)式の引算処理を含み
、レジスタ78は(4)式の引算処理を含む。レジスタ
72及び76の出力は32ビツトのバス8o上で組合わ
せられ、マルチプレクサ82の一方の入力に供給される
。レジスタ74及び78の出力は32ビツトのバス84
上で組合わせられ、マルチプレクサ82の他方の入力に
供給される。マルチプレクサ82の出力はバス制御回路
38を介してレジスタ・ファイル34及び36の入力に
接続される。マルチプレクサ82は(3)及び(4)式
の加算及び引算処理を組合わせる動作が可能であり、3
2ビツト・ワードとしてレジスタ・ファイル34か、又
はレジスタ・ファイル36に記憶する。
の入力に接続した出力を有し、その結果を記憶する。レ
ジスタ72は(3)式の加算処理を記憶し、またレジス
タ74は(4)式の加算処理を記憶する。同様に、高速
加算器66の出力はレジスタ76及びレジスタ78に入
力され、かつレジスタ76は(3)式の引算処理を含み
、レジスタ78は(4)式の引算処理を含む。レジスタ
72及び76の出力は32ビツトのバス8o上で組合わ
せられ、マルチプレクサ82の一方の入力に供給される
。レジスタ74及び78の出力は32ビツトのバス84
上で組合わせられ、マルチプレクサ82の他方の入力に
供給される。マルチプレクサ82の出力はバス制御回路
38を介してレジスタ・ファイル34及び36の入力に
接続される。マルチプレクサ82は(3)及び(4)式
の加算及び引算処理を組合わせる動作が可能であり、3
2ビツト・ワードとしてレジスタ・ファイル34か、又
はレジスタ・ファイル36に記憶する。
動作において、■8は高速加算@64及び66の第1の
入力であり、その出力はレジスタ72及び76に記憶さ
れる。パイプライン・アレー乗算器26は、以下で説明
するように、インターリーブ構造であり、高速加締器6
4及び66の動作に対して1ビツト遅延させる。これに
よって高速加算器64及び66はパイプライン・アレー
乗算器26の172速度で動作することができる。パイ
プライン・アレー乗算器26の最初の計算により、ZR
を発生して高速加算器64及び66に入力し、それぞれ
入力ベクトルAとの加算及び入カベ・クトルAからの引
算をする。1ビツトの遅延後に、その結果がレジスタ7
2及び76に記憶されると共に、zlの値が高速加算器
64及び66に入力されてその結果がレジスタ74及び
78に記憶される。パイプライン・アレー乗算器26を
介するデータの流れがアイドル時間なしに一定であるこ
とは、本発明の重要な特徴である。以下で説明するイン
ターリーブ構造によって、パイプライン・アレー乗算器
26を介するデータの流れでは高速加算器64及び66
のいずれにもアイドル時間がなく、両者の処理速度の2
倍である。更に、ROM12は、各位nからWR及びW
lの値をアクセスするので、パイプライン・アレー乗算
器26の1/4速度でアクセスするだけでよい。
入力であり、その出力はレジスタ72及び76に記憶さ
れる。パイプライン・アレー乗算器26は、以下で説明
するように、インターリーブ構造であり、高速加締器6
4及び66の動作に対して1ビツト遅延させる。これに
よって高速加算器64及び66はパイプライン・アレー
乗算器26の172速度で動作することができる。パイ
プライン・アレー乗算器26の最初の計算により、ZR
を発生して高速加算器64及び66に入力し、それぞれ
入力ベクトルAとの加算及び入カベ・クトルAからの引
算をする。1ビツトの遅延後に、その結果がレジスタ7
2及び76に記憶されると共に、zlの値が高速加算器
64及び66に入力されてその結果がレジスタ74及び
78に記憶される。パイプライン・アレー乗算器26を
介するデータの流れがアイドル時間なしに一定であるこ
とは、本発明の重要な特徴である。以下で説明するイン
ターリーブ構造によって、パイプライン・アレー乗算器
26を介するデータの流れでは高速加算器64及び66
のいずれにもアイドル時間がなく、両者の処理速度の2
倍である。更に、ROM12は、各位nからWR及びW
lの値をアクセスするので、パイプライン・アレー乗算
器26の1/4速度でアクセスするだけでよい。
パイプライン・アレー乗剪器26による被乗数のBR及
びB1、及び乗数のWR及びWlの処理では、複数の部
分積を形成してこれらを加算する必要がある。この実施
例では、以上で説明したように、使用した乗算構造が修
飾したブース・アルゴリズムである。この修飾したブー
ス・アルゴリズムでは、ビットを各グループで重畳して
いる1ビツトと、右の最下位ビットに割り付けたビット
とを有する3グループに区分することによって、遅延線
48の乗数ビット出力を分析することが必要である。従
って、16ビツトの乗数は8X3ビツト・グループとな
る。各グループは一つの部分積に対応し、かつ16ビツ
トの乗数は8つの部分積を発生しなければならない。こ
れらの部分積を発生するためには先ず「修飾したブース
演算子」を判断して処理を決定すること゛が必要であり
、この処理はそれぞれの部分積を発生するために与えら
れた被乗数に基づいて実行されなければならない。修飾
したブース演算子は°“O11,11+11+、“−1
″、“+2″及び゛−2パである。−″を付けたものは
被乗数の2の補数を発生する必要があり、2′′を付け
たものは被乗数を1ビットだけ左ヘシフトすることが必
要であり、111 I+があるものはシフトを必要とし
ない。従って、部分積は最大1桁だけ左ヘシフトした被
乗数又はその2の補数からなる。“OI+の修飾したブ
ース演算子は全論理ビットが論理″゛0″の部分積とな
る。
びB1、及び乗数のWR及びWlの処理では、複数の部
分積を形成してこれらを加算する必要がある。この実施
例では、以上で説明したように、使用した乗算構造が修
飾したブース・アルゴリズムである。この修飾したブー
ス・アルゴリズムでは、ビットを各グループで重畳して
いる1ビツトと、右の最下位ビットに割り付けたビット
とを有する3グループに区分することによって、遅延線
48の乗数ビット出力を分析することが必要である。従
って、16ビツトの乗数は8X3ビツト・グループとな
る。各グループは一つの部分積に対応し、かつ16ビツ
トの乗数は8つの部分積を発生しなければならない。こ
れらの部分積を発生するためには先ず「修飾したブース
演算子」を判断して処理を決定すること゛が必要であり
、この処理はそれぞれの部分積を発生するために与えら
れた被乗数に基づいて実行されなければならない。修飾
したブース演算子は°“O11,11+11+、“−1
″、“+2″及び゛−2パである。−″を付けたものは
被乗数の2の補数を発生する必要があり、2′′を付け
たものは被乗数を1ビットだけ左ヘシフトすることが必
要であり、111 I+があるものはシフトを必要とし
ない。従って、部分積は最大1桁だけ左ヘシフトした被
乗数又はその2の補数からなる。“OI+の修飾したブ
ース演算子は全論理ビットが論理″゛0″の部分積とな
る。
この実施例では1の補数及び入力加算器の初期キャリー
を使用している。
を使用している。
部分積は、生成された後、2桁だけ逐次シフトされ、前
の部分積に加算される。これには、先ずパイプライン・
アレー乗算器26により第1の部分積を発生すること、
次に第2の部分積を発生して第1の部分積と加算するこ
とが必要となる。従って、残りの部分積を発生して中間
和に加算する。
の部分積に加算される。これには、先ずパイプライン・
アレー乗算器26により第1の部分積を発生すること、
次に第2の部分積を発生して第1の部分積と加算するこ
とが必要となる。従って、残りの部分積を発生して中間
和に加算する。
第3図を参照すると、パイプライン・アレー乗算器26
及びブース・デコーダ5oの拡大ブロック図が示されて
いる。パイプライン・アレー乗算器26は8段からなり
、各段は1列のレジスタ(REGI〜REG9)と、1
列のブース加算器セル(B CELL1〜B CE
LL8)とを有する。各列のブース加Iii[rAセル
はそれぞれ16ブース・マルチプレクサと、関連する全
加算器とからなる。それぞれの和及びキャリーに加えて
、先ずB値を各レジスタに記憶し、次にブース演算子が
入力される次段の加算器により加算し、特定の処理を決
定してそれぞれの部分積を発生する。次に、この部分積
を出力し、次段のレジスタに記憶する。修飾したブース
演算子は、以下で説明するように、与えられたブース加
算器セルに対する被乗数(B 又はBR)の特定ビット
について実行! すべき処理を決定する。
及びブース・デコーダ5oの拡大ブロック図が示されて
いる。パイプライン・アレー乗算器26は8段からなり
、各段は1列のレジスタ(REGI〜REG9)と、1
列のブース加算器セル(B CELL1〜B CE
LL8)とを有する。各列のブース加Iii[rAセル
はそれぞれ16ブース・マルチプレクサと、関連する全
加算器とからなる。それぞれの和及びキャリーに加えて
、先ずB値を各レジスタに記憶し、次にブース演算子が
入力される次段の加算器により加算し、特定の処理を決
定してそれぞれの部分積を発生する。次に、この部分積
を出力し、次段のレジスタに記憶する。修飾したブース
演算子は、以下で説明するように、与えられたブース加
算器セルに対する被乗数(B 又はBR)の特定ビット
について実行! すべき処理を決定する。
パイプライン・アレー乗算器26を介する乗数及び被乗
数の1バスの場合は、先ず16ビツトのB値をREGl
に記憶してB−CELLlに入力する。乗数の最初の2
ビツトはグループ86を形成し、その1ビツトを8−C
ELLIのブース演算子を決定するために割り付る。次
に B−CELLlの出力はパイプライン・アレー乗算器2
6の第2のクロック・サイクルでREG2に入力され、
これに記憶される。この第2のクロック・サイクルにお
いて、乗数の次の2ビツトはブース・デコーダ50に入
力される。これによって、グループ86の最上位ビット
と組合わせてグループ88を形成する。グループ88を
形成するためには、ブース・デコーダ5oに前のグルー
プにおける最上位ビットに対する1ビツトの遅延を付加
してこのビットを保持することが必要である。
数の1バスの場合は、先ず16ビツトのB値をREGl
に記憶してB−CELLlに入力する。乗数の最初の2
ビツトはグループ86を形成し、その1ビツトを8−C
ELLIのブース演算子を決定するために割り付る。次
に B−CELLlの出力はパイプライン・アレー乗算器2
6の第2のクロック・サイクルでREG2に入力され、
これに記憶される。この第2のクロック・サイクルにお
いて、乗数の次の2ビツトはブース・デコーダ50に入
力される。これによって、グループ86の最上位ビット
と組合わせてグループ88を形成する。グループ88を
形成するためには、ブース・デコーダ5oに前のグルー
プにおける最上位ビットに対する1ビツトの遅延を付加
してこのビットを保持することが必要である。
次に、これらの3ビツトを調べて、
B−CELL2に対する修飾したブース演算子を決定す
る。次いで、第2の部分積を形成して、前の部分積及び
第3のクロック・サイクルでREG3に出力を記憶する
。これより和及びキャリーが出力されるまで、更に5ク
ロツク・サイクルだけこの動作を継続する。従って、パ
イプラインに配置された各被乗数について、遅延線48
へ乗数を入力するので、各部分積についてブース演算子
を発生するために必要とする3ピツトが適当なタイミン
グでブース・デコーダ50の入力に供給される。これに
よってその部分積及び和を連続的に発生することができ
る。
る。次いで、第2の部分積を形成して、前の部分積及び
第3のクロック・サイクルでREG3に出力を記憶する
。これより和及びキャリーが出力されるまで、更に5ク
ロツク・サイクルだけこの動作を継続する。従って、パ
イプラインに配置された各被乗数について、遅延線48
へ乗数を入力するので、各部分積についてブース演算子
を発生するために必要とする3ピツトが適当なタイミン
グでブース・デコーダ50の入力に供給される。これに
よってその部分積及び和を連続的に発生することができ
る。
乗綽処理では、WRの値が遅延線48に入力され、BR
の値がバス28に送出される。第1段のB−CELLI
では、WRBRの第1の部分積が形成され、これをビッ
ト“O”及び“1″の部分積と呼ぶ。次いで、1ビツト
の遅延をし、Wlを遅延線48に入力し、BRをパイプ
ライン・7レ一乗算器26に入力する。これにより“i
″サイクル第1バスが開始される。前のサイクル、即ち
i−1”サイクルの第2バスによりデータがインターリ
ーブされる。
の値がバス28に送出される。第1段のB−CELLI
では、WRBRの第1の部分積が形成され、これをビッ
ト“O”及び“1″の部分積と呼ぶ。次いで、1ビツト
の遅延をし、Wlを遅延線48に入力し、BRをパイプ
ライン・7レ一乗算器26に入力する。これにより“i
″サイクル第1バスが開始される。前のサイクル、即ち
i−1”サイクルの第2バスによりデータがインターリ
ーブされる。
乗算器を介するデータの流れを第1表及び第2表に示す
。第1表にはBを一定とした実数及び虚数部の変形を示
し、また第2表にはWを一定とした実数及び虚数部の変
形を示す。
。第1表にはBを一定とした実数及び虚数部の変形を示
し、また第2表にはWを一定とした実数及び虚数部の変
形を示す。
次式が成立する。
WRBR=RR(5)
WRB1=Rr +6)W
、BR=IR+7) W、B、=II +8)各
ビット対O〜1.2〜31.、.14〜15について各
部分積を発生し、前の中間積と加算する。
、BR=IR+7) W、B、=II +8)各
ビット対O〜1.2〜31.、.14〜15について各
部分積を発生し、前の中間積と加算する。
N口の一一一臂へ臂へ−n哨υΦ
ニー匡−(! −Ql: −Ce: −(e: −Qニ
ー1!N口り一の一臂N彎N−の−りψ −CI;Ce: −−(!ご一−CI:C? −−Ce
:C1:つ−C%Jの寸りOトの■Q y C%Jの寸
r r r r r r r r−へへへ〜Nzl +1111111111 、=″1 cal ロ1 ロl 咄 −I NCI N:
−ご −ご −− 1+ 1 ・ ― ・ 拳 ・
e ・ ・ ・ 場 ・電 II働−Φ・・・・・e+e+ 1・−・・骨・・・・・・・・ 第1表において、見出し’CLK”(クロック)の下の
左欄にアレー乗算器のクロック・サイクルを示す。クロ
ックII OI+はシステムがスタートして最初の計算
を実行したときの初期クロックに対応する。これを「ラ
ンピング・アップ(rampinaup) Jと呼ぶ。
ー1!N口り一の一臂N彎N−の−りψ −CI;Ce: −−(!ご一−CI:C? −−Ce
:C1:つ−C%Jの寸りOトの■Q y C%Jの寸
r r r r r r r r−へへへ〜Nzl +1111111111 、=″1 cal ロ1 ロl 咄 −I NCI N:
−ご −ご −− 1+ 1 ・ ― ・ 拳 ・
e ・ ・ ・ 場 ・電 II働−Φ・・・・・e+e+ 1・−・・骨・・・・・・・・ 第1表において、見出し’CLK”(クロック)の下の
左欄にアレー乗算器のクロック・サイクルを示す。クロ
ックII OI+はシステムがスタートして最初の計算
を実行したときの初期クロックに対応する。これを「ラ
ンピング・アップ(rampinaup) Jと呼ぶ。
初期のクロック“0”において、FF’T係数Wの最初
の値をR8と呼ぶ。最初の8入力データ・ベクトルの実
数部をR8と呼ぶ。遅延線48のW入力に、Rの値を入
力し、Roの値をバス28に出力する。このため、バイ
ブライン・アレー乗算器26の“0゛′段においてビッ
ト110 IT〜゛1についての部分積がRRoどなる
。
の値をR8と呼ぶ。最初の8入力データ・ベクトルの実
数部をR8と呼ぶ。遅延線48のW入力に、Rの値を入
力し、Roの値をバス28に出力する。このため、バイ
ブライン・アレー乗算器26の“0゛′段においてビッ
ト110 IT〜゛1についての部分積がRRoどなる
。
第ia+はW値を示し、第2欄はB値を示し、下付き文
字“0”は第1の入力データ・ベクトル“0″〜“”1
6”についての第1の入力データ・ベクトルと、関連す
るFFT係数Wとを示す。クロック111 I+では、
乗算器に何も入力されず、第2段でRRoの値を計算し
、ピッド2″及び3″のときに出力する。クロック゛2
パではB入カベクトル成分Rの実数部と、W係数I 、
の虚数部を乗算器に入力し、パイプライン・アレー乗算
器26の第1段に積IRoを得る。
字“0”は第1の入力データ・ベクトル“0″〜“”1
6”についての第1の入力データ・ベクトルと、関連す
るFFT係数Wとを示す。クロック111 I+では、
乗算器に何も入力されず、第2段でRRoの値を計算し
、ピッド2″及び3″のときに出力する。クロック゛2
パではB入カベクトル成分Rの実数部と、W係数I 、
の虚数部を乗算器に入力し、パイプライン・アレー乗算
器26の第1段に積IRoを得る。
部分積RRoはパイプライン・アレー乗算器26を伝搬
してクロック“7″で出力される。同様にして、積IR
を部分積RRoから1クロック遅れ、クロック″9”で
出力される。以上で説明したように、部分積RRoは第
1のB入力ベクトルに対するW に対応する。RRo及
びIRoがパイプライン・アレー乗算器26から出力さ
れると、第1バスが形成される。同様にして、クロック
“4″及び゛6”で開始された第2のB入力ベクトルは
クロック゛’11’及びクロック゛13パで完了する。
してクロック“7″で出力される。同様にして、積IR
を部分積RRoから1クロック遅れ、クロック″9”で
出力される。以上で説明したように、部分積RRoは第
1のB入力ベクトルに対するW に対応する。RRo及
びIRoがパイプライン・アレー乗算器26から出力さ
れると、第1バスが形成される。同様にして、クロック
“4″及び゛6”で開始された第2のB入力ベクトルは
クロック゛’11’及びクロック゛13パで完了する。
クロック“9″では、部分積RRoが2ビツト遅延52
により遅延されてバイブライン・アレー乗算器26の和
及びキャリー入力にフィードバックされる。同様に、W
係数■。の虚数部と、第1のB入力ベクトルに関する8
入カベクトル■。はバイブライン・アレー乗算器26に
入力され、これを伝搬する。この動作では、値WIB1
を前の部分積WRBRから引算する。これを部分積■I
oの前の−゛′により表わす。これは被乗数の単純な2
の補数により実行される。この2の補数を取る回路は図
示されていないが、これに対しては通常の回路を用いる
ことができる。
により遅延されてバイブライン・アレー乗算器26の和
及びキャリー入力にフィードバックされる。同様に、W
係数■。の虚数部と、第1のB入力ベクトルに関する8
入カベクトル■。はバイブライン・アレー乗算器26に
入力され、これを伝搬する。この動作では、値WIB1
を前の部分積WRBRから引算する。これを部分積■I
oの前の−゛′により表わす。これは被乗数の単純な2
の補数により実行される。この2の補数を取る回路は図
示されていないが、これに対しては通常の回路を用いる
ことができる。
クロック゛′9”は第1バスによる第2バスのインター
リーブの開始を表わず。例えば、第3のB入力ベクトル
成分B2に対する第1バスはクロック゛8”で入力され
るW係数R2の実数及びクロック” 10 ”でW係数
I2の虚数部に8入力ベクトルの実数部を有する。従っ
て、部分積RRoはパイプライン・アレー乗算器26を
伝搬してクロック゛15″で出力され、値IIoは伝搬
によりりOツク“16″で出力される。部分積の前の″
“−″及び“+”の表示は乗算器を介する第2バスを表
わす。従って、第2バスは他の処理の第1バスとインタ
ーリーブされる。
リーブの開始を表わず。例えば、第3のB入力ベクトル
成分B2に対する第1バスはクロック゛8”で入力され
るW係数R2の実数及びクロック” 10 ”でW係数
I2の虚数部に8入力ベクトルの実数部を有する。従っ
て、部分積RRoはパイプライン・アレー乗算器26を
伝搬してクロック゛15″で出力され、値IIoは伝搬
によりりOツク“16″で出力される。部分積の前の″
“−″及び“+”の表示は乗算器を介する第2バスを表
わす。従って、第2バスは他の処理の第1バスとインタ
ーリーブされる。
クロック“16nの終端で、第1のB入力ベクトル成分
に対応するW係数及び被乗数を用いる第1の複素乗算を
出力する。これはZRに対応する。
に対応するW係数及び被乗数を用いる第1の複素乗算を
出力する。これはZRに対応する。
同様にして、Zlの値はクロック“18”で出力される
。これは、IRoの値が2ビツト遅延52を介して戻さ
れて「取り込」まれ、クロック゛13”でアレーに入力
され、W係数I。の虚数部のR及びB入力ベクトルのW
係数I。と加算される 一IIoを出力したときは、六入カベクトルの実数部に
加算され、またこれから引算される。これを欄A 及び
A2に示す。1IIA1において、こと値を高速加算器
64により加算して和を得ると共に、引算を高速加算器
66により実行する。
。これは、IRoの値が2ビツト遅延52を介して戻さ
れて「取り込」まれ、クロック゛13”でアレーに入力
され、W係数I。の虚数部のR及びB入力ベクトルのW
係数I。と加算される 一IIoを出力したときは、六入カベクトルの実数部に
加算され、またこれから引算される。これを欄A 及び
A2に示す。1IIA1において、こと値を高速加算器
64により加算して和を得ると共に、引算を高速加算器
66により実行する。
RAO+は第1の8入カベクトルのAの実数部に対する
加算処理を表わす。同様にして値RAO−を出力して引
算処理を表わす。この値はクロック“17″で出力され
る。同様にして、虚数部及び引算はクロック“°19”
で出力されることが分かる。高速加算器は加算器の2つ
のクロック・サイクルに亙っで動作し、これによって高
速加算器64及び66を低速度で動作させている。
加算処理を表わす。同様にして値RAO−を出力して引
算処理を表わす。この値はクロック“17″で出力され
る。同様にして、虚数部及び引算はクロック“°19”
で出力されることが分かる。高速加算器は加算器の2つ
のクロック・サイクルに亙っで動作し、これによって高
速加算器64及び66を低速度で動作させている。
クロック“15”パイプライン・アレー乗算器26が「
R終段階に達する」と、全段がフルとなり、データを連
続処理している状態になる。パイプライン・アレー乗算
器26がフルでないのは、初期のクロック・サイクルの
ときだけである。
R終段階に達する」と、全段がフルとなり、データを連
続処理している状態になる。パイプライン・アレー乗算
器26がフルでないのは、初期のクロック・サイクルの
ときだけである。
更に、第1表、及びW係数及び8入カベクトルの実数及
び虚数部がパイプライン・アレー乗算器26に入力され
るシーケンスを参照すると、クロック“ON及び“2″
に対してB入カベクトル成分B の最初の値をアクセス
し、Roの値を供給することは明らかである。従って、
クロック゛9”及び” 11 ”まで、虚数1゜に値を
必要としない。
び虚数部がパイプライン・アレー乗算器26に入力され
るシーケンスを参照すると、クロック“ON及び“2″
に対してB入カベクトル成分B の最初の値をアクセス
し、Roの値を供給することは明らかである。従って、
クロック゛9”及び” 11 ”まで、虚数1゜に値を
必要としない。
従って、これらはレジスタに記憶され、クロック“9″
及び“11”で用られる。
及び“11”で用られる。
適当なタイミングを得るために、8入力ベクトルは、レ
ジスタに実数部Rnを記憶し、かつ遅延回路に虚数部を
入力してこれを10クロツク・サイクル遅延して第2の
レジスタに記憶することが必要である。従って、実数部
R1を4クロツク・サイクルだけレジスタに記憶し、伯
の4クロツク・サイクルで次の実数IRの値をレジスタ
にn+1 0−ドする。他のクロック・サイクルでRnレジスタと
Rレジスタとの間での選択をするためにマルチプレクサ
(図示なし)が備えられている。
ジスタに実数部Rnを記憶し、かつ遅延回路に虚数部を
入力してこれを10クロツク・サイクル遅延して第2の
レジスタに記憶することが必要である。従って、実数部
R1を4クロツク・サイクルだけレジスタに記憶し、伯
の4クロツク・サイクルで次の実数IRの値をレジスタ
にn+1 0−ドする。他のクロック・サイクルでRnレジスタと
Rレジスタとの間での選択をするためにマルチプレクサ
(図示なし)が備えられている。
例えば、クロック・サイクル゛8”では、R2の値を出
力し、次いで■。の値を出力する。次のクロック・サイ
クルでは、Rの次にr。を再び出力する。これによって
、8入カベクトル入力をパイプライン・アレー乗算器2
6に対するクロック速度の1/4でアクセスさせる。
力し、次いで■。の値を出力する。次のクロック・サイ
クルでは、Rの次にr。を再び出力する。これによって
、8入カベクトル入力をパイプライン・アレー乗算器2
6に対するクロック速度の1/4でアクセスさせる。
W係数はW係数出力に対して実数R1及び虚数部]。を
有し、レジスタに記憶されている。更に、実数R1及び
虚数部■。は遅延回路に入力され、この遅延回路は8ク
ロツク・サイクルだけこれらの値を遅延して実数R及び
虚数部■ を出n−1n−2 力する。動作では、予め定めたパターンに従ってR、I
、R及び1 間での選択をするn n
n−2n−ま ためのマルチプレクサを備える。マルチプレクサは先ず
R1次に11更にR@選択をする。
有し、レジスタに記憶されている。更に、実数R1及び
虚数部■。は遅延回路に入力され、この遅延回路は8ク
ロツク・サイクルだけこれらの値を遅延して実数R及び
虚数部■ を出n−1n−2 力する。動作では、予め定めたパターンに従ってR、I
、R及び1 間での選択をするn n
n−2n−ま ためのマルチプレクサを備える。マルチプレクサは先ず
R1次に11更にR@選択をする。
n n n−2
次にR及び■。の新しい値を第1のレジスタに入力して
、R及びI の値を得る。第1表n−20−2 を参照すると、クロック“8′″と、クロック゛11”
との間でR及びI2の値が第1のレジスタに記憶され、
またI 及びR8の値が遅延レジスタに記憶されること
は、明らかである。次に、R2及びI2の値は8クロツ
ク・サイクルだけ遅延されるので、クロック“’ 16
”とクロック゛19nとの間で選択することができる
。従って、必要とするのはパイプライン・アレー乗算器
26のクロック速度の174でW係数を出力することだ
けである。
、R及びI の値を得る。第1表n−20−2 を参照すると、クロック“8′″と、クロック゛11”
との間でR及びI2の値が第1のレジスタに記憶され、
またI 及びR8の値が遅延レジスタに記憶されること
は、明らかである。次に、R2及びI2の値は8クロツ
ク・サイクルだけ遅延されるので、クロック“’ 16
”とクロック゛19nとの間で選択することができる
。従って、必要とするのはパイプライン・アレー乗算器
26のクロック速度の174でW係数を出力することだ
けである。
第2表は、シーケンスのみ異なっており、このシーケン
スはW係数数及びB入力ベクトルが逆になっている。即
ちW係数の実数及び虚数部が4つのクロック・サイクル
について設けられ、これに対してB入力ベクトルの対応
する実数入力部が4クロツク・サイクル中に変更される
。
スはW係数数及びB入力ベクトルが逆になっている。即
ちW係数の実数及び虚数部が4つのクロック・サイクル
について設けられ、これに対してB入力ベクトルの対応
する実数入力部が4クロツク・サイクル中に変更される
。
結果が得られ、これをレジスタ72〜78に記憶した後
は、その出力をレジスタ・ファイル34か、又はレジス
タ・ファイル36かに記憶することができる。動作にお
いて、レジスタ・ファイル34及び36は、結果を記憶
するファイルと、データを記憶するファイルとの間で「
交番」する。
は、その出力をレジスタ・ファイル34か、又はレジス
タ・ファイル36かに記憶することができる。動作にお
いて、レジスタ・ファイル34及び36は、結果を記憶
するファイルと、データを記憶するファイルとの間で「
交番」する。
データの処理は、最終結果が得られるまで、結果を入力
ベクトルとしてパイプラインを介して前のサイクルに戻
す。従って、パイプライン・アレー乗算器26の1サイ
クルにおいて、レジスタ・ファイル34は入力データを
保持することができ、かつレジスタ・ファイル36はそ
の結果を記憶する。次のバスでは、これらの結果は入力
データとなり、かつレジスタ・ファイル34は結果を記
憶する。従って、レジスタ・ファイル34及び36は、
タイム・テーブル、及び周波数サンプルを表わす処理デ
ータからなる入力データの一時記憶として用いられる。
ベクトルとしてパイプラインを介して前のサイクルに戻
す。従って、パイプライン・アレー乗算器26の1サイ
クルにおいて、レジスタ・ファイル34は入力データを
保持することができ、かつレジスタ・ファイル36はそ
の結果を記憶する。次のバスでは、これらの結果は入力
データとなり、かつレジスタ・ファイル34は結果を記
憶する。従って、レジスタ・ファイル34及び36は、
タイム・テーブル、及び周波数サンプルを表わす処理デ
ータからなる入力データの一時記憶として用いられる。
これは16(列)X32(列)アレーとして編成されて
いる。2つのレジスタ・ファイル34及び36を各サイ
クルにおいて「交番」する前に、16変換を必要とする
のみである。
いる。2つのレジスタ・ファイル34及び36を各サイ
クルにおいて「交番」する前に、16変換を必要とする
のみである。
これによって、乗算器アレーが高速のクロック速度で動
作し、同時にレジスタ・ファイルが遅いクロック速度で
ロード及びアンロードすることができる。
作し、同時にレジスタ・ファイルが遅いクロック速度で
ロード及びアンロードすることができる。
第4図を参照すると、第1列に3個のブース・セル、ま
た隣接する列に1個のブース・セルを示すパイプライン
・アレー乗算器26の2段のブロック図が示されている
。第1列はB、ビットを処理するブース・セル90と、
J−1ビツトを処理するブース・セル92と、B1+1
ビツトを処理するブース・セル94とからなる。第2の
列はJ+1ピットを処理するブース・セル96とからな
る。ブース・セル92〜96はそれぞれ入力総和結果を
記憶するSレジスタ98と、B入力ベクトル・データを
記憶するBレジスター00と、キャリー人カデータを記
憶するCレジスター02とを有する。ブース・セル92
〜゛96はそれぞれSレジスタ98の内容と、Cレジス
ター02の内容とを受け取る入力を有する。更に、Bレ
ジスター00はBベクトル・ビットの真及び補数形式を
記憶し、ブース・セル92〜96の対応する1つに入力
する。更に、ブース・セル92〜96に対する入力はB
の値、例えばBi+1の値をシフトした真及び補数形式
であり、その反転形式はブース・セル90に入力される
。
た隣接する列に1個のブース・セルを示すパイプライン
・アレー乗算器26の2段のブロック図が示されている
。第1列はB、ビットを処理するブース・セル90と、
J−1ビツトを処理するブース・セル92と、B1+1
ビツトを処理するブース・セル94とからなる。第2の
列はJ+1ピットを処理するブース・セル96とからな
る。ブース・セル92〜96はそれぞれ入力総和結果を
記憶するSレジスタ98と、B入力ベクトル・データを
記憶するBレジスター00と、キャリー人カデータを記
憶するCレジスター02とを有する。ブース・セル92
〜゛96はそれぞれSレジスタ98の内容と、Cレジス
ター02の内容とを受け取る入力を有する。更に、Bレ
ジスター00はBベクトル・ビットの真及び補数形式を
記憶し、ブース・セル92〜96の対応する1つに入力
する。更に、ブース・セル92〜96に対する入力はB
の値、例えばBi+1の値をシフトした真及び補数形式
であり、その反転形式はブース・セル90に入力される
。
第1列のブース・セル90〜94はバス・ライン104
により制御されており、以下で説明するように、これに
は前の和及びキャリーに加算される値を決定するブース
・デコーダ5oが発生した修飾したブース演算子が含ま
れる。第2列のブース・セル96はバス106を介して
入力される修飾したブース演算子により制御される。
により制御されており、以下で説明するように、これに
は前の和及びキャリーに加算される値を決定するブース
・デコーダ5oが発生した修飾したブース演算子が含ま
れる。第2列のブース・セル96はバス106を介して
入力される修飾したブース演算子により制御される。
動作では、B、の値がブース・セル90に関連しだBレ
ジスター00に入力される。修飾したブース演算子はB
、の値、B、の補数、Bi+1の値、又はB1+1の補
数若しくはキャリーC1の値と和Siの値とを加算した
ものを選択する。ブース・セル90はS、 及びC1+
2の値を発生すると共1+2 に、B、の値を通過させる。第2列では、ブースト セル94からBi+1の値がブース・セル96に関連す
るBレジスター00に入力される。しかし、前の処理に
おける和の値は前の部分積の中間和を表わし、Cレジス
ター02に記憶された値と共にブース・セル92からシ
フトされる。各列に対しては、修飾したブース・アルゴ
リズムに従ってシフトを行なう。
ジスター00に入力される。修飾したブース演算子はB
、の値、B、の補数、Bi+1の値、又はB1+1の補
数若しくはキャリーC1の値と和Siの値とを加算した
ものを選択する。ブース・セル90はS、 及びC1+
2の値を発生すると共1+2 に、B、の値を通過させる。第2列では、ブースト セル94からBi+1の値がブース・セル96に関連す
るBレジスター00に入力される。しかし、前の処理に
おける和の値は前の部分積の中間和を表わし、Cレジス
ター02に記憶された値と共にブース・セル92からシ
フトされる。各列に対しては、修飾したブース・アルゴ
リズムに従ってシフトを行なう。
第5図を参照すると、Sレジスタ98、Sレジスタ10
0及びCレジスタ102に加え、ブース・セル92〜9
6のうち1について更に詳細なブロック図が示されてい
る。修飾したブース・セルはマルチプレクサ108から
なり、マルチプレクサ108はBレジスタ10oの真及
び補数出力と、次の段のBi+1の真及び補数出力とを
入力している。マルチプレクサ108は修飾したブース
演算子を表わす4本のライン110により制御されてい
る。以上で説明したように、この実施例では、修飾した
ブース演算子は′−2”、“−1″、11011、+1
”及び“+2”である。従って、ライン110のいずれ
かにおけるハイ状態は、“OIIを除き、全て修飾した
ブース演算子を表わしている。このハイ状態は、ライン
110の全てが論理0のときに現れる。論理0のときは
、°゛0″の値をマルチプレクサ108からライン11
0に出力する。“+1”の値のときは、Bi+1の値を
出力する。11 111及び11 2 IIのときは、
Bi及びB 、、1の反転形式を出力する。
0及びCレジスタ102に加え、ブース・セル92〜9
6のうち1について更に詳細なブロック図が示されてい
る。修飾したブース・セルはマルチプレクサ108から
なり、マルチプレクサ108はBレジスタ10oの真及
び補数出力と、次の段のBi+1の真及び補数出力とを
入力している。マルチプレクサ108は修飾したブース
演算子を表わす4本のライン110により制御されてい
る。以上で説明したように、この実施例では、修飾した
ブース演算子は′−2”、“−1″、11011、+1
”及び“+2”である。従って、ライン110のいずれ
かにおけるハイ状態は、“OIIを除き、全て修飾した
ブース演算子を表わしている。このハイ状態は、ライン
110の全てが論理0のときに現れる。論理0のときは
、°゛0″の値をマルチプレクサ108からライン11
0に出力する。“+1”の値のときは、Bi+1の値を
出力する。11 111及び11 2 IIのときは、
Bi及びB 、、1の反転形式を出力する。
マルチプレクサ108の出力、Sレジスタ9Bの出力及
びCレジスタ102の出力は全加算器112に入力され
る。即ち、全加算器112のA及びB入力はSレジスタ
98の出力及びライン111にそれぞれ接続され、その
キャリー入力はCレジスタ102の出力に接続されてい
る。全加算器については1.畦 術者のためのTTL−
一タ・ブック(1976年10月、テキサス・インスツ
ルメンツ(株)発行、第2版、第7頁〜第54頁)、及
びJ、Lヘンリーに対して1984年5月15日に発行
された米国特許出願筒4.449゜197号に詳細に説
明されている。全加算器112はキャリーC1+2の値
及び和Si+2の値を出力する。更に、B1の真値も出
力する。
びCレジスタ102の出力は全加算器112に入力され
る。即ち、全加算器112のA及びB入力はSレジスタ
98の出力及びライン111にそれぞれ接続され、その
キャリー入力はCレジスタ102の出力に接続されてい
る。全加算器については1.畦 術者のためのTTL−
一タ・ブック(1976年10月、テキサス・インスツ
ルメンツ(株)発行、第2版、第7頁〜第54頁)、及
びJ、Lヘンリーに対して1984年5月15日に発行
された米国特許出願筒4.449゜197号に詳細に説
明されている。全加算器112はキャリーC1+2の値
及び和Si+2の値を出力する。更に、B1の真値も出
力する。
Sレジスタ98〜Cレジスタ102はライン114の単
一クロック信号によりりOツク駆動される。ライン11
4のクロック信号を与えられた列の全ブース・セルに供
給することによって、8入力ベクトルの全ビットをパイ
プラインを介し、同期してクロック駆動させる。
一クロック信号によりりOツク駆動される。ライン11
4のクロック信号を与えられた列の全ブース・セルに供
給することによって、8入力ベクトルの全ビットをパイ
プラインを介し、同期してクロック駆動させる。
第6図を参照すると、第5図のブース・セルのブロック
図が示されている。各図で同一の符号は同様の部分を表
わしている。マルチプレクサ108は4つのADNゲー
ト118.1201122及び124の出力端に相互接
続されている4入力のNORゲート116からなる。A
NDゲート118.120.122及び124はそれぞ
れの一方の反転入力をライン110の一つに個別的に接
続している。ANDゲート118の使方の反転入力はS
レジスタ100の非反転出力に接続される。
図が示されている。各図で同一の符号は同様の部分を表
わしている。マルチプレクサ108は4つのADNゲー
ト118.1201122及び124の出力端に相互接
続されている4入力のNORゲート116からなる。A
NDゲート118.120.122及び124はそれぞ
れの一方の反転入力をライン110の一つに個別的に接
続している。ANDゲート118の使方の反転入力はS
レジスタ100の非反転出力に接続される。
またANDゲート120の他方の反転入力はSレジスタ
100のコンプリメンタリ出力に接続されている。AN
Dゲート122の他方の反転入力はB1+1の反転出力
に接続され、ANDゲート124の使方の反転入力はB
i+1に接続されている。
100のコンプリメンタリ出力に接続されている。AN
Dゲート122の他方の反転入力はB1+1の反転出力
に接続され、ANDゲート124の使方の反転入力はB
i+1に接続されている。
全加算器112は、和Si+2を出力する4入力のNO
Rゲート126と、キャリーC1,2を出力する3入力
のNORゲート128とから形成されている。NORゲ
ート126の4入力はそれぞれ4つのANDゲート13
0.132.134及び136のうちの一つの出力に接
続されている。
Rゲート126と、キャリーC1,2を出力する3入力
のNORゲート128とから形成されている。NORゲ
ート126の4入力はそれぞれ4つのANDゲート13
0.132.134及び136のうちの一つの出力に接
続されている。
ANDゲート130,132.134及び136はいず
れも反転入力を有する。ANDゲート130の一方の反
転入力はSレジスタ98の出力に接続され、その他方の
反転入力はANDゲート138の出力に接続されている
。ANDゲート132の一方の反転入力はCレジスタ1
02の出力に接続され、その使方の反転入力はANDゲ
ート140の出力に接続されている。ANDゲート13
4の一方の反転入力はNORゲート116の出力に接続
され、その他方の使方の反転入力はANDゲート142
の出力に接続されている。ANDゲート136は3入力
を有し、その第1がSレジスタ98の出力に接続され、
その第2がCレジスタ1o2の出力に接続され、その第
3がNORゲート116の出力に接続されている。NO
Rゲート128は3入力を有し、それぞれANDゲート
138〜142の出力に接続されている。
れも反転入力を有する。ANDゲート130の一方の反
転入力はSレジスタ98の出力に接続され、その他方の
反転入力はANDゲート138の出力に接続されている
。ANDゲート132の一方の反転入力はCレジスタ1
02の出力に接続され、その使方の反転入力はANDゲ
ート140の出力に接続されている。ANDゲート13
4の一方の反転入力はNORゲート116の出力に接続
され、その他方の使方の反転入力はANDゲート142
の出力に接続されている。ANDゲート136は3入力
を有し、その第1がSレジスタ98の出力に接続され、
その第2がCレジスタ1o2の出力に接続され、その第
3がNORゲート116の出力に接続されている。NO
Rゲート128は3入力を有し、それぞれANDゲート
138〜142の出力に接続されている。
第7図を参照すると、それぞれ幅32ビット×深さ32
ワードのバッファA及びバッファBと呼ぶ第2図のレジ
スタ・ファイル34及び36の配列が示されている。R
OM12はWファイルにより表わされ、幅32ビット×
深さ32ワードである。各ワードの第1の16ビツトは
実数値であり、第2の16ビツトは虚数値である。W係
数は入力されるデータをそれぞれ変換するときに用いる
フーリエ係数である。この実施例では、基数2のFFT
の場合にデータを4回処理しなければならない16デ一
タ点が用意され、これがデータの点数の基数2に対する
アルゴリズムとなっている。
ワードのバッファA及びバッファBと呼ぶ第2図のレジ
スタ・ファイル34及び36の配列が示されている。R
OM12はWファイルにより表わされ、幅32ビット×
深さ32ワードである。各ワードの第1の16ビツトは
実数値であり、第2の16ビツトは虚数値である。W係
数は入力されるデータをそれぞれ変換するときに用いる
フーリエ係数である。この実施例では、基数2のFFT
の場合にデータを4回処理しなければならない16デ一
タ点が用意され、これがデータの点数の基数2に対する
アルゴリズムとなっている。
もし、1028データ点あるときは、これには10回演
算装置を介する必要があり、かつ1028個のW係数を
必要とすることになる。
算装置を介する必要があり、かつ1028個のW係数を
必要とすることになる。
バッファAは上部及び下部の2部分に分割される。上部
の166位置それぞれ32ビツトのデータ・ワードを有
し、六入カベクトルの実数及び虚数部を表わしている。
の166位置それぞれ32ビツトのデータ・ワードを有
し、六入カベクトルの実数及び虚数部を表わしている。
下部の166位置それぞれ32ビツトのデータ・ワード
を有し、8入カベクトルの実数及び虚数部を表わしてい
る。バッファBは64通りの結果によりロードされる。
を有し、8入カベクトルの実数及び虚数部を表わしてい
る。バッファBは64通りの結果によりロードされる。
これらは、最初の位置が32ビツトのワードのうちの最
初の16ビツトに結果AR+ZRを含み、また32ビツ
トのデータ・ワードのうちの第2の16ビツトに結果A
−ZRを含む。第2の位置では、A・及びZiによ
る結果を記憶する。バッファB■ における最初の2位置はバッファAの最初の位置及び上
部に対応し、またバッファAの下部における最初の位置
は次のサイクルのA及びB入力ベクトルを形成する。
初の16ビツトに結果AR+ZRを含み、また32ビツ
トのデータ・ワードのうちの第2の16ビツトに結果A
−ZRを含む。第2の位置では、A・及びZiによ
る結果を記憶する。バッファB■ における最初の2位置はバッファAの最初の位置及び上
部に対応し、またバッファAの下部における最初の位置
は次のサイクルのA及びB入力ベクトルを形成する。
動作では、バッファAは先ず上部及び下部のA及びB入
力ベクトルによりロードされる。演算装置を介する最初
のサイクルでは、バッファΔのデータを処理してその結
果をバッファBに記憶する。
力ベクトルによりロードされる。演算装置を介する最初
のサイクルでは、バッファΔのデータを処理してその結
果をバッファBに記憶する。
次に、バッファ已にある結果はA及びB入力ベクトルと
なって処理され、その結果がバッファAに記憶される。
なって処理され、その結果がバッファAに記憶される。
バッファAの情報を入力データ・ベクトルとして再び処
理し、バッファBに記憶するので、16デ一タ点には更
に2サイクルが必要であり、バッファBにあるその結果
は入力データ・ベクトルとして処理され、その結果がバ
ッファAに記憶される。この時点で、バッファAの結果
はデータ入出力バス22に出力され、新しいデータがバ
ッファBに記憶される。最初にデータを記憶するのがバ
ッファAか、バッファBかということは重要ではなく、
動作は最初のバッファで開始され、これに新しいデータ
を記憶する。
理し、バッファBに記憶するので、16デ一タ点には更
に2サイクルが必要であり、バッファBにあるその結果
は入力データ・ベクトルとして処理され、その結果がバ
ッファAに記憶される。この時点で、バッファAの結果
はデータ入出力バス22に出力され、新しいデータがバ
ッファBに記憶される。最初にデータを記憶するのがバ
ッファAか、バッファBかということは重要ではなく、
動作は最初のバッファで開始され、これに新しいデータ
を記憶する。
ここで第8図を参照すると、第2図のレジスタ・ファイ
ル34.36及びバス制御回路38を拡大したブロック
図が示されている。バッファAには付加的なレジスタ・
ファイル34′が付加され、バッファBには付加的なレ
ジスタ・ファイル36′が付加される。動作において、
データは最初、バッファAのレジスタ・ファイル34に
ロードされ、また結果はバッファBのレジスタ・ファイ
ル36に記憶される。第7図を参照して先に説明したよ
うに、レジスタ・ファイル34に最初に記憶したデータ
点のFFTについて全てのデータを処理するまで、これ
らの2つのバッファA及びBは4サイクルだけ交番され
る。しかし、変換する次の集合のデータ点を準備するた
めに、最初に入力データを保持するレジスタ・ファイル
34′を備える。次の処理サイクルにおいて、レジスタ
・ファイル34′は入力データを保持し、レジスタ・フ
ァイル36′は結果を記憶し、かつレジスタ・ファイル
34′とレジスタ・ファイル36′との間でデータを授
受するように動作可能である。この処理モードではレジ
スタ・ファイル34′及び36′を用いたが、データの
処理の流れを中断させることなく、レジスタ・ファイル
34か、又は36かに記憶したデータを出力し、また新
しい入力データを2つのレジスタ・ファイル34′及び
36′のうちの一方に入力することができる。この実施
例では、レジスタ・ファイル34.34′、36.36
′はメモリ・マツプ化された1メモリである。基本的に
必要とすることは、アドレスを処理して外部レジスタに
供給し、又はラッチしてそのアドレス指定後に情報を保
持することだけである。この1メモリのメモリ・マツピ
ングは、メモリの異なる位置をアクセスするときは、ア
ドレスの1ビツトを変更するだけでよい。
ル34.36及びバス制御回路38を拡大したブロック
図が示されている。バッファAには付加的なレジスタ・
ファイル34′が付加され、バッファBには付加的なレ
ジスタ・ファイル36′が付加される。動作において、
データは最初、バッファAのレジスタ・ファイル34に
ロードされ、また結果はバッファBのレジスタ・ファイ
ル36に記憶される。第7図を参照して先に説明したよ
うに、レジスタ・ファイル34に最初に記憶したデータ
点のFFTについて全てのデータを処理するまで、これ
らの2つのバッファA及びBは4サイクルだけ交番され
る。しかし、変換する次の集合のデータ点を準備するた
めに、最初に入力データを保持するレジスタ・ファイル
34′を備える。次の処理サイクルにおいて、レジスタ
・ファイル34′は入力データを保持し、レジスタ・フ
ァイル36′は結果を記憶し、かつレジスタ・ファイル
34′とレジスタ・ファイル36′との間でデータを授
受するように動作可能である。この処理モードではレジ
スタ・ファイル34′及び36′を用いたが、データの
処理の流れを中断させることなく、レジスタ・ファイル
34か、又は36かに記憶したデータを出力し、また新
しい入力データを2つのレジスタ・ファイル34′及び
36′のうちの一方に入力することができる。この実施
例では、レジスタ・ファイル34.34′、36.36
′はメモリ・マツプ化された1メモリである。基本的に
必要とすることは、アドレスを処理して外部レジスタに
供給し、又はラッチしてそのアドレス指定後に情報を保
持することだけである。この1メモリのメモリ・マツピ
ングは、メモリの異なる位置をアクセスするときは、ア
ドレスの1ビツトを変更するだけでよい。
次の処理用のメモリを得るために、バス制御回路38は
多重化された2つのレジスタ29及び31を備えている
。レジスタ29及び31のうちの一方は第1表の実施例
に従って2クロツク・サイクルで8入カベクトルの虚数
部を遅延し、被乗数のR及び■ を得る。これに対し
て、レジスn n−2 り29及び31のうちの一方は、2クロツク・サイクル
でB入力ベクトルの実数及び虚数部を遅延し、第2表の
実施例に従って被乗数のR1−2及びI を得ると共
に、他方のレジスタはR1及びr、を得る。
多重化された2つのレジスタ29及び31を備えている
。レジスタ29及び31のうちの一方は第1表の実施例
に従って2クロツク・サイクルで8入カベクトルの虚数
部を遅延し、被乗数のR及び■ を得る。これに対し
て、レジスn n−2 り29及び31のうちの一方は、2クロツク・サイクル
でB入力ベクトルの実数及び虚数部を遅延し、第2表の
実施例に従って被乗数のR1−2及びI を得ると共
に、他方のレジスタはR1及びr、を得る。
第9図を参照すると、第1図のRAM24からプロセッ
サに新しいデータ・ベクトルをロードするフローチャー
トが示されている。図において、バッファはレジスタ・
フィル34及び34′に対応するバッファA及びA′と
して、またレジスタ・ファイル36及び36′に対応す
るバッファB及びB′としてそれぞれ定義されている。
サに新しいデータ・ベクトルをロードするフローチャー
トが示されている。図において、バッファはレジスタ・
フィル34及び34′に対応するバッファA及びA′と
して、またレジスタ・ファイル36及び36′に対応す
るバッファB及びB′としてそれぞれ定義されている。
このプログラムはスタート・ブロック150で開始され
、機能ブロック152に進み、新しいデータ・ベクトル
をロードする。これによって、RAM24からデータを
アクセスしてレジスタ・ファイル16に入力する処理が
開始される。次に、プログラムは判断ブロック154に
進み、ABフラグがセットされているか否かを判断する
。このABフラグはバッファAが入力ファイルであるか
、又はバッファBが入力ファイルであるかを決定する。
、機能ブロック152に進み、新しいデータ・ベクトル
をロードする。これによって、RAM24からデータを
アクセスしてレジスタ・ファイル16に入力する処理が
開始される。次に、プログラムは判断ブロック154に
進み、ABフラグがセットされているか否かを判断する
。このABフラグはバッファAが入力ファイルであるか
、又はバッファBが入力ファイルであるかを決定する。
次にフラグの状態に基づいて、プログラムは機能ブロッ
ク156又は158に進み、入力としてバッファA及び
A′、又はバッファ8及び8′を決定する。次いで、プ
ログラムは判断ブロック160に進み、第1フラグがセ
ットされている否かを判断する。第1フラグは、バッフ
ァA又はバッファBにおけるレジスタ・ファイルのうち
の特定の一つを指定して、RAM24からのデータを受
け取るかを決定するものである。次に、第1フラグの状
態に基づいて、プログラムは機能ブロック162に進み
、バッファA若しくはバッファBを入力データ・バッフ
ァとして指定し、又は機能ブロック164に進み、バッ
ファ八′又はB′を指定する。
ク156又は158に進み、入力としてバッファA及び
A′、又はバッファ8及び8′を決定する。次いで、プ
ログラムは判断ブロック160に進み、第1フラグがセ
ットされている否かを判断する。第1フラグは、バッフ
ァA又はバッファBにおけるレジスタ・ファイルのうち
の特定の一つを指定して、RAM24からのデータを受
け取るかを決定するものである。次に、第1フラグの状
態に基づいて、プログラムは機能ブロック162に進み
、バッファA若しくはバッファBを入力データ・バッフ
ァとして指定し、又は機能ブロック164に進み、バッ
ファ八′又はB′を指定する。
機能ブロック162及び164はABフラグに設定に基
づいている。次に、プログラムはリターン・ブロック1
66に進み、メイン・プログラムに戻る。従って、新し
いデータをロードするときは、ASフラグ及び第1フラ
グの設定により、バッファA、A’ 、B、又はB′を
入力データ・バッファとして指定するか否かを判断する
。結果をアンロードするためのプログラムは第9図のフ
ローチャートのものと同一の機構を用いており、いずれ
の登録ファイルがアンロードすべき出力データを含んで
いるのかを判断する。゛データのロード中及びアンロー
ド中は、プロセッサは指定していないレジスタ・ファイ
ルによりデータを処理し続ける。
づいている。次に、プログラムはリターン・ブロック1
66に進み、メイン・プログラムに戻る。従って、新し
いデータをロードするときは、ASフラグ及び第1フラ
グの設定により、バッファA、A’ 、B、又はB′を
入力データ・バッファとして指定するか否かを判断する
。結果をアンロードするためのプログラムは第9図のフ
ローチャートのものと同一の機構を用いており、いずれ
の登録ファイルがアンロードすべき出力データを含んで
いるのかを判断する。゛データのロード中及びアンロー
ド中は、プロセッサは指定していないレジスタ・ファイ
ルによりデータを処理し続ける。
ここで第10図を参照すると、レジスタ・ファイル16
にロードした後、アレー・プロセッサにおけるデータを
処理するフローチャートが示されている。このプログラ
ムはスタート・ブロック168で開始した後、判断ブロ
ック170に進み、内部カウンタが4カウントに等しい
値になっているか否かを判断する。この実施例では、1
6デ一タ点に基数2のFFTを用いる。カウンタが4に
等しくなっていないときは、プログラムは機能ブロック
172に進んでカウントを増加させた後、判断ブロック
174に進み、ASフラグがセットされているか否かを
判断する。セットされているときは、プログラムは判断
ブロック176に進み、判断ブロック176及び178
により第1フラグがセットされているか否かを判断する
。判断ブロック178における第1フラグの状態により
、プログラムを機能ブロック180にセットし、バッフ
ァBを処理入力バッファとして指定するか、又はバッフ
ァBを機能ブロック182にセットしてバッファB′を
処理入力バッファとして指定する。
にロードした後、アレー・プロセッサにおけるデータを
処理するフローチャートが示されている。このプログラ
ムはスタート・ブロック168で開始した後、判断ブロ
ック170に進み、内部カウンタが4カウントに等しい
値になっているか否かを判断する。この実施例では、1
6デ一タ点に基数2のFFTを用いる。カウンタが4に
等しくなっていないときは、プログラムは機能ブロック
172に進んでカウントを増加させた後、判断ブロック
174に進み、ASフラグがセットされているか否かを
判断する。セットされているときは、プログラムは判断
ブロック176に進み、判断ブロック176及び178
により第1フラグがセットされているか否かを判断する
。判断ブロック178における第1フラグの状態により
、プログラムを機能ブロック180にセットし、バッフ
ァBを処理入力バッファとして指定するか、又はバッフ
ァBを機能ブロック182にセットしてバッファB′を
処理入力バッファとして指定する。
判断ブロック178の第1フラグにより、プログラムは
機能ブロック184に進み、処理入力バッファとしてバ
ッファAを指定させるか、又は機能ブロック186に進
み1、処理入力バッファとしてバッファA′を指定させ
る。処理入力バッファを判断した後、プログラムは機能
ブロック188に進み、パイプラインを介してこのバッ
ファからのデータを処理した後、機能ブロック190に
より示すように、結果を処理の出力バッファに記憶する
。
機能ブロック184に進み、処理入力バッファとしてバ
ッファAを指定させるか、又は機能ブロック186に進
み1、処理入力バッファとしてバッファA′を指定させ
る。処理入力バッファを判断した後、プログラムは機能
ブロック188に進み、パイプラインを介してこのバッ
ファからのデータを処理した後、機能ブロック190に
より示すように、結果を処理の出力バッファに記憶する
。
結果を出力バッファに記憶した後、第1フラグは機能ブ
ロック192に進み、ABフラグの状態を変化させる。
ロック192に進み、ABフラグの状態を変化させる。
例えば、バッファAを1サイクルだけ処理の入力バッフ
ァとして設定したときは、次のサイクルの入力バッファ
としてバッファBを設定する必要があり、同時にバッフ
ァAは次のサイクルにおける処理の出力バッファとなる
。次に、プログラムは判断ブロック170の入力に戻り
、パイプラインを介して16デ一タ点を再び処理する。
ァとして設定したときは、次のサイクルの入力バッファ
としてバッファBを設定する必要があり、同時にバッフ
ァAは次のサイクルにおける処理の出力バッファとなる
。次に、プログラムは判断ブロック170の入力に戻り
、パイプラインを介して16デ一タ点を再び処理する。
第1フラグの状態は変化していないので、第1バツフア
は、外部のRAM24から新しいデータを受番プ取るか
、又はこれに結果を出力するかが指定される。
は、外部のRAM24から新しいデータを受番プ取るか
、又はこれに結果を出力するかが指定される。
4バスの後に、プログラムは判断ブロック170からv
s能アブロック194進み、書き込み又はリセット機能
を実行することにより、FFTアルゴリズムにより16
デ一タ点を処理したことをRAMに書き込む。次に、プ
ログラムは機能ブロック196に進んで第1フラグを変
更し、機能ブロック170の入力に戻る。これによって
、バッファA′及びB′を処理の入力バッファ及び出力
バッファとして指定し、結果を保持しているバッファA
又はBからデータをアンロードさせて、2つのバッファ
のうちの他方に新しいデータをロードする。この処理は
データの処理速度よりもずっと遅い速度で生起する可能
性がある。
s能アブロック194進み、書き込み又はリセット機能
を実行することにより、FFTアルゴリズムにより16
デ一タ点を処理したことをRAMに書き込む。次に、プ
ログラムは機能ブロック196に進んで第1フラグを変
更し、機能ブロック170の入力に戻る。これによって
、バッファA′及びB′を処理の入力バッファ及び出力
バッファとして指定し、結果を保持しているバッファA
又はBからデータをアンロードさせて、2つのバッファ
のうちの他方に新しいデータをロードする。この処理は
データの処理速度よりもずっと遅い速度で生起する可能
性がある。
要約すると、シストリック・アレー乗算器を用いるプロ
セッサが備えられた。シストリック・アレー乗算器は修
飾したブース演算子に従って加算器のアレーにより被乗
数を処理するシストリック・アレーからなる。複素数に
関する乗算処理の一部をパイプラインにより進め、次い
で前の計算の乗算を実行するようにパイプラインを介す
る流れをインターリーブさせている。パイプラインから
出力される最終的な結果を全加算器入力して他の項と加
算することができるように、パイプラインを介する2バ
スが必要である。データをインターリーブすることによ
り、全加算器はシストリック・アレーの速度の1/2で
動作することができ、シストリック・アレーの1サイク
ル置きに出力結果が得られる。更に、シストリック・ア
レー乗算器はシストリック・アレーを介するデータの流
れの速度の1/2でアクセスされるだけでよい。
セッサが備えられた。シストリック・アレー乗算器は修
飾したブース演算子に従って加算器のアレーにより被乗
数を処理するシストリック・アレーからなる。複素数に
関する乗算処理の一部をパイプラインにより進め、次い
で前の計算の乗算を実行するようにパイプラインを介す
る流れをインターリーブさせている。パイプラインから
出力される最終的な結果を全加算器入力して他の項と加
算することができるように、パイプラインを介する2バ
スが必要である。データをインターリーブすることによ
り、全加算器はシストリック・アレーの速度の1/2で
動作することができ、シストリック・アレーの1サイク
ル置きに出力結果が得られる。更に、シストリック・ア
レー乗算器はシストリック・アレーを介するデータの流
れの速度の1/2でアクセスされるだけでよい。
本発明の他の実施例においては、高速フーリエ変換処理
の入力データ・ベクトルが第1のバッファに入力される
と共に、プロセッサの各サイクルの出力結果が同一のバ
ッファに記憶される。処理においては、バッファの入出
力機能を交番させるように、結果を入力ベクトルとして
演算装置を介して戻す処理をし、結果を他のバッファに
記憶させる。付加的なバッファを備え、外部メモリから
の入力データのバッファ動作をし、かつ出力結果のバッ
ファ動作をすることにより、外部メモリとのインタフェ
ースを行なう。高速フーリエ変換演算装置を介して与え
られた一組のデータ点を処理したときは、結果を記憶し
ているバッファを出力バッファとして指定し、かつ新し
いデータを記憶しているバッファを入力バッファとして
指定することにより、高速フーリエ変換演算装置におい
て処理されているデータは、中断されることなく、外部
メモリ装置へ結果を入力又はこれより出力させる。
の入力データ・ベクトルが第1のバッファに入力される
と共に、プロセッサの各サイクルの出力結果が同一のバ
ッファに記憶される。処理においては、バッファの入出
力機能を交番させるように、結果を入力ベクトルとして
演算装置を介して戻す処理をし、結果を他のバッファに
記憶させる。付加的なバッファを備え、外部メモリから
の入力データのバッファ動作をし、かつ出力結果のバッ
ファ動作をすることにより、外部メモリとのインタフェ
ースを行なう。高速フーリエ変換演算装置を介して与え
られた一組のデータ点を処理したときは、結果を記憶し
ているバッファを出力バッファとして指定し、かつ新し
いデータを記憶しているバッファを入力バッファとして
指定することにより、高速フーリエ変換演算装置におい
て処理されているデータは、中断されることなく、外部
メモリ装置へ結果を入力又はこれより出力させる。
好ましい実施例について詳細に説明したが、特許請求の
範囲により定める発明の精神及び技術範囲から逸脱する
ことなく、種々の変形、置換及び変更が可能であること
は、理解すべきである。
範囲により定める発明の精神及び技術範囲から逸脱する
ことなく、種々の変形、置換及び変更が可能であること
は、理解すべきである。
以上の説明に関連して以下の項を開示する。
(1)2つの複素ベクトルを乗算して複素積を得る複素
乗算器において、 乗数及び被乗数を受け取り、その積を表わす和及びキャ
リーを出力するn段のキャリー・セーブ・シストリック
・アレーと、 前記キャリー・セーブ・シストリック・アレーの和及び
キャリー出力を前記キャリー・セーブ・シストリック・
アレーのキャリー及び和入力に選択的にフィードバック
するフィードバック手段と、前記乗数を記憶する第1の
レジスタ手段と、前記被乗数を記憶する第2のレジスタ
手段と、前記第1及び第2のレジスタ手段、及び前記フ
ィードバック手段を制御し、前記シストリック・アレー
乗算器を介する第1バスで前記複素績の実数部における
積のうちの一つ及び前記複素績の虚数部における積のう
ちの一つを処理することにより、2つの前記積を逐次処
理するようにした制御手段と、 第2バス後に前記キャリー・セーブ・シストリック・ア
レーの和及びキャリー出力を加算して複素和を形成する
加算手段とを備えると共に、前記フィードバック手段は
前記第1バスにおいて2つの前記積から和及びキャリー
を前記キャリー・セーブ・シストリック・アレーの和及
びキャリー入力にフィードバック可能に機能し、前記複
素績の実数部における残りの積及び前記複素績の虚数部
における残りの積を加算させ、前記キャリー・セーブ・
シストリック・アレーを介する前記2バスで前記複素績
に対する和及びキャリーを形成させることを特徴とする
複素乗算器。
乗算器において、 乗数及び被乗数を受け取り、その積を表わす和及びキャ
リーを出力するn段のキャリー・セーブ・シストリック
・アレーと、 前記キャリー・セーブ・シストリック・アレーの和及び
キャリー出力を前記キャリー・セーブ・シストリック・
アレーのキャリー及び和入力に選択的にフィードバック
するフィードバック手段と、前記乗数を記憶する第1の
レジスタ手段と、前記被乗数を記憶する第2のレジスタ
手段と、前記第1及び第2のレジスタ手段、及び前記フ
ィードバック手段を制御し、前記シストリック・アレー
乗算器を介する第1バスで前記複素績の実数部における
積のうちの一つ及び前記複素績の虚数部における積のう
ちの一つを処理することにより、2つの前記積を逐次処
理するようにした制御手段と、 第2バス後に前記キャリー・セーブ・シストリック・ア
レーの和及びキャリー出力を加算して複素和を形成する
加算手段とを備えると共に、前記フィードバック手段は
前記第1バスにおいて2つの前記積から和及びキャリー
を前記キャリー・セーブ・シストリック・アレーの和及
びキャリー入力にフィードバック可能に機能し、前記複
素績の実数部における残りの積及び前記複素績の虚数部
における残りの積を加算させ、前記キャリー・セーブ・
シストリック・アレーを介する前記2バスで前記複素績
に対する和及びキャリーを形成させることを特徴とする
複素乗算器。
(2) 第1項記載の複素乗算器において、前記、制
御手段は与えられた複素績と関連する各バスで前記キャ
リー・セーブ・シストリック・アレーにより処理された
積の間で1段の遅延を挿入すると共に、前記キャリー・
セーブ・シストリック・アレーの前記1段の遅延のそれ
ぞれを介して和及びキャリーを処理するために必要とす
るXクロック・サイクルにより前記フィードバック手段
から和及びキャリーを遅延する遅延手段を更に備え、 前記1IIII11手段は前記キャリー・セーブ・シス
トリック・アレーを介する第2のバスにおける前記複素
績の実数及び虚数部の和及びキャリーを前記キャリー・
セーブ・シストリック・アレーの1つ置きのクロック・
サイクルで出力するように、次の前記複素績の処理の第
1バスを現在複素積の処理の第2バスとインターリーブ
させると共に、連続的なデータを前記キャリー・セーブ
・シストリック・アレーに入力し、前記加算手段は前記
キャリー・セーブ・シストリック・アレーの速度の1/
2で動作することを特徴とするシストリック複素乗算器
。
御手段は与えられた複素績と関連する各バスで前記キャ
リー・セーブ・シストリック・アレーにより処理された
積の間で1段の遅延を挿入すると共に、前記キャリー・
セーブ・シストリック・アレーの前記1段の遅延のそれ
ぞれを介して和及びキャリーを処理するために必要とす
るXクロック・サイクルにより前記フィードバック手段
から和及びキャリーを遅延する遅延手段を更に備え、 前記1IIII11手段は前記キャリー・セーブ・シス
トリック・アレーを介する第2のバスにおける前記複素
績の実数及び虚数部の和及びキャリーを前記キャリー・
セーブ・シストリック・アレーの1つ置きのクロック・
サイクルで出力するように、次の前記複素績の処理の第
1バスを現在複素積の処理の第2バスとインターリーブ
させると共に、連続的なデータを前記キャリー・セーブ
・シストリック・アレーに入力し、前記加算手段は前記
キャリー・セーブ・シストリック・アレーの速度の1/
2で動作することを特徴とするシストリック複素乗算器
。
(3) 第1項記載の複素乗算器において、前記キャ
リー・セーブ・シストリック・アレーの第1バスにより
処理された積の和及びキャリーは共通の乗数又は被乗数
を有することを特徴とする複素乗算器。
リー・セーブ・シストリック・アレーの第1バスにより
処理された積の和及びキャリーは共通の乗数又は被乗数
を有することを特徴とする複素乗算器。
(4) 第1項記載の複素乗算器において、前記和手
段は高速加算器を有することを特徴とする複素乗算器。
段は高速加算器を有することを特徴とする複素乗算器。
(5) 第1項記載の複素乗算器において、入力デー
タ・ベクトルを記憶して前記複素績により前記複素和及
び前記引算を実行する第3のレジスタ手段を有し、 前記加算手段は前記第1及び第2の高速加算器を有し、
前記第1の高速加算器は加算処理のために配置され、か
つ前記第2の高速加締器は引算処理のために配置され、 前記制御手段は前記第3のレジスタ手段を制御して、入
力データ・ベクトルの実数部と前記複素績の実数部との
間で加算及び引算処理を実行し、かつ入力データ・ベク
トルの虚数部と前記複素績の虚数部との間で加算及び引
算処理を実行するように、前記第2バスのキャリー・セ
ーブ・シストリック・アレーから出力される和及びキャ
リーに加えて、前記第1及び第2の高速加算器に対して
前記第3のレジスタ手段における前記入力データ・ベク
トルの実数及び虚数部のうちの一つを入力選択すること
を特徴とする複素乗算器。
タ・ベクトルを記憶して前記複素績により前記複素和及
び前記引算を実行する第3のレジスタ手段を有し、 前記加算手段は前記第1及び第2の高速加算器を有し、
前記第1の高速加算器は加算処理のために配置され、か
つ前記第2の高速加締器は引算処理のために配置され、 前記制御手段は前記第3のレジスタ手段を制御して、入
力データ・ベクトルの実数部と前記複素績の実数部との
間で加算及び引算処理を実行し、かつ入力データ・ベク
トルの虚数部と前記複素績の虚数部との間で加算及び引
算処理を実行するように、前記第2バスのキャリー・セ
ーブ・シストリック・アレーから出力される和及びキャ
リーに加えて、前記第1及び第2の高速加算器に対して
前記第3のレジスタ手段における前記入力データ・ベク
トルの実数及び虚数部のうちの一つを入力選択すること
を特徴とする複素乗算器。
(6)2つの複素ベクトルを乗算して複素績を得る複素
乗算器において、 乗数及び被乗数を受け取り、その積を表わす和及びキャ
リーを出力すると共に、予め定めたクロック速度で動作
するn段のキャリー・セーブ・シストリック・アレーと
、 前記キャリー・セーブ・シストリック・アレーの和及び
キVり一出力を前記キャリー・セーブ・シストリック・
アレーのキャリー及び和入力に選択的にフィードバック
するフィードバック手段と、Xクロック・サイクルによ
り前記フィードバック手段からフィードバックされた前
記和及びキャリーを遅延する遅延手段と、 前記キャリー・セーブ・シストリック・アレーの前記和
及びキャリーから選択した一つを加算する加算手段と、 前記乗数を記憶する第1のレジスタ手段と、前記被乗数
を記憶する第2のレジスタ手段と、前記フィードバック
手段の前記第1及び第2のレジスタ手段を制御して前記
シストリック・アレー乗算器に複数の乗数及び複数の被
乗数を入力して処理することにより、前記複素槽の実数
及び虚数部のそれぞれにおける前記複素槽のうちの一つ
に対する和及びキャリー・セーブ・シストリック・アレ
ーにより先ず処理し、かつn段のうちの一つにより離し
て配置して、nクロック・サイクルで前記キャリー・セ
ーブ・シストリック・アレーを介する第1バスを得る制
御手段とを備え、前記制御手段はn+xクロック・サイ
クル後に前記複素槽のうちのそれぞれに対してフィード
バックされた前記和及びキャリーに加え、前記複素槽の
実数及び虚数部における他の積に対する乗数及び被乗数
を前記キャリー・セーブ・シストリック・アレーに入力
し、かつn段のうちの一つにより離れて配置され、前記
キャリー・セーブ・シストリック・アレーを介する第2
のバスを形成して前記複素槽の実数及び虚数部の和及び
キャリーを発生すると共に、 前記加算手段は各前記複素槽の第2バスの終りで前記和
及びキャリーを加算するように制御され、前記複素槽の
実数及び虚数部を出力し、前記制御手段はある複素槽の
実数及び虚数部の和及びキャリーを前記キャリー・セー
ブ・シストリック・アレーの一つ置きのクロック・サイ
クルで出力し、前記加算手段を前記キャリー・セーブ・
シストリック・アレーを介するデータの連続的な流れに
より前記キャリー・セーブ・シストリック・アレーのク
ロック速度の1/2で動作させるように、第1の複素槽
に対する乗数及び被乗数の第1バスを前の複素槽に対す
る乗数及び被乗数の第2バスによりインターレースする
ことを特徴とする複素乗算器。
乗算器において、 乗数及び被乗数を受け取り、その積を表わす和及びキャ
リーを出力すると共に、予め定めたクロック速度で動作
するn段のキャリー・セーブ・シストリック・アレーと
、 前記キャリー・セーブ・シストリック・アレーの和及び
キVり一出力を前記キャリー・セーブ・シストリック・
アレーのキャリー及び和入力に選択的にフィードバック
するフィードバック手段と、Xクロック・サイクルによ
り前記フィードバック手段からフィードバックされた前
記和及びキャリーを遅延する遅延手段と、 前記キャリー・セーブ・シストリック・アレーの前記和
及びキャリーから選択した一つを加算する加算手段と、 前記乗数を記憶する第1のレジスタ手段と、前記被乗数
を記憶する第2のレジスタ手段と、前記フィードバック
手段の前記第1及び第2のレジスタ手段を制御して前記
シストリック・アレー乗算器に複数の乗数及び複数の被
乗数を入力して処理することにより、前記複素槽の実数
及び虚数部のそれぞれにおける前記複素槽のうちの一つ
に対する和及びキャリー・セーブ・シストリック・アレ
ーにより先ず処理し、かつn段のうちの一つにより離し
て配置して、nクロック・サイクルで前記キャリー・セ
ーブ・シストリック・アレーを介する第1バスを得る制
御手段とを備え、前記制御手段はn+xクロック・サイ
クル後に前記複素槽のうちのそれぞれに対してフィード
バックされた前記和及びキャリーに加え、前記複素槽の
実数及び虚数部における他の積に対する乗数及び被乗数
を前記キャリー・セーブ・シストリック・アレーに入力
し、かつn段のうちの一つにより離れて配置され、前記
キャリー・セーブ・シストリック・アレーを介する第2
のバスを形成して前記複素槽の実数及び虚数部の和及び
キャリーを発生すると共に、 前記加算手段は各前記複素槽の第2バスの終りで前記和
及びキャリーを加算するように制御され、前記複素槽の
実数及び虚数部を出力し、前記制御手段はある複素槽の
実数及び虚数部の和及びキャリーを前記キャリー・セー
ブ・シストリック・アレーの一つ置きのクロック・サイ
クルで出力し、前記加算手段を前記キャリー・セーブ・
シストリック・アレーを介するデータの連続的な流れに
より前記キャリー・セーブ・シストリック・アレーのク
ロック速度の1/2で動作させるように、第1の複素槽
に対する乗数及び被乗数の第1バスを前の複素槽に対す
る乗数及び被乗数の第2バスによりインターレースする
ことを特徴とする複素乗算器。
(1) 第6項記載の複素乗算器において、前記キャ
リー・セーブ・シストリック・アレーは修飾したブース
演算子に従って動作すると共に、被乗数の長さは2nに
等しいことを特徴とする複素乗算器。
リー・セーブ・シストリック・アレーは修飾したブース
演算子に従って動作すると共に、被乗数の長さは2nに
等しいことを特徴とする複素乗算器。
(8) 第7項記載の複素乗算器において、前記キャ
リー・セーブ・シストリック・アレーは 各行を被乗数のうちの1ビツトに対応させ、各列を部分
積に対応させて複数の行列を形成すると共に、その入力
に和レジスタ、キャリー・レジスタ及びデータ・レジス
タに関連させ、処理した和及びキャリーと関連する被乗
数ビットとをそれぞれ記憶する加算器のアレーと、 前記加算器のそれぞれと関連され、ブース演算子の制御
信号に従って被乗数についてのブース演算の実行を判断
するブース演算手段と、各列に関連した被乗数ビットを
調べ、関連する部分積を形成するために必要なブース演
算子を判断して前記ブース演算子の制御信号を発生し、
前記ブース演算手段に入力するデコード手段と、部分積
を発生して中間的な部分和と加算するときは適当な複数
のビットを出力するように、前記列のそれぞれと関連し
た乗数の複数のビットを遅延させる遅延手段とを備える
と共に、 前記加算器は和、キャリー及び修飾した被乗数ビットを
入力し、前記和及びキャリーを修飾したブース演算子に
従ってシフトさせて出力し、次の列に入力させることを
特徴とする複素乗算器。
リー・セーブ・シストリック・アレーは 各行を被乗数のうちの1ビツトに対応させ、各列を部分
積に対応させて複数の行列を形成すると共に、その入力
に和レジスタ、キャリー・レジスタ及びデータ・レジス
タに関連させ、処理した和及びキャリーと関連する被乗
数ビットとをそれぞれ記憶する加算器のアレーと、 前記加算器のそれぞれと関連され、ブース演算子の制御
信号に従って被乗数についてのブース演算の実行を判断
するブース演算手段と、各列に関連した被乗数ビットを
調べ、関連する部分積を形成するために必要なブース演
算子を判断して前記ブース演算子の制御信号を発生し、
前記ブース演算手段に入力するデコード手段と、部分積
を発生して中間的な部分和と加算するときは適当な複数
のビットを出力するように、前記列のそれぞれと関連し
た乗数の複数のビットを遅延させる遅延手段とを備える
と共に、 前記加算器は和、キャリー及び修飾した被乗数ビットを
入力し、前記和及びキャリーを修飾したブース演算子に
従ってシフトさせて出力し、次の列に入力させることを
特徴とする複素乗算器。
(9) 第7項記載の複素乗算器において、前記和手
段は高速加算器を有することを特徴とする複素乗算器。
段は高速加算器を有することを特徴とする複素乗算器。
(10)第7項記載の複素乗算器において、前記遅延手
段は前記フィードバック手段からフィードバックされた
和及びキャリーを2クロツク・サイクルだけ遅延させる
ことを特徴とする特許乗算器。
段は前記フィードバック手段からフィードバックされた
和及びキャリーを2クロツク・サイクルだけ遅延させる
ことを特徴とする特許乗算器。
(11)第7項記載の複素乗算器において、前記複素部
と複素加算及び引算をするのための入力ベクトルを記憶
する第3のレジスタ手段と、前記複素部及び引算の結果
を記憶するメモリ手段とを更に備え、 前記和手段は加算のために配列された第1の高速加算器
と、引算のために配列されに第2の高速加算器とを備え
、かつ前記第1及び第2の高速船i3は前記キャリー・
セーブ・シストリック・アレーを介する前記第2バスで
前記複素部の実数及び虚数部のみを受け取り、 前記制御手段は前記第3のレジスタ手段を制御し、前記
複素部の実数部に対す°る和及びキャリーと加算及び引
算をするための前記入力ベクトルの実数部と、前記複素
部の虚数部に対する和及びキャリーと加算及び引算する
ための前記入力ベクトルの虚数部とを出力することを特
徴とする複索乗算器。
と複素加算及び引算をするのための入力ベクトルを記憶
する第3のレジスタ手段と、前記複素部及び引算の結果
を記憶するメモリ手段とを更に備え、 前記和手段は加算のために配列された第1の高速加算器
と、引算のために配列されに第2の高速加算器とを備え
、かつ前記第1及び第2の高速船i3は前記キャリー・
セーブ・シストリック・アレーを介する前記第2バスで
前記複素部の実数及び虚数部のみを受け取り、 前記制御手段は前記第3のレジスタ手段を制御し、前記
複素部の実数部に対す°る和及びキャリーと加算及び引
算をするための前記入力ベクトルの実数部と、前記複素
部の虚数部に対する和及びキャリーと加算及び引算する
ための前記入力ベクトルの虚数部とを出力することを特
徴とする複索乗算器。
(12)複素乗算を必要とする高速フーリエ変換バタフ
ライを処理して前記複素部を形成した後に前記複素加算
及び引算をする複素乗算器において、複素乗算の乗数と
して複素フーリエ係数を記憶する第1のメモリ手段と、 複素乗算の被乗数として入力ベクトルを記憶する第2の
メモリ手段と、 複素部と複素加算及び引算をするための入力ベクトルを
記憶するメモリ手段と、 前記第1の及び第2のメモリ手段からの前記入力ベクト
ル及び乗数の複素部のうちの一つをそれぞれ受け取り、
予め定めた乗算アルゴリズムに従って部分積を逐次発生
し、かつ予め定めた数のパイプライン・クロック・サイ
クルにおいて通過させるようにしたそれぞれのバスにお
いて形成される積に対する和及びキャリーと加算するn
段のパイプライン加算手段と、 前記パイプライン加算手段により、前記和及びキャリー
出力を前記パイプライン加算手段の第1段における第1
の部分積に選択的に加算するフィードバック手段と、 前記パイプライン加算手段からの前記和及びキャリー出
力と、前記第3のメモリ手段からの入力ベクトルの実数
及び虚数部とを選択的に受け取り、その結果のバタフラ
イ成分を出力する高速加算手段と、 前記パイプライン加算手段の前記第1及び第2のメモリ
手段を制御して乗数及び被乗数を入力し、前記パイプラ
イン加算手段を介する前記第1バスで前記第1の積と、
前記第1の積から1段だけ遅延した第4の積とを発生す
ると共に、1バイブライン・クロック信号により遅延す
るように制御され、かつ前記第2の積から引算するため
の前記第1の積と、前記パイプライン加算手段における
前記第3の積と加算するための前゛2第4の積とをフィ
ードバックする前記フィードバック手段によって、第2
バスで前記第2及び第3の積を発生し、前記第2バス後
に前記複素部の実数及び虚数部を発生し、前記パイプラ
イン加算手段に1段だけ分離して出力する制御手段とを
備え、 前記複素乗算は第1、第2、第3及び第4の積の発生を
必要とし、前記第1及び第2の積の引算は前記複素乗算
の実数部を形成し、前記3及び第4の積の加算は前記部
分積の虚数部を形成し、前記制御手段は前のバタフライ
計算の第2バス中にバタフライ計算の第1バスに対する
前記第1及び第2のメモリ手段から出力する複数の乗数
及び被乗数を制御してインターリーブし、前記高速加算
手段は前記制御手段により制御さしれて、一つ置きのク
ロック・サイクルで前記複素部の実数及び虚数部に対す
る和及びキャリーを受け取り、前記第3のメモリ手段の
入力ベクトルと複素加算及び引算を実行することを特徴
とする複素乗算器。
ライを処理して前記複素部を形成した後に前記複素加算
及び引算をする複素乗算器において、複素乗算の乗数と
して複素フーリエ係数を記憶する第1のメモリ手段と、 複素乗算の被乗数として入力ベクトルを記憶する第2の
メモリ手段と、 複素部と複素加算及び引算をするための入力ベクトルを
記憶するメモリ手段と、 前記第1の及び第2のメモリ手段からの前記入力ベクト
ル及び乗数の複素部のうちの一つをそれぞれ受け取り、
予め定めた乗算アルゴリズムに従って部分積を逐次発生
し、かつ予め定めた数のパイプライン・クロック・サイ
クルにおいて通過させるようにしたそれぞれのバスにお
いて形成される積に対する和及びキャリーと加算するn
段のパイプライン加算手段と、 前記パイプライン加算手段により、前記和及びキャリー
出力を前記パイプライン加算手段の第1段における第1
の部分積に選択的に加算するフィードバック手段と、 前記パイプライン加算手段からの前記和及びキャリー出
力と、前記第3のメモリ手段からの入力ベクトルの実数
及び虚数部とを選択的に受け取り、その結果のバタフラ
イ成分を出力する高速加算手段と、 前記パイプライン加算手段の前記第1及び第2のメモリ
手段を制御して乗数及び被乗数を入力し、前記パイプラ
イン加算手段を介する前記第1バスで前記第1の積と、
前記第1の積から1段だけ遅延した第4の積とを発生す
ると共に、1バイブライン・クロック信号により遅延す
るように制御され、かつ前記第2の積から引算するため
の前記第1の積と、前記パイプライン加算手段における
前記第3の積と加算するための前゛2第4の積とをフィ
ードバックする前記フィードバック手段によって、第2
バスで前記第2及び第3の積を発生し、前記第2バス後
に前記複素部の実数及び虚数部を発生し、前記パイプラ
イン加算手段に1段だけ分離して出力する制御手段とを
備え、 前記複素乗算は第1、第2、第3及び第4の積の発生を
必要とし、前記第1及び第2の積の引算は前記複素乗算
の実数部を形成し、前記3及び第4の積の加算は前記部
分積の虚数部を形成し、前記制御手段は前のバタフライ
計算の第2バス中にバタフライ計算の第1バスに対する
前記第1及び第2のメモリ手段から出力する複数の乗数
及び被乗数を制御してインターリーブし、前記高速加算
手段は前記制御手段により制御さしれて、一つ置きのク
ロック・サイクルで前記複素部の実数及び虚数部に対す
る和及びキャリーを受け取り、前記第3のメモリ手段の
入力ベクトルと複素加算及び引算を実行することを特徴
とする複素乗算器。
(13)第12項記載の複素乗算器において、前記パイ
プライン加算手段はキャリー・セーブ・シストリック・
アレーを有することを特徴とする複素乗算器。
プライン加算手段はキャリー・セーブ・シストリック・
アレーを有することを特徴とする複素乗算器。
(14)第12項記載の複素乗算器において、前記バイ
ブライン加算器手段は修飾したブース演算子を用いるこ
とを特徴とする複素乗算器。
ブライン加算器手段は修飾したブース演算子を用いるこ
とを特徴とする複素乗算器。
(15)第14項記載の複素乗算器において、前記パイ
プライン加算器手段は 複数段の加算器を備え、そのうちの第1段はそれぞれ発
生した部分積と関連され、かつ複数段の加算器はそれぞ
れ 被乗数の各ビットと関連する全加算器と、入力される複
数のパラメータを記憶する複数の入力レジスタと、 修飾したブース・アルゴリズムに従って関連する被乗数
ビットを修飾するブース修飾器と、前記複数段の加算器
にそれぞれ関連され、関連する複数の被乗数ビットを受
け取り、修飾した前記ブース演算子を発生して前記複数
段の加算器における前記ブース修fIi器に入力するブ
ース・デコード手段と、 前記ブース・デコード手段のそれぞれと関連されて前記
乗数を受け取る遅延手段とを備えると共に、 前記第2のメモリ手段は関連する前記部分積の発生と同
期して前記ブース・デコード手段に前記乗数を入力する
ように、前記乗数のうちの関連する乗数を遅延し、前記
乗数の全ビットを全ての前記遅延手段に同時に入力し、 前記複数段の加算器は和及びキャリーを伝搬させるよう
にされ、一つの和及びキャリーを出力することを特徴と
する複素乗算器。
プライン加算器手段は 複数段の加算器を備え、そのうちの第1段はそれぞれ発
生した部分積と関連され、かつ複数段の加算器はそれぞ
れ 被乗数の各ビットと関連する全加算器と、入力される複
数のパラメータを記憶する複数の入力レジスタと、 修飾したブース・アルゴリズムに従って関連する被乗数
ビットを修飾するブース修飾器と、前記複数段の加算器
にそれぞれ関連され、関連する複数の被乗数ビットを受
け取り、修飾した前記ブース演算子を発生して前記複数
段の加算器における前記ブース修fIi器に入力するブ
ース・デコード手段と、 前記ブース・デコード手段のそれぞれと関連されて前記
乗数を受け取る遅延手段とを備えると共に、 前記第2のメモリ手段は関連する前記部分積の発生と同
期して前記ブース・デコード手段に前記乗数を入力する
ように、前記乗数のうちの関連する乗数を遅延し、前記
乗数の全ビットを全ての前記遅延手段に同時に入力し、 前記複数段の加算器は和及びキャリーを伝搬させるよう
にされ、一つの和及びキャリーを出力することを特徴と
する複素乗算器。
(16) 第15項記載の複素乗算器において、前記
フィードバック手段は第1段の前記加算器の和及びキャ
リー入力に前記第及びキャリーをフィードバックすると
共に、1パイプライン・クロック・ナイクルによりフィ
ードバックされた和及びキャリーを遅延させる手段を有
することを特徴とする複素乗算器。
フィードバック手段は第1段の前記加算器の和及びキャ
リー入力に前記第及びキャリーをフィードバックすると
共に、1パイプライン・クロック・ナイクルによりフィ
ードバックされた和及びキャリーを遅延させる手段を有
することを特徴とする複素乗算器。
(11)第12項記載の複素乗算器゛において、前記高
速加算器は 前記パイプライン加算手段の出力と、加算処理を実行す
る前記第3のメモリ手段に記憶されている入力ベクトル
の実数又は虚数部とを選択的に受け取って加算処理を実
行する第1の高速加算器と、前記パイプライン加算手段
の出力と、前記第3のメモリ手段に記憶されている入力
ベクトルの実数又は虚数部とを選択的に受け取り、前記
第3のメモリ手段に記憶されている前記入力ベクトルの
実数又は虚数部から前記複素積の実数又は虚数部を引算
する引算処理を実行する第2の高速加算器と を備えることを特徴とする複素乗算器。
速加算器は 前記パイプライン加算手段の出力と、加算処理を実行す
る前記第3のメモリ手段に記憶されている入力ベクトル
の実数又は虚数部とを選択的に受け取って加算処理を実
行する第1の高速加算器と、前記パイプライン加算手段
の出力と、前記第3のメモリ手段に記憶されている入力
ベクトルの実数又は虚数部とを選択的に受け取り、前記
第3のメモリ手段に記憶されている前記入力ベクトルの
実数又は虚数部から前記複素積の実数又は虚数部を引算
する引算処理を実行する第2の高速加算器と を備えることを特徴とする複素乗算器。
(18)第17項記載の複累乗W器において、前記第1
及び第2の高速加算器により出力された結果を記憶する
第4のメモリ手段を更に備えることを特徴とする複素乗
算器。
及び第2の高速加算器により出力された結果を記憶する
第4のメモリ手段を更に備えることを特徴とする複素乗
算器。
(19)第17項記載の複素乗算器において、8入カベ
クトルは前記第3のメモリ手段に記憶され、 六入カベクトルは前記第1のメモリ手段に記憶され、 複素W係数は前記第2のメモリ手段に記憶されると共に
、前記複素積は ZR=WRBll−WlBI Z、=WXBR−W、8゜ による実数部2 及び虚数部Z1からなる共に、WRを
前記バイブライン加算器手段を介する第1バスに用い、
Wlを前記バイブライン加算器手段を介して第2バスに
用いることにより、Wlを2つの乗算について1回アク
セスのみ必要とするものてし、かつWRを2つの乗算に
ついて1回だけアクセスを必要とするものとし、WRB
Rを第1の積、WB を第2の積、WlBRを第3の
積、I WRBlを第4の積とし、 前記八人カデータ・ベクトルとの前記複素加算を AR十/−ZR A、+/−Z。
クトルは前記第3のメモリ手段に記憶され、 六入カベクトルは前記第1のメモリ手段に記憶され、 複素W係数は前記第2のメモリ手段に記憶されると共に
、前記複素積は ZR=WRBll−WlBI Z、=WXBR−W、8゜ による実数部2 及び虚数部Z1からなる共に、WRを
前記バイブライン加算器手段を介する第1バスに用い、
Wlを前記バイブライン加算器手段を介して第2バスに
用いることにより、Wlを2つの乗算について1回アク
セスのみ必要とするものてし、かつWRを2つの乗算に
ついて1回だけアクセスを必要とするものとし、WRB
Rを第1の積、WB を第2の積、WlBRを第3の
積、I WRBlを第4の積とし、 前記八人カデータ・ベクトルとの前記複素加算を AR十/−ZR A、+/−Z。
とすると共に、前記高速手段により最初にzRとARの
引算及び加算処理を実行し、次に八〇とzlの引算及び
加算処理を実行するものとすることを特徴とする複素乗
算器。
引算及び加算処理を実行し、次に八〇とzlの引算及び
加算処理を実行するものとすることを特徴とする複素乗
算器。
(20) 2つのベクトルを乗算して複素積を得る複
素乗算方法において、 n段のキャリー・セーブ・シストリック・アレ−を備え
て乗数及び被乗数を受け取り、その積を表わす和及びキ
ャリーを出力するステップと、前記キャリー・セーブ・
シストリック・アレーを介する前記複素槽の実数及び虚
数部のそれぞれに対する前記績のうちの一方を逐次処理
してその和及びキャリーを逐次出力し、キャリー・セー
ブ・シストリック・アレーを介する第1バスを形成する
ステップと、 前記第1バスにおいて前記績に対する前記和及びキャリ
ーを前記キャリー・セーブ・シストリック・アレーの和
及びキャリー入力に逐次フィードバックするステップと
、 逐次フィードバックされた前記和及びキャリーとの前記
複素槽の実数及び虚数部のそれぞれの積のうちの他方を
逐次処理して、前記キャリー・セーブ・シストリック・
アレーを介する第2バスにおいて前記複素槽に対する和
及びキャリーを出力するステップと、 前記第2バスにおいて前記複素槽の和及びキャリーを加
算して前記複素槽を出力する加算ステップと を備えていることを特徴とする複素乗算方法。
素乗算方法において、 n段のキャリー・セーブ・シストリック・アレ−を備え
て乗数及び被乗数を受け取り、その積を表わす和及びキ
ャリーを出力するステップと、前記キャリー・セーブ・
シストリック・アレーを介する前記複素槽の実数及び虚
数部のそれぞれに対する前記績のうちの一方を逐次処理
してその和及びキャリーを逐次出力し、キャリー・セー
ブ・シストリック・アレーを介する第1バスを形成する
ステップと、 前記第1バスにおいて前記績に対する前記和及びキャリ
ーを前記キャリー・セーブ・シストリック・アレーの和
及びキャリー入力に逐次フィードバックするステップと
、 逐次フィードバックされた前記和及びキャリーとの前記
複素槽の実数及び虚数部のそれぞれの積のうちの他方を
逐次処理して、前記キャリー・セーブ・シストリック・
アレーを介する第2バスにおいて前記複素槽に対する和
及びキャリーを出力するステップと、 前記第2バスにおいて前記複素槽の和及びキャリーを加
算して前記複素槽を出力する加算ステップと を備えていることを特徴とする複素乗算方法。
(21)第20項記載の複素乗算方法において、キャリ
ー・セーブ・シストリック・アレーの第1バスで処理し
た2つの積のうちの第2のものを1段だけ遅延するステ
ップと、 前記キャリー・セーブ・シストリック・アレーの2クロ
ツク・サイクルにより前記キャリー・セーブ・シストリ
ック・アレーの和及びキャリー入力に前記和及びキャリ
ーをフィードバックすると共に、その1クロツク・サイ
クルをn段の前記キャリー・セーブ・シストリック・ア
レーのうちの一つを介する和及びキャリーを処理する時
間としたステップと、 前記複素槽の和及びキャリーを前記キャリー・セーブ・
シストリック・アレーの一つ置きに出力するように、次
の複素槽の計算の第1バスにおける積を現在処理のキャ
リー・セーブ・シストリック・アレーを介する第2バス
によりインターリーブするステップとを更に備え、 °前記加算ステップは前記シストリック・アレーのクロ
ック速度の1/2で動作することを特徴とする複素乗算
方法。
ー・セーブ・シストリック・アレーの第1バスで処理し
た2つの積のうちの第2のものを1段だけ遅延するステ
ップと、 前記キャリー・セーブ・シストリック・アレーの2クロ
ツク・サイクルにより前記キャリー・セーブ・シストリ
ック・アレーの和及びキャリー入力に前記和及びキャリ
ーをフィードバックすると共に、その1クロツク・サイ
クルをn段の前記キャリー・セーブ・シストリック・ア
レーのうちの一つを介する和及びキャリーを処理する時
間としたステップと、 前記複素槽の和及びキャリーを前記キャリー・セーブ・
シストリック・アレーの一つ置きに出力するように、次
の複素槽の計算の第1バスにおける積を現在処理のキャ
リー・セーブ・シストリック・アレーを介する第2バス
によりインターリーブするステップとを更に備え、 °前記加算ステップは前記シストリック・アレーのクロ
ック速度の1/2で動作することを特徴とする複素乗算
方法。
(22)第20項記載の複素乗算方法において、更に、
前記入力ベクトルの実数部を前記複素槽の実数部に加算
し、前記入力ベクトルの実数部から前記複素槽の実数部
を引算し、前記入力ベクトルの虚数部を前記複素槽の虚
数部に加算し、前記入力ベクトルの虚数部から前記複素
槽の虚数部を引算して複素和及び複索引算を得ると共に
、前記入力ベクトルの実数部及び前記入力ベクトルの虚
数部についての処理は前記複素槽のそれぞれの部分の和
及びキャリーの和と一致することを特徴とする複素乗算
方法。
前記入力ベクトルの実数部を前記複素槽の実数部に加算
し、前記入力ベクトルの実数部から前記複素槽の実数部
を引算し、前記入力ベクトルの虚数部を前記複素槽の虚
数部に加算し、前記入力ベクトルの虚数部から前記複素
槽の虚数部を引算して複素和及び複索引算を得ると共に
、前記入力ベクトルの実数部及び前記入力ベクトルの虚
数部についての処理は前記複素槽のそれぞれの部分の和
及びキャリーの和と一致することを特徴とする複素乗算
方法。
第1図は演算装置及び制御部を示すFFT複累乗痺乗算
ブロック図、 第2図は演算装置及びバッファ・ファイル・レジスタの
ブロック図、 第3図はパイプライン・アレーの概要ブロック図、 第4図はアレー・セルの一2列についてのブロック図、 第5図はパイプライン・アレーの1セルについてのブロ
ック図、 第6図は第5図のパイプライン・アレーのセルのブロッ
ク図、 第7図はバッファ・ファイル・レジスタのメモリ配列を
示す図、 第8図はバッファ・ファイル・レジスタのブロック図、 第9図はバッファ・ファイル・レジスタに新しいデータ
をロードするためのフローチャート、第10図は1組の
データの変換によりサイクルするフローチャートである
。
ブロック図、 第2図は演算装置及びバッファ・ファイル・レジスタの
ブロック図、 第3図はパイプライン・アレーの概要ブロック図、 第4図はアレー・セルの一2列についてのブロック図、 第5図はパイプライン・アレーの1セルについてのブロ
ック図、 第6図は第5図のパイプライン・アレーのセルのブロッ
ク図、 第7図はバッファ・ファイル・レジスタのメモリ配列を
示す図、 第8図はバッファ・ファイル・レジスタのブロック図、 第9図はバッファ・ファイル・レジスタに新しいデータ
をロードするためのフローチャート、第10図は1組の
データの変換によりサイクルするフローチャートである
。
Claims (2)
- (1)2つの複素ベクトルを乗算して複素積を得る複素
乗算器において、 乗数及び被乗数を受け取り、その積を表わす和及びキャ
リーを出力するn段のキャリー・セーブ・シストリック
・アレーと、 前記キャリー・セーブ・シストリック・アレーの和及び
キャリー出力を前記キャリー・セーブ・シストリック・
アレーのキャリー及び和入力に選択的にフィードバック
するフィードバック手段と、前記乗数を記憶する第1の
レジスタ手段と、前記被乗数を記憶する第2のレジスタ
手段と、前記第1及び第2のレジスタ手段、及び前記フ
ィードバック手段を制御し、前記シストリック・アレー
乗算器を介する第1バスで前記複素積の実数部における
積のうちの一つ及び前記複素積の虚数部における積のう
ちの一つを処理することにより、2つの前記積を逐次処
理するようにした制御手段と、 第2バス後に前記キャリー・セーブ・シストリック・ア
レーの和及びキャリー出力を加算して複素和を形成する
加算手段とを備え、 前記フィードバック手段は前記第1バスにおいて2つの
前記積から和及びキャリーを前記キャリー・セーブ・シ
ストリック・アレーの和及びキャリー入力にフィードバ
ック可能に機能し、前記複素積の実数部における残りの
積及び前記複素積の虚数部における残りの積を加算させ
、前記キャリー・セーブ・シストリック・アレーを介す
る前記2バスで前記複素積に対する和及びキャリーを形
成させることを特徴とする複素乗算器。 - (2)2つのベクトルを乗算して複素積を得る複素乗算
方法において、 n段のキャリー・セーブ・シストリック・アレーを備え
て乗数及び被乗数を受け取り、その積を表わす和及びキ
ャリーを出力するステップと、前記キャリー・セーブ・
シストリック・アレーを介して前記複素積の実数及び虚
数部のそれぞれに対する前記積のうちの一つを逐次処理
してその和及びキャリーを逐次出力し、キャリー・セー
ブ・シストリック・アレーを介する第1バスを形成する
ステップと、 前記第1バスの積に対する前記和及びキャリーを前記キ
ャリー・セーブ・シストリック・アレーの和及びキャリ
ー入力に逐次フィードバックするステップと、 逐次フィードバックされた前記和及びキャリーと共に前
記複素積の実数及び虚数部のそれぞれの積の他方を逐次
処理して、前記キャリー・セーブ・シストリック・アレ
ーを介する第2バスの複素積に対する和及びキャリーを
出力するステップと、前記第2バスの前記複素積の和及
びキャリーを加算するステップと を備えていることを特徴とする複素乗算方法。
Applications Claiming Priority (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US809352 | 1985-12-16 | ||
| US06/809,352 US4769779A (en) | 1985-12-16 | 1985-12-16 | Systolic complex multiplier |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| JPS62194577A true JPS62194577A (ja) | 1987-08-27 |
| JP2511914B2 JP2511914B2 (ja) | 1996-07-03 |
Family
ID=25201118
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP61296870A Expired - Lifetime JP2511914B2 (ja) | 1985-12-16 | 1986-12-15 | 複素乗算器及び複素乗算方法 |
Country Status (2)
| Country | Link |
|---|---|
| US (1) | US4769779A (ja) |
| JP (1) | JP2511914B2 (ja) |
Families Citing this family (21)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US5333263A (en) * | 1987-09-25 | 1994-07-26 | Minolta Camera Kabushiki Kaisha | Digital image processing apparatus |
| GB2219106B (en) * | 1988-05-26 | 1992-04-15 | Secr Defence | Processor for constrained least squares computations |
| US4896287A (en) * | 1988-05-31 | 1990-01-23 | General Electric Company | Cordic complex multiplier |
| DE68926783T2 (de) * | 1988-10-07 | 1996-11-28 | Martin Marietta Corp | Paralleler datenprozessor |
| US5138695A (en) * | 1989-10-10 | 1992-08-11 | Hnc, Inc. | Systolic array image processing system |
| US5163017A (en) * | 1990-03-23 | 1992-11-10 | Texas Instruments Incorporated | Pipelined Fast Fourier Transform (FFT) architecture |
| US5095456A (en) * | 1990-03-23 | 1992-03-10 | Texas Instruments Incorporated | Method for densely packing a complex multiplier |
| WO1992000561A1 (en) * | 1990-06-27 | 1992-01-09 | Luminis Pty Ltd. | A generalized systolic ring serial floating point multiplier |
| US5293330A (en) * | 1991-11-08 | 1994-03-08 | Communications Satellite Corporation | Pipeline processor for mixed-size FFTs |
| US5623683A (en) * | 1992-12-30 | 1997-04-22 | Intel Corporation | Two stage binary multiplier |
| DE4317074C1 (de) * | 1993-05-21 | 1994-06-23 | Itt Ind Gmbh Deutsche | Multiplizierer für reelle und komplexe Zahlen |
| US6073185A (en) * | 1993-08-27 | 2000-06-06 | Teranex, Inc. | Parallel data processor |
| US5619443A (en) * | 1995-03-31 | 1997-04-08 | International Business Machines Corporation | Carry select and input select adder for late arriving data |
| US5918062A (en) * | 1997-10-23 | 1999-06-29 | Advanced Micro Devices, Inc. | Microprocessor including an efficient implemention of an accumulate instruction |
| US6185667B1 (en) | 1998-04-09 | 2001-02-06 | Teranex, Inc. | Input/output support for processing in a mesh connected computer |
| US6212628B1 (en) | 1998-04-09 | 2001-04-03 | Teranex, Inc. | Mesh connected computer |
| US6173388B1 (en) | 1998-04-09 | 2001-01-09 | Teranex Inc. | Directly accessing local memories of array processors for improved real-time corner turning processing |
| US6067609A (en) * | 1998-04-09 | 2000-05-23 | Teranex, Inc. | Pattern generation and shift plane operations for a mesh connected computer |
| US7676533B2 (en) * | 2003-09-29 | 2010-03-09 | Broadcom Corporation | System for executing SIMD instruction for real/complex FFT conversion |
| US7660840B2 (en) * | 2003-09-29 | 2010-02-09 | Broadcom Corporation | Method, system, and computer program product for executing SIMD instruction for flexible FFT butterfly |
| US8074051B2 (en) * | 2004-04-07 | 2011-12-06 | Aspen Acquisition Corporation | Multithreaded processor with multiple concurrent pipelines per thread |
Citations (4)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPS55147738A (en) * | 1979-05-04 | 1980-11-17 | Ibm | Adder |
| JPS576972A (en) * | 1980-06-16 | 1982-01-13 | Mitsubishi Electric Corp | Multiplying circuit of complex number |
| GB2106287A (en) * | 1981-08-18 | 1983-04-07 | Secr Defence | Digital data processor |
| JPS59186070A (ja) * | 1983-04-06 | 1984-10-22 | Asahi Chem Ind Co Ltd | 高速信号処理装置 |
Family Cites Families (6)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US3800130A (en) * | 1973-07-09 | 1974-03-26 | Rca Corp | Fast fourier transform stage using floating point numbers |
| US4275452A (en) * | 1979-11-08 | 1981-06-23 | Rockwell International Corporation | Simplified fast fourier transform butterfly arithmetic unit |
| US4344151A (en) * | 1980-04-21 | 1982-08-10 | Rockwell International Corporation | ROM-Based complex multiplier useful for FFT butterfly arithmetic unit |
| JPS57141753A (en) * | 1981-02-25 | 1982-09-02 | Nec Corp | Multiplication circuit |
| US4597053A (en) * | 1983-07-01 | 1986-06-24 | Codex Corporation | Two-pass multiplier/accumulator circuit |
| US4680727A (en) * | 1984-09-24 | 1987-07-14 | Rockwell International Corporation | Complex multiplier for binary two's complement numbers |
-
1985
- 1985-12-16 US US06/809,352 patent/US4769779A/en not_active Expired - Lifetime
-
1986
- 1986-12-15 JP JP61296870A patent/JP2511914B2/ja not_active Expired - Lifetime
Patent Citations (4)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPS55147738A (en) * | 1979-05-04 | 1980-11-17 | Ibm | Adder |
| JPS576972A (en) * | 1980-06-16 | 1982-01-13 | Mitsubishi Electric Corp | Multiplying circuit of complex number |
| GB2106287A (en) * | 1981-08-18 | 1983-04-07 | Secr Defence | Digital data processor |
| JPS59186070A (ja) * | 1983-04-06 | 1984-10-22 | Asahi Chem Ind Co Ltd | 高速信号処理装置 |
Also Published As
| Publication number | Publication date |
|---|---|
| JP2511914B2 (ja) | 1996-07-03 |
| US4769779A (en) | 1988-09-06 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| JPS62194577A (ja) | 複素乗算器及び複素乗算方法 | |
| EP0326415B1 (en) | Floating point/integer processor with divide and square root functions | |
| JP3869269B2 (ja) | 単一サイクルにおける乗算累算演算の処理 | |
| US5790446A (en) | Floating point multiplier with reduced critical paths using delay matching techniques | |
| Lang et al. | A radix-10 combinational multiplier | |
| US4156922A (en) | Digital system for computation of the values of composite arithmetic expressions | |
| JP2011134346A (ja) | 算術プロセッサ | |
| US9372665B2 (en) | Method and apparatus for multiplying binary operands | |
| JPH02504682A (ja) | 変換処理回路 | |
| US4939687A (en) | Serial-parallel multipliers using serial as well as parallel addition of partial products | |
| US4680727A (en) | Complex multiplier for binary two's complement numbers | |
| US5025408A (en) | Bit serial multiplier with parallel-in-serial-out carry and partial product shift registers | |
| US5661673A (en) | Power efficient booth multiplier using clock gating | |
| US5164724A (en) | Data format converters for use with digit-serial signals | |
| US3816732A (en) | Apparatus and method for serial-parallel binary multiplication | |
| US5957999A (en) | Booth multiplier with squaring operation accelerator | |
| US4740906A (en) | Digital lattice filter with multiplexed fast adder/full adder for performing sequential multiplication and addition operations | |
| US5016011A (en) | Increased performance of digital integrated circuits by processing with multiple-bit-width digits | |
| US3290493A (en) | Truncated parallel multiplication | |
| US5034908A (en) | Digit-serial transversal filters | |
| US4811270A (en) | Merged CCD/MOS integrated circuit | |
| US5724280A (en) | Accelerated booth multiplier using interleaved operand loading | |
| US5684731A (en) | Booth multiplier using data path width adder for efficient carry save addition | |
| US5948051A (en) | Device improving the processing speed of a modular arithmetic coprocessor | |
| JP3227538B2 (ja) | 2進整数乗算器 |