JPS6220590B2 - - Google Patents
Info
- Publication number
- JPS6220590B2 JPS6220590B2 JP56187142A JP18714281A JPS6220590B2 JP S6220590 B2 JPS6220590 B2 JP S6220590B2 JP 56187142 A JP56187142 A JP 56187142A JP 18714281 A JP18714281 A JP 18714281A JP S6220590 B2 JPS6220590 B2 JP S6220590B2
- Authority
- JP
- Japan
- Prior art keywords
- stage
- memory
- input
- address
- output
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired
Links
- 230000015654 memory Effects 0.000 claims description 53
- 238000004364 calculation method Methods 0.000 claims description 48
- 238000000034 method Methods 0.000 claims description 4
- 238000010586 diagram Methods 0.000 description 13
- 238000007792 addition Methods 0.000 description 3
- 241000023308 Acca Species 0.000 description 2
- 102100021641 Acetyl-CoA carboxylase 2 Human genes 0.000 description 2
- 101000677540 Homo sapiens Acetyl-CoA carboxylase 2 Proteins 0.000 description 2
- 238000006243 chemical reaction Methods 0.000 description 2
- 230000000295 complement effect Effects 0.000 description 1
- 230000003595 spectral effect Effects 0.000 description 1
- 238000001228 spectrum Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR 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
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- General Physics & Mathematics (AREA)
- Pure & Applied Mathematics (AREA)
- Mathematical Optimization (AREA)
- Mathematical Analysis (AREA)
- Computational Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Theoretical Computer Science (AREA)
- Algebra (AREA)
- Databases & Information Systems (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Complex Calculations (AREA)
Description
【発明の詳細な説明】
この発明はフーリエ変換をパイプライン式演算
により高速度で行うパイプライン高速フーリエ変
換装置に関する。DETAILED DESCRIPTION OF THE INVENTION The present invention relates to a pipeline fast Fourier transform device that performs Fourier transform at high speed by pipeline calculation.
フーリエ変換をデジタル的に実行するために、
時間領域及び周波数領域の双方の離散的なサンプ
ルで、しかも有限個のサンプルだけを対象とする
離散的フーリエ変換が行われる。入力時系列デー
タ、つまり時間領域の離散的なサンプルをx
(p)とし、スペクトル成分、即ち周波数領域の
離散的なサンプルX(k)とし、サンプル点数をN=
2m、従つてpは0乃至N―1、同様にkも0乃
至N―1の整数であり、回転因子をW=e-j〓〓
とし、Wpは複素平面上の単位円上の各点(1の
N乗根の1点)に対応する。この場合離散的フー
リエ変換は次の(1)式で表わせる。 To perform the Fourier transform digitally,
A discrete Fourier transform is performed on discrete samples in both the time domain and the frequency domain, and only on a finite number of samples. Input time series data, i.e. discrete samples in the time domain, x
(p), spectral components, that is, discrete samples in the frequency domain, X(k), and the number of sample points is N=
2 m , therefore p is 0 to N-1, similarly k is an integer from 0 to N-1, and the twiddle factor is W=e -j 〓〓
, and W p corresponds to each point on the unit circle on the complex plane (one point of the Nth root of 1). In this case, the discrete Fourier transform can be expressed by the following equation (1).
この離散的フーリエ変換を高速度に演算するア
ルゴリズムとして、いわゆるバタフライ演算の基
本演算を繰返すことによつて行う手法がある。例
えばクーリー・チユーキーのアルゴリズムは次の
通りである。即ちサンプル入力信号を偶数、奇数
で分割すると(1)式は次の(2)式に書ける。 As an algorithm for calculating this discrete Fourier transform at high speed, there is a method of performing the calculation by repeating the basic calculation of so-called butterfly calculation. For example, the Cooley-Chukey algorithm is as follows. That is, if the sample input signal is divided into even and odd numbers, equation (1) can be written as the following equation (2).
このN点のサンプルからなる離散的フーリエ変
換がN/2点からなる二つの離散的フーリエ変換A及
びBに分割されたことになる。更にN/2とN―1と
の間のkの範囲内においては
Wk=−Wk-〓
となる。よつてこのkの範囲内ではA−Wk-〓×
Bとして一般に演算される。つまり0乃至N/2−1
なるkの範囲内においてA+WkBとA−WkBと
の演算を帰納的に繰り返すことによつて高速フー
リエ変換を行うことができる。この演算は第1図
に示すように入力A,B、回転因子Wkに対して
A+WkBの出力をA′とし、A−WkBの出力を
B′とすることを表現し、これはいわゆるバタフラ
イ演算と呼ばれている。これらA,B,A′,
B′,Wは実部と虚部とがあり、従つてこのバタフ
ライ演算は次式を演算することになる。 This means that the discrete Fourier transform made up of samples at N points is divided into two discrete Fourier transforms A and B made up of N/2 points. Furthermore, within the range of k between N/2 and N-1, W k =-W k- . Therefore, within this range of k, A−W k− 〓×
It is generally calculated as B. That is, fast Fourier transform can be performed by recursively repeating the operations of A+W k B and A-W k B within the range of k from 0 to N/2-1. In this calculation, as shown in Figure 1, for inputs A, B, and twiddle factor W k , the output of A+W k B is A', and the output of A-W k B is
B′, and this is called a butterfly operation. These A, B, A′,
B' and W have a real part and an imaginary part, so this butterfly operation calculates the following equation.
例えば入力時系列のサンプルがx0乃至x15の16
個の場合は第2図に示すようにその各8点ずれた
入力の二つずつについてのバタフライ演算を行う
第1ステージと、その演算結果について更にバタ
フライ演算を行う第2ステージと、以下同様にし
てこの場合は16=24より、第4ステージにおける
バタフライ演算によつて離散的周波数スペクトル
X0乃至X15が得られる。 For example, the input time series samples are 16 from x 0 to x 15 .
In the case of , as shown in Figure 2, the first stage performs butterfly calculations on two inputs shifted by 8 points, the second stage performs butterfly calculations on the results of the calculations, and so on. In the case of a lever, since 16 = 2 4 , the discrete frequency spectrum is obtained by butterfly operation in the fourth stage.
X 0 to X 15 are obtained.
このように高速フーリエ変換はバタフライ演算
の繰り返しとして得られるため、従来からパイプ
ライン方式の演算が用いられてきた。しかし各演
算ステージにおいて行われる演算のデータの組合
せ及び回転因子はステージごとに異なるため全体
の回路の構成が複雑でシフトレジスタなどの遅延
素子を多く使つてデータの組合せを決定してお
り、装置構成が大がかりなものとなつていた。一
方ソフトウエア制御で一つのステージについての
演算を行うとその結果をメモリに記憶し、これを
読出して次のステージのバタフライ演算を行い、
その場合そのメモリに対する格納アドレスをステ
ージごとに異なる特殊なアドレス発生回路を用い
て発生する必要があり、またこの場合においては
1ステージずつ演算するため演算速度はあまり早
いものは得られなかつた。 Since the fast Fourier transform is thus obtained by repeating butterfly calculations, pipeline calculations have traditionally been used. However, since the data combinations and twiddle factors of the calculations performed in each calculation stage are different for each stage, the overall circuit configuration is complex, and many delay elements such as shift registers are used to determine the data combinations. was becoming a major issue. On the other hand, when a calculation is performed for one stage under software control, the result is stored in memory and read out to perform the butterfly calculation for the next stage.
In this case, it is necessary to generate a storage address for the memory using a special address generation circuit that differs from stage to stage, and in this case, the calculation speed is not very high because the calculation is performed for each stage.
この発明の目的は簡単な回路構成で、しかも高
速度に演算を行うことができるパイプライン高速
フーリエ変換装置を提供することにある。 An object of the present invention is to provide a pipeline fast Fourier transform device that has a simple circuit configuration and can perform calculations at high speed.
この発明によれば各演算ステージに対応してそ
れぞれ入出力用の第1,第2メモリと、回転因子
記憶用の第3メモリと、更にパイプライン方式に
よるバタフライ演算を行う演算ユニツトとが設け
られる。また最終演算結果を出力するバツフアメ
モリが二つ設けられ、これら各ステージの演算は
共通の制御ユニツトにより制御され、更に各ステ
ージのメモリをアクセスするためのアドレスを発
生するアドレスレジスタユニツトが共通に設けら
れる。各ステージにおけるパイプライン方式で行
われたバタフライ演算の結果は次のステージのそ
の時読出されてない方の即ち書込み側の入出力用
メモリに書込まれて全ステージ全体としてのパイ
プライン演算が行われる。更に先に述べたように
各メモリをアクセスするためのアドレスは共通の
アドレスレジスタユニツトから発生されるが、そ
の演算結果を記憶するための書込み用アドレス線
と第i番目のステージのメモリの書込みアドレス
線とはその下位iビツトだけが上位方向に循環的
に1ビツトだけずらされて接続される。 According to the present invention, first and second memories for input/output, a third memory for storing twiddle factors, and an arithmetic unit for performing butterfly computation using a pipeline method are provided corresponding to each arithmetic stage. . In addition, two buffer memories are provided to output the final calculation results, and the calculations at each stage are controlled by a common control unit.Furthermore, an address register unit is provided in common to generate addresses for accessing the memories at each stage. . The result of the butterfly operation performed in the pipeline method at each stage is written to the input/output memory of the next stage that is not being read at that time, that is, the writing side, and the pipeline operation for all stages as a whole is performed. . Furthermore, as mentioned earlier, the address for accessing each memory is generated from a common address register unit, and the write address line for storing the operation result and the write address of the i-th stage memory are generated from a common address register unit. The lines are connected with only the lower i bits shifted cyclically by one bit in the upper direction.
第3図はこの発明による高速フーリエ変換装置
の一例を示し、この例においては入力時系列サン
プルx0乃至x-1のN個(N=2m)が端子11より
入力されてフーリエ変換される場合であり、その
サンプル数N=2mと対応して演算ステージはS1
乃至Snのm個のステージが設けられる。各演算
ステージにおいては入出力用の第1,第2メモリ
Mi1,Mi2の二つのメモリが設けられる。ここで
iは1乃至mの整数である。また回転因子用第3
メモリMi0が設けられ、更にそれぞれ演算ユニツ
トAUiが設けられる。 FIG. 3 shows an example of a fast Fourier transform device according to the present invention. In this example, N pieces (N=2 m ) of input time series samples x 0 to x -1 are input from a terminal 11 and subjected to Fourier transform. If the number of samples is N=2 m , the calculation stage is S 1
m stages S n to S n are provided. Each calculation stage is provided with two memories, first and second memories M i1 and M i2 for input/output. Here, i is an integer from 1 to m. Also, the third twiddle factor
A memory M i0 is provided, and each arithmetic unit AU i is provided.
各演算ステージの全メモリは共通のアドレスレ
ジスタユニツト12よりのアドレスによつてアド
レス指定される。即ち読出し用のアドレス線13
は各ステージの第1,第2入出力用メモリMi1,
Mi2と回転因子用の第3メモリとにそれぞれ接続
され、また書込み用のアドレス線14は各ステー
ジの第1,第2入出力メモリMi1,Mi2にそれぞ
れ接続されている。これら各ステージにおいて入
出力用の第1,第2メモリMi1,Mi2はその一方
が読出される状態にあり、その時は読出しアドレ
ス線13上のアドレスでアクセスされ、他方は書
込み用として用いられ、書込み用アドレス線14
上のアドレスでアクセスされる。また各ステージ
においてその入出力用の第1,第2メモリMi1,
Mi2と回転因子用の第3メモリMi0よりの読出さ
れた各データは対応する演算ユニツトAUiに供給
される。各演算ユニツトAUiで演算された結果は
次段のステージSi+1の第1,第2入出力メモリ
Mi+1,1,Mi+1,2に供給されてその時読出しに用い
られてない方のメモリに書込み用アドレス線14
上のアドレスで指定されて書込まれる。 All memories of each arithmetic stage are addressed by addresses from a common address register unit 12. That is, the read address line 13
are the first and second input/output memories M i1 of each stage,
The write address line 14 is connected to the first and second input/output memories M i1 and M i2 of each stage, respectively. In each of these stages, one of the first and second memories M i1 and M i2 for input/output is in a state of being read, and at that time, it is accessed by the address on the read address line 13, and the other is used for writing. , write address line 14
Accessed at the above address. In addition, at each stage, first and second memories M i1 ,
Each data read from M i2 and the third memory M i0 for twiddle factors is supplied to the corresponding arithmetic unit AU i . The results computed by each arithmetic unit AU i are supplied to the first and second input/output memories M i + 1 , 1 , M i+1 , 2 of the next stage S i+1 and used for reading at that time. Address line 14 for writing to the memory that is not
It will be written as specified by the address above.
第1ステージS1に対する入出力用メモリM11,
M12に対しては入力端子11よりのフーリエ変換
されるべきデータが書込まれる。また最終段のス
テージSnの演算ユニツトAUnの演算結果は出力
用バツフアメモリM01,M02の一方に書込まれ
る。この出力用メモリM01,M02も読出し線13
及び書込み線14の何れによつてもそれぞれアク
セス可能とされる。これらバツフアメモリM01,
M02より読出されたデータは出力端子15より外
部に送り出される。 Input/output memory M 11 for the first stage S 1 ,
Data to be Fourier transformed from the input terminal 11 is written to M12 . Further, the calculation result of the calculation unit AU n of the final stage S n is written into one of the output buffer memories M 01 and M 02 . These output memories M 01 and M 02 also have readout lines 13
and write line 14, respectively. These buffer memory M 01 ,
The data read from M 02 is sent out from the output terminal 15.
この装置全体は制御ユニツト16によつて制御
される。従つてアドレスレジスタユニツト12も
この制御ユニツト16によつて制御される。アド
レスレジスタユニツト12は制御ユニツト16か
らのマイクロ命令をカウンタで計算することによ
り端子17より新たな読出し用アドレスを、端子
18より新たな書込み用アドレスをそれぞれ発生
し、これらをそれぞれ読出し用アドレス線13、
書込み用アドレス線14に印加する。各演算ユニ
ツトAUiはこのバタフライ演算をパイプライン式
に行うものであり、演算結果は先に述べたように
次段のステージに供給され、従つてステージS1乃
至Snは順次縦続的に接続され、しかもこれらが
並列的に動作し、つまり全体としてパイプライン
動作するようにされる。 The entire device is controlled by a control unit 16. Address register unit 12 is therefore also controlled by this control unit 16. The address register unit 12 generates a new read address from a terminal 17 and a new write address from a terminal 18 by calculating the microinstruction from the control unit 16 with a counter, and transfers these to the read address line 13. ,
It is applied to the write address line 14. Each arithmetic unit AU i performs this butterfly computation in a pipelined manner, and the computation results are supplied to the next stage as described above. Therefore, stages S1 to Sn are sequentially connected in cascade. Moreover, they operate in parallel, that is, they operate in a pipeline as a whole.
つまり例えばN=16の場合について第4図に示
すように演算区間T1においてはまず入力端子よ
り16個のサンプルx0乃至x15が入出力用第1メモ
リM11に書込まれ、次の演算区間T2においては入
出力用第1メモリM11に書込まれたデータが読出
され、同時に第3メモリM10に記憶されている回
転因子が読出され、これら読出されたデータにつ
いて演算ユニツトAU1においてバタフライ演算が
行われ、つまり第2図の第1ステージについて記
載したようなバタフライ演算が行われ、この演算
結果は次々と第2ステージの入出力用第2メモリ
M21に書込まれる。同時に入力端子11より入出
力用第2メモリM12に次の時系列データが取込ま
れる。 In other words, for example , in the case of N = 16, as shown in FIG . In the calculation period T2 , the data written in the first input/output memory M11 is read out, and at the same time the twiddle factor stored in the third memory M10 is read out, and the calculation unit AU uses these read data to read out the twiddle factor stored in the third memory M10. In step 1 , a butterfly operation is performed, that is, a butterfly operation as described for the first stage in Fig. 2 is performed, and the results of this operation are successively stored in the second memory for input/output of the second stage.
Written in M 21 . At the same time, the next time series data is taken in from the input terminal 11 to the second input/output memory M12 .
次の演算区間T3においては第2ステージのメ
モリM12及び回転因子用の第3メモリM20が同時
に読出されて演算ユニツトAU2において第2図に
示した第2ステージにおけるバタフライ演算が行
われてその結果は第3ステージにおける入出力用
第1メモリM31に書込まれる。またこのとき新し
いデータは第1ステージの入出力用第1メモリ
M11に書込まれる。以下同様にして順次演算結果
は次の演算ステージに送られ、かつ前段よりの演
算結果が入力されて同時に演算され、演算区間
T1において最初に演算ステージS1に入力された
データについては演算区間T5で第4ステージに
おいてバタフライ演算が行われてこれが出力バツ
フアのM01に書込まれる。 In the next calculation interval T3 , the second stage memory M12 and the third memory M20 for twiddle factors are read out simultaneously, and the butterfly calculation in the second stage shown in FIG . 2 is performed in the calculation unit AU2. The result is written to the first input/output memory M31 in the third stage. Also, at this time, the new data is stored in the first memory for input/output of the first stage.
Written in M 11 . In the same way, the calculation results are sequentially sent to the next calculation stage, and the calculation results from the previous stage are input and calculated at the same time.
For the data first input to the calculation stage S1 at T1 , a butterfly calculation is performed in the fourth stage in the calculation interval T5 , and this is written to the output buffer M01 .
アドレスレジスタユニツト12を共通に用いて
いるためこの例では例えば第2図において各ステ
ージの入力データを図において上から順番に順次
読出して行く場合においては、各ステージの演算
結果を次のステージのメモリに対する書込み時に
その時の読出しアドレスと同一アドレス位置に書
込む場合もあるが、その書込みアドレスを変換す
る必要がある場合もある。その変換は各ステージ
において異なつており、この変換は次のようにし
て行われる。iステージ目においてはその下位の
iビツトを順次上位に1ビツトずつずらして、従
つてi番目(最も上位)のビツトは最下位ビツト
になるように循環的にずらすように書込みアドレ
ス線14とiステージの入出力メモリの書込み用
アドレス線とを接続する。 Since the address register unit 12 is commonly used, in this example, when the input data of each stage is sequentially read out from the top in the figure in FIG. 2, the calculation result of each stage is transferred to the memory of the next stage. When writing to , there are cases where the data is written to the same address location as the read address at the time, but there are cases where it is necessary to convert the write address. The conversion is different at each stage, and this conversion is performed as follows. In the i-th stage, the write address line 14 and the i-th bit are sequentially shifted to the upper bit by one bit, so that the i-th (most significant) bit becomes the least significant bit. Connect to the write address line of the stage's input/output memory.
即ち第5図に示すように第2ステージの演算結
果P0乃至P15は読出し時のアドレス、つまり演算
の順番を2進数で表わすと最下位b1より最上位b4
までの4ビツトで表わされ、このうちi=2に応
じて下位2ビツトb1,b2が上位側に1ビツトずつ
移され、つまり第2ビツトb2が最下位のビツトb1
に移され、最下位ビツトb1が第2ビツトb2に移さ
れたアドレスとされる。このアドレスに指定され
て第2ステージの入出力メモリに対して書込みが
行われる。 That is, as shown in FIG. 5, the calculation results P 0 to P 15 of the second stage are read addresses, that is, the order of calculation is expressed in binary numbers from the lowest b 1 to the most significant b 4.
Among them, the lower two bits b 1 and b 2 are shifted one bit at a time to the upper side according to i=2, that is, the second bit b 2 is the lowest bit b 1
The least significant bit b1 is the address transferred to the second bit b2 . Writing is performed to the input/output memory of the second stage specified by this address.
同様にして第2ステージの演算結果Q0乃至Q5
は第6図に示すようにその演算の順番と対応した
下位3ビツトb1乃至b3が上位側に循環的に1ビツ
トだけずらされる。即ち最上位の第3ビツトb3は
最下位ビツトb1に移され、第2ビツトb2は第3ビ
ツトb3の位置に移され、最下位ビツトb1は第2ビ
ツトb2に移される。このようにして得られた書込
みアドレスが第3ステージの入出力用メモリに対
する書込みアドレスとなる。同様にして第7図に
示すように第3ステージの演算結果R0乃至R15を
第4ステージの入出力用メモリに書込む場合は、
その下位4ビツト、つまりb1乃至b4のみを循環的
に上位側に1ビツトだけずらす。従つて最上位ビ
ツトb4が最下位ビツトb1に移されて書込みアドレ
スが得られる。なお第1ステージの入出力用メモ
リに対する書込みアドレスはその入力データx0乃
至x15の順番に入力されるとき、その順番に対し
て書込みアドレスは第8図に示す様に最上位ビツ
トb4と最下位ビツトb1とが入れ替えられ、また第
3ビツトb3と第2ビツトb2とが入れ替えられて書
込みアドレスが得られる。 Similarly, the calculation results of the second stage Q 0 to Q 5
As shown in FIG. 6, the lower three bits b1 to b3 corresponding to the order of the calculation are cyclically shifted by one bit toward the upper side. That is, the third most significant bit b3 is moved to the least significant bit b1 , the second bit b2 is moved to the position of the third bit b3 , and the least significant bit b1 is moved to the second bit b2. . The write address thus obtained becomes the write address for the input/output memory of the third stage. Similarly, when writing the calculation results R 0 to R 15 of the third stage to the input/output memory of the fourth stage as shown in FIG.
Only the lower 4 bits, that is, b1 to b4 , are cyclically shifted by one bit to the upper side. Therefore, the most significant bit b4 is moved to the least significant bit b1 to obtain the write address. Note that when the write address for the input/output memory of the first stage is inputted in the order of the input data x 0 to x 15 , the write address for that order is the most significant bit b 4 as shown in Figure 8. The least significant bit b1 is swapped, and the third bit b3 and second bit b2 are swapped to obtain the write address.
このような書込みアドレスを発生するにはアド
レスレジスタユニツト12から書込みアドレス線
14に、読出し時の或は演算順番を示すアドレス
を発生し、その書込みアドレス線14と各ステー
ジの入出力用メモリの書込みアドレス線とを第9
図に示すように接続すればよい。即ち第1ステー
ジS1においてはその最上位ビツトと最下位ビツト
を入れ替えるようにして接続し、第2ビツトと第
3ビツトを入れ替えて接続し、第2ステージS2に
おいては第2ビツトと第1ビツトのみを入れ替
え、第3ステージS3においてはアドレス線14の
第3ビツトb3をメモリのアドレスの第1ビツトに
接続し、第2ビツトをメモリの第3ビツトに、第
1ビツトをメモリの第2ビツトにそれぞれ接続す
る。以下第9図に示すような接続をすればよい。
この第9図に示すような接続をすれば書込みアド
レスとしては読出しアドレスと同様に単に順番に
発生するだけでその各ステージに対応した書込み
アドレスが得られ、かつ共通したアドレス発生手
段を利用できる。 To generate such a write address, an address indicating the reading or operation order is generated from the address register unit 12 to the write address line 14, and the write address is connected to the write address line 14 and the input/output memory of each stage. address line and the 9th line
Just connect as shown in the figure. That is, in the first stage S1 , the most significant bit and the least significant bit are exchanged and connected, the second and third bits are exchanged and connected, and in the second stage S2 , the second bit and the first bit are connected. Only the bits are exchanged, and in the third stage S3 , the third bit B3 of the address line 14 is connected to the first bit of the memory address, the second bit is connected to the third bit of the memory, and the first bit is connected to the memory address. Connect to the second bit, respectively. Hereinafter, connections as shown in FIG. 9 may be made.
If the connections shown in FIG. 9 are made, write addresses corresponding to each stage can be obtained by simply generating write addresses in order like read addresses, and a common address generating means can be used.
制御部16はマイクロプログラムを解読実行す
ることによつて装置全体を制御するものであり、
その命令フイールドは例えば第10図に示す通り
である。各ステージにおける演算ユニツトAUiも
制御ユニツト16によつて制御され、先に述べた
ようにパイプライン演算によりバタフライ演算を
行う。この演算ユニツトは第11図に示す通りで
ある。即ちマイクロ命令の命令状態が第12図に
示す状態で与えられ、この命令を解読することに
よつて第12図に示すようにD1乃至D6、S1乃至
S4更にSUBの制御信号が発生して第13図に示
すような内容の命令が実行される。第12図中の
D5,D6の行は第13図に示すようにAS1,AS2
で命令の処理内容を示し、AS3で処理結果の格納
場所を示すことを意味している。すなわち例えば
AS1=0、AS2=1はムーブ命令であつて、AS3
が0(第12図でD5=0)の場合はD5が与えら
れている第11図中のアキユムレータACCAにム
ーブ命令の実行結果が格納され、AS3が1(第1
2図でD6=1)の場合はD6が与えられている第
11図中のアキユムレータACCBにムーブ命令の
実行結果が格納される。この第13図に示すよう
な命令を用いて入出力用メモリから読出されたデ
ータ中の第1図における入力AはレジスタLR
に、入力データBはレジスタJRに、回転因子は
レジスタKRにそれぞれ格納され、その後レジス
タJR及びKRのデータは乗算器AULで乗算され、
その結果はレジスタMRに格納される。更にこの
乗算結果はアキユムレータACCA又はACCBに格
納される。その乗算結果WkBはマルチプレクサ
Mpx3を通り、排他的論理和回路X0Rを通り、更
にマルチプレクサMpx2を通つて加算器ADDに与
えられるがその際に排他的論理和回路の一方の入
力を全て“0”又は全て“1”とし、前者の場合
はその出力とレジスタLRの内容とを加算して
A′を得、後者の場合はレジスタLRの内容と加算
する際にさらに“1”を加えてWkBの補数を得
て加算結果にB′を得る。これらにより第1図に示
したバタフライ演算がパイプライン式に実行され
るようにデータが入力され各部が制御される。演
算結果はマルチプレクサMpx4を通じて次のステ
ージに送られる。 The control unit 16 controls the entire device by decoding and executing a microprogram.
The command field is as shown in FIG. 10, for example. The arithmetic unit AU i in each stage is also controlled by the control unit 16, and performs butterfly computation by pipeline computation as described above. This arithmetic unit is as shown in FIG. That is, the instruction state of the microinstruction is given as shown in FIG. 12, and by decoding this instruction, D 1 to D 6 , S 1 to S 1 as shown in FIG.
S4 Furthermore, a SUB control signal is generated and an instruction as shown in FIG. 13 is executed. In Figure 12
Rows D5 and D6 are AS1 and AS2 as shown in Figure 13.
indicates the processing content of the instruction, and AS3 indicates the storage location of the processing result. i.e. for example
AS1=0, AS2=1 is a move command, and AS3
is 0 (D5 = 0 in Figure 12), the execution result of the move command is stored in the accumulator ACCA in Figure 11 to which D5 is given, and AS3 is 1 (D5 = 0 in Figure 12).
If D6=1 in FIG. 2), the execution result of the move instruction is stored in the accumulator ACCB in FIG. 11 to which D6 is given. The input A in Figure 1 of the data read from the input/output memory using the instruction shown in Figure 13 is the register LR.
Input data B is stored in register JR, the twiddle factor is stored in register KR, and then the data in registers JR and KR are multiplied by a multiplier AUL,
The result is stored in register MR. Furthermore, this multiplication result is stored in the accumulator ACCA or ACCB. The multiplication result WkB passes through the multiplexer Mpx3 , the exclusive OR circuit X0R , and further passes through the multiplexer Mpx2 to the adder ADD. All “0” or all “1”, and in the case of the former, add the output and the contents of register LR.
A' is obtained, and in the latter case, when adding it to the contents of the register LR, "1" is further added to obtain the complement of W k B, and B' is obtained as the addition result. Data is input and each part is controlled by these so that the butterfly operation shown in FIG. 1 is executed in a pipeline manner. The calculation result is sent to the next stage through multiplexer M px4 .
演算ユニツトにおけるパイプライン式バタフラ
イ演算の動作例のタイムチヤートを第14図に示
す。同図に示すようにバタフライ演算は(4)式に示
したように実数部と虚数部とに分けて行われ、ま
ずデータBと回転因子の虚数部の乗算が行われ
、次にその実数の乗算が行われ、次に実数部
と虚数部との乗算が行われ、これと共に乗算結
果の加算―と、データAの実数部の取込みが
行われ、かつこれらの加算が行われ、その加算結
果がRe(A′)として次のクロツクで次のステー
ジのメモリMUへ移される。以下同様にパイプラ
イン式に(4)式の演算が実行される。 FIG. 14 shows a time chart of an example of the operation of the pipeline butterfly operation in the arithmetic unit. As shown in the figure, the butterfly operation is performed separately for the real part and the imaginary part as shown in equation (4). First, data B is multiplied by the imaginary part of the twiddle factor, and then the real part is multiplied. Multiplication is performed, then the real part and the imaginary part are multiplied, and together with this, the multiplication results are added - and the real part of data A is taken in, and these additions are performed, and the addition result is is transferred to the memory MU of the next stage as Re(A') at the next clock. Thereafter, the calculation of equation (4) is similarly executed in a pipelined manner.
以上述べたようにこの発明によれば各ステージ
内でパイプライン式にバタフライ演算が行われる
とともにステージの全体としてパイプライン式の
演算が行われ、乗算器の使用効率がほぼ100%に
増大するため高速度に動作し、しかもこの各ステ
ージに対して共通の制御ユニツトやアドレス発生
のアドレスレジスタユニツトを利用するためその
構成が頗る簡単である。 As described above, according to the present invention, butterfly calculations are performed in a pipelined manner within each stage, and pipelined calculations are performed in the entire stage, increasing the multiplier usage efficiency to nearly 100%. It operates at high speed, and its structure is extremely simple because it uses a common control unit and address register unit for generating addresses for each stage.
第1図はバタフライ演算の表示を示す略線図、
第2図は高速フーリエ演算の各ステージにおける
バタフライ演算を示す図、第3図はこの発明によ
るパイプライン高速フーリエ変換装置の一例を示
すブロツク図、第4図はそのパイプライン演算動
作を説明するための図、第5図乃至第7図はそれ
ぞれ書込みアドレスを説明するための演算順序と
書込みアドレスの関係を示す図、第8図は入力デ
ータの順番と書込みアドレスの関係を示す図、第
9図は書込みアドレスの変換を書込みアドレス線
の接続によつて行う例を示す図、第10図はマイ
クロ命令のフイールドを示す図、第11図は演算
ユニツトの一例を示すブロツク図、第12図は演
算ユニツトの各部を制御する信号をマイクロ命令
との関係を示す図、第13図は第12図に示した
命令の内容例を示す図、第14図は演算ユニツト
のパイプライン演算の例を示すタイムチヤートで
ある。
11:入力端子、12:アドレスレジスタユニ
ツト、13:読出しアドレス線、14:書込みア
ドレス線、15:出力端子、16:共通制御ユニ
ツト、S1乃至Sn:ステージ、M11〜Mn2:入出力
用第1,第2メモリ、M10〜Mn0:回転因子用第
3メモリ、AU1乃至AUn:演算ユニツト、M01,
M02:出力バツフアメモリ。
Fig. 1 is a schematic diagram showing the display of butterfly calculation,
Fig. 2 is a diagram showing butterfly computation at each stage of fast Fourier computation, Fig. 3 is a block diagram showing an example of a pipeline fast Fourier transform device according to the present invention, and Fig. 4 is a diagram for explaining the pipeline computation operation. , and FIGS. 5 to 7 are diagrams showing the relationship between the calculation order and the write address to explain the write address, respectively. FIG. 8 is a diagram showing the relationship between the order of input data and the write address, and FIG. 9 is a diagram showing the relationship between the order of input data and the write address. 10 is a diagram showing an example of converting a write address by connecting a write address line, FIG. 10 is a diagram showing a microinstruction field, FIG. 11 is a block diagram showing an example of an operation unit, and FIG. 12 is an example of an operation unit. Figure 13 is a diagram showing the relationship between signals that control each part of the unit and microinstructions, Figure 13 is a diagram showing an example of the contents of the instructions shown in Figure 12, and Figure 14 is a time diagram showing an example of pipeline operation of the operation unit. It's a chat. 11: Input terminal, 12: Address register unit, 13: Read address line, 14: Write address line, 15: Output terminal, 16: Common control unit, S1 to Sn : Stage, M11 to Mn2 : Input/output M10 to Mn0 : Third memory for twiddle factors, AU1 to AUn : Arithmetic unit, M01 ,
M02 : Output buffer memory.
Claims (1)
憶される第3メモリとパイプライン方式によるバ
タフライ演算を行なう演算ユニツトとからなる複
数個のステージと、最終演算結果が記憶される第
1,第2出力バツフアメモリと、各ステージにお
けるバタフライ演算をパイプライン方式で行わせ
るとともに、その演算結果を次段のステージの入
出力用第1,第2メモリの読出されてない方のメ
モリへ書込み、全ステージが全体としてパイプラ
イン演算をするように制御する制御ユニツトと、
上記各ステージの各メモリに対するアクセスのた
めの共通のアドレスを発生するアドレスレジスタ
ユニツトとを具備するパイプライン高速フーリエ
変換装置。 2 上記ステージ中の第i番目に対する書込みア
ドレスと、上記アドレスレジスタユニツトからの
書込みアドレス線とは下位のiビツトが上位方向
に循環的に1ビツトずつずらされて接続されてい
ることを特徴とする特許請求の範囲第1項記載の
パイプライン高速フーリエ変換装置。[Scope of Claims] 1. A plurality of stages consisting of first and second memories for input/output, a third memory in which twiddle factors are stored, and an arithmetic unit that performs butterfly computation using a pipeline method, and a final computation result. is stored in the first and second output buffer memories, and the butterfly calculations in each stage are performed in a pipeline manner, and the results of the calculations are stored in the first and second memories for input/output of the next stage. a control unit that writes to one memory and controls all stages to perform pipeline operations as a whole;
and an address register unit for generating a common address for accessing each memory in each of the stages. 2. The write address for the i-th stage and the write address line from the address register unit are connected so that the lower i bits are cyclically shifted by 1 bit in the upper direction. A pipeline fast Fourier transform device according to claim 1.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP56187142A JPS5887655A (en) | 1981-11-20 | 1981-11-20 | High speed fourier transformation device of pipeline |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP56187142A JPS5887655A (en) | 1981-11-20 | 1981-11-20 | High speed fourier transformation device of pipeline |
Publications (2)
Publication Number | Publication Date |
---|---|
JPS5887655A JPS5887655A (en) | 1983-05-25 |
JPS6220590B2 true JPS6220590B2 (en) | 1987-05-07 |
Family
ID=16200851
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP56187142A Granted JPS5887655A (en) | 1981-11-20 | 1981-11-20 | High speed fourier transformation device of pipeline |
Country Status (1)
Country | Link |
---|---|
JP (1) | JPS5887655A (en) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
FR2608808B1 (en) * | 1986-12-22 | 1989-04-28 | Efcis | INTEGRATED CIRCUIT FOR DIGITAL SIGNAL PROCESSING |
JP4791172B2 (en) * | 2005-12-20 | 2011-10-12 | 三星電子株式会社 | FFT operation circuit |
-
1981
- 1981-11-20 JP JP56187142A patent/JPS5887655A/en active Granted
Also Published As
Publication number | Publication date |
---|---|
JPS5887655A (en) | 1983-05-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US4635292A (en) | Image processor | |
US20020178194A1 (en) | Method for computing a fast fourier transform and associated circuit for addressing a data memory | |
US5430667A (en) | Hardware arrangement for fast fourier transform having improved addressing techniques | |
JP2959104B2 (en) | Signal processor | |
JP2002351858A (en) | Processing device | |
JP5549442B2 (en) | FFT arithmetic unit | |
JPS6220590B2 (en) | ||
JP2675010B2 (en) | Information processing device | |
US5442125A (en) | Signal processing apparatus for repeatedly performing a same processing on respective output channels in time sharing manner | |
JP3087928B2 (en) | Testing equipment | |
JP2697619B2 (en) | N-point FFT dedicated processor | |
JPH02126321A (en) | Decoder for instruction code | |
KR20010036860A (en) | A device of fast fourier transform | |
JP2708013B2 (en) | Memory control circuit for N-point FFT processor | |
SU1569847A1 (en) | Device for fast actual matrix-fourier transform | |
JP2778478B2 (en) | Correlation processor | |
JPH0298777A (en) | Parallel sum of product arithmetic circuit and vector matrix product arithmetic method | |
EP0988604A1 (en) | Device for converting series of data elements | |
JPH1091439A (en) | Processor | |
JP3441847B2 (en) | Processor with data memory | |
JPH05174050A (en) | Series arithmetic unit | |
JPS5981762A (en) | High-speed fourier conversion processor | |
CN117194861A (en) | Reconfigurable mixed-base FFT device supporting output pruning | |
GB2037043A (en) | Arithmetic element fo processing digital input increment signals | |
JP3088956B2 (en) | Arithmetic unit |