RU2190874C2 - Arithmetic device for calculating fast fourier transformation - Google Patents
Arithmetic device for calculating fast fourier transformation Download PDFInfo
- Publication number
- RU2190874C2 RU2190874C2 RU99116107A RU99116107A RU2190874C2 RU 2190874 C2 RU2190874 C2 RU 2190874C2 RU 99116107 A RU99116107 A RU 99116107A RU 99116107 A RU99116107 A RU 99116107A RU 2190874 C2 RU2190874 C2 RU 2190874C2
- Authority
- RU
- Russia
- Prior art keywords
- output
- input
- register
- adder
- arithmetic device
- Prior art date
Links
Images
Landscapes
- Complex Calculations (AREA)
Abstract
Description
Изобретение относится к области вычислительной техники и предназначено для построения устройств цифровой обработки сигналов, в частности процессоров для быстрого преобразования Фурье и быстрого преобразования Хартли. The invention relates to the field of computer technology and is intended to build devices for digital signal processing, in particular processors for fast Fourier transform and fast Hartley transform.
Известно "Устройство для умножения комплексных чисел" (а/с 1297034, G 06 F 7/49, 03.10.85 г.). It is known "Device for the multiplication of complex numbers" (a / s 1297034, G 06 F 7/49, 03.10.85,).
Это устройство не обеспечивает:
а) необходимой простоты аппаратурной реализации;
б) необходимого быстродействия из-за сложности управления вычислительным процессом.This device does not provide:
a) the necessary simplicity of hardware implementation;
b) the necessary speed due to the complexity of controlling the computing process.
Наиболее близким к заявляемому техническому решению является принятое за прототип "Арифметическое устройство для выполнения быстрого преобразования Хартли-Фурье" (присвоен патент 2125290, 6 G 06 F 7/14, заявка 96105426/09 (009126) от 20.03.96 г. ), содержащее регистры, коммутаторы, умножители с накопителями. Closest to the claimed technical solution is the prototype "Arithmetic device for performing fast Hartley-Fourier transform" (assigned patent 2125290, 6 G 06 F 7/14, application 96105426/09 (009126) from 03.20.96), containing registers, switches, multipliers with drives.
Данное устройство предназначено для построения устройств цифровой обработки сигналов, в частности процессоров для быстрого преобразования Фурье и быстрого преобразования Хартли. This device is designed to build digital signal processing devices, in particular processors for fast Fourier transform and fast Hartley transform.
Это устройство не обеспечивает:
а) необходимой простоты аппаратурной реализации;
б) необходимого быстродействия.This device does not provide:
a) the necessary simplicity of hardware implementation;
b) the necessary speed.
Сущность изобретения заключается:
- в упрощении схемы устройства за счет использования умножителей и сумматоров вместо коммутаторов и умножителей с накопителями;
- в существенном увеличении быстродействия работы устройства, достигаемом за счет конвейеризации процесса вычисления базовой операции ("бабочки") алгоритма БПФ или БПХ;
- в увеличении быстродействия работы устройства, достигаемом за счет регулярности и простоты управления вычислительным процессом арифметического устройства для выполнения БПФ или БПХ.The invention consists of:
- to simplify the circuit of the device due to the use of multipliers and adders instead of switches and multipliers with drives;
- a significant increase in the speed of the device, achieved by pipelining the process of calculating the basic operation ("butterfly") of the FFT or BPH algorithm;
- to increase the speed of the device, achieved due to the regularity and ease of control of the computing process of the arithmetic device to perform FFT or BPH.
Для этого в устройство, содержащее пять регистров, введены три регистра, три умножителя, три сумматора. For this, three registers, three multipliers, three adders are introduced into a device containing five registers.
Изобретение будет понятно из следующего описания и приложенных к нему чертежей. The invention will be apparent from the following description and the accompanying drawings.
На фиг. 1 приведена схема арифметического устройства для выполнения алгоритма БПХ;
На фиг. 2 приведена временная диаграмма работы арифметического устройства.In FIG. 1 shows a diagram of an arithmetic device for performing the BPH algorithm;
In FIG. 2 shows a timing diagram of the operation of an arithmetic device.
В чертежах и тексте приняты следующие обозначения:
1. Первый вход данных.The following notation is used in the drawings and text:
1. The first data entry.
2. Второй вход данных. 2. Second data input.
3. Вход управления умножителями. 3. Input control multipliers.
4. Третий вход данных. 4. Third data entry.
5. Четвертый вход данных. 5. Fourth data entry.
6. Первый вход управления записью. 6. The first entry of the recording control.
7. Первый вход управления сумматором. 7. The first adder control input.
8. Пятый вход данных. 8. Fifth data entry.
9. Вход управления. 9. Login control.
10. Шестой вход данных. 10. Sixth data entry.
11. Второй вход управления записью. 11. The second entry control recording.
12. Второй вход управления сумматором. 12. The second adder control input.
13. Третий вход управления записью. 13. The third entry control recording.
14. Четвертый вход управления записью. 14. The fourth entry is a recording control.
15. Первый регистр. 15. The first register.
16. Второй регистр. 16. The second register.
17. Третий регистр. 17. The third register.
18. Четвертый регистр. 18. Fourth register.
19. Пятый регистр. 19. Fifth register.
20. Шестой регистр. 20. Sixth register.
21. Первый умножитель. 21. The first multiplier.
22. Второй умножитель. 22. The second multiplier.
23. Первый сумматор. 23. The first adder.
24. Второй сумматор. 24. The second adder.
25. Третий умножитель. 25. The third multiplier.
26. Третий сумматор. 26. The third adder.
27. Седьмой регистр. 27. Seventh register.
28. Восьмой регистр. 28. Eighth register.
29. Первый выход результата. 29. The first output of the result.
30. Второй выход результата. 30. The second output of the result.
В состав арифметического устройства для вычисления быстрого преобразования Хартли-Фурье, выполняющего базовую операцию Хартли-Фурье в конвейере (см. фиг.1), входят восемь регистров, три умножителя, три сумматора. The arithmetic device for calculating the fast Hartley-Fourier transform, performing the basic Hartley-Fourier operation in the pipeline (see figure 1), includes eight registers, three multipliers, three adders.
К информационным входам первого регистра 15, второго регистра 16, третьего регистра 17 и четвертого регистра 18 подключены соответственно первый вход данных 1, второй вход данных 2, третий вход данных 4 и четвертый вход данных 5. Входы управления записью регистров 15-18 соединены с первым входом управления записью 6. К информационным входам пятого регистра 19 и шестого регистра 20 подключены соответственно пятый вход данных 8 и шестой вход данных 10. Входы управления записью регистров 19, 20 соединены со вторым входом управления записью 11. To the information inputs of the first register 15, second register 16, third register 17 and fourth register 18 are connected respectively the
Выход первого регистра 15 и выход второго регистра 16 соединены соответственно с первым и вторым информационными входами первого умножителя 21. Выход третьего регистра 17 и выход четвертого регистра 18 соединены соответственно с первым и вторым информационными входами второго умножителя 22. Управляющие входы умножителей 21 и 22 соединены со входом управления умножителями 3. Выход первого умножителя 21 и выход второго умножителя 22 соединены соответственно с первым и вторым информационными входами первого сумматора 23. Управляющий вход сумматора 23 соединен с первым входом управления сумматором 7. Выход первого сумматора 23 соединен с первым информационным входом второго сумматора 24. Выход пятого регистра 19 соединен со вторым информационным входом второго сумматора 24 и с первым информационным входом третьего умножителя 25, второй информационный вход которого соединен с выходом шестого регистра 20. Управляющие входы сумматора 24 и умножителя 25 соединены со входом управления 9. The output of the first register 15 and the output of the second register 16 are connected respectively to the first and second information inputs of the first multiplier 21. The output of the third register 17 and the output of the fourth register 18 are connected respectively to the first and second information inputs of the second multiplier 22. The control inputs of the multipliers 21 and 22 are connected to the control input of the
Выход второго сумматора 24 соединен с информационным входом седьмого регистра 27 и с первым информационным входом третьего сумматора 26, второй информационный вход которого соединен с выходом третьего умножителя 25. Управляющий вход сумматора 26 соединен со вторым входом управления сумматором 12. Выход третьего сумматора 26 соединен с информационным входом восьмого регистра 28. Входы управления записью регистров 27, 28 соединены соответственно с третьим входом управления записью 13 и с четвертым входом управления записью 14. Выходы седьмого и восьмого регистров 27, 28 соединены соответственно с первым и вторым выходами результата 29, 30 и являются информационными выходами устройства. The output of the second adder 24 is connected to the information input of the seventh register 27 and to the first information input of the third adder 26, the second information input of which is connected to the output of the third multiplier 25. The control input of the adder 26 is connected to the second control input of the adder 12. The output of the third adder 26 is connected to the information the input of the eighth register 28. The inputs of the write control registers 27, 28 are connected respectively with the third input of the write control 13 and the fourth input of the write control 14. The outputs of the seventh and direct registers 27, 28 are connected respectively to a first and a second result output 29, and 30 are informational device outputs.
Устройство работает следующим образом. The device operates as follows.
Матричный рекуррентный алгоритм БПФ, описанный в а/с 633426, G 06 F 15/332, 13.03.89 г., представляется следующими формулами:
где p, t - размерности матриц A, B, Q, F, G на разных итерациях.The FFT matrix recurrence algorithm described in a / c 633426, G 06 F 15/332, 03/13/89, is represented by the following formulas:
where p, t are the dimensions of the matrices A, B, Q, F, G at different iterations.
р=2m-1; t=2r-m; p*t=2r-1; r=lоg2N, где m - номер итерации, m=1, 2, 3, .. .., r, N = 2r - размерность обрабатываемого массива данных;
матрицы Аp t, Вp t являются половинами массива данных на соответствующей итерации;
матрицы Fp t, Gp t являются половинами массива результатов на соответствующей итерации;
Qp 1 - первый вектор-столбец матрицы весовых коэффициентов Qp t на соответствующей итерации.p = 2 m-1 ; t = 2 rm ; p * t = 2 r-1 ; r = log 2 N, where m is the iteration number, m = 1, 2, 3, .. .., r, N = 2 r is the dimension of the processed data array;
the matrices A p t , B p t are the halves of the data array at the corresponding iteration;
matrices F p t , G p t are the halves of the results array at the corresponding iteration;
Q p 1 is the first column vector of the weight matrix Q p t at the corresponding iteration.
Операция Вp t * Qp 1 является статическим (поэлементным) произведением матрицы Вp t на вектор-столбец Qp 1.The operation B p t * Q p 1 is the static (elementwise) product of the matrix B p t and the column vector Q p 1 .
Весовые коэффициенты представляются следующим выражением:
Q(k) = exp(-j2π(k-1)/N),
где k=1, 2, 3, ..., N/2;
Если взять N = 2, то формулы (1) принимают вид:
Формулы (2) представляют собой известное выражение базовой операции БПФ - "бабочки".Weights are represented by the following expression:
Q (k) = exp (-j2π (k-1) / N),
where k = 1, 2, 3, ..., N / 2;
If we take N = 2, then formulas (1) take the form:
Formulas (2) are a well-known expression of the basic FFT operation - “butterflies”.
Арифметическое устройство выполняет "бабочку" БПФ в соответствии с формулами (2). Учтем, что числа A, B, Q, F и G являются комплексными. Обозначим:
где a, b, f, g, q - действительные части комплексных чисел A, B, F, G, Q, а α,β,γ,φ,σ - мнимые части этих чисел. Как показано в описании патента 2125290, 6 G 06 F 7/14, заявка 96105426/09 (009126) от 20.03.96 г. (название патента: "Арифметическое устройство для выполнения быстрого преобразования Хартли-Фурье"), формулы (2) можно представить в виде двух скалярных произведений матриц на вектор-столбцы:
Предлагаемое арифметическое устройство вычисляет операцию "бабочка" как матричную: вычислением скалярного произведения (3). Можно представить вычислительный процесс по формулам (3) с использованием математического знака суммирования:
где ψi и δi - числа a, b, -β, -a,1,q σ, 2, a θi и μi - числа α,β,b,-α, 1, q, σ и 2.The arithmetic device performs the "butterfly" FFT in accordance with formulas (2). We take into account that the numbers A, B, Q, F, and G are complex. Denote:
where a, b, f, g, q are the real parts of the complex numbers A, B, F, G, Q, and α, β, γ, φ, σ are the imaginary parts of these numbers. As shown in the description of patent 2125290, 6 G 06 F 7/14, application 96105426/09 (009126) of 03/20/96 (patent name: "Arithmetic device for performing fast Hartley-Fourier transform"), formulas (2) can represent in the form of two scalar products of matrices by column vectors:
The proposed arithmetic device calculates the butterfly operation as a matrix: by calculating the scalar product (3). One can imagine the computational process according to formulas (3) using the mathematical sign of summation:
where ψ i and δ i are the numbers a, b, -β, -a, 1, q σ, 2, a θ i and μ i are the numbers α, β, b, -α, 1, q, σ and 2.
Суммы
представляют собой операции скалярного умножения.Amounts
represent scalar multiplication operations.
Алгоритм скалярного произведения позволяет организовать процесс вычисления "бабочки" БПФ в конвейере, т.е. результат "бабочки" будет выдаваться каждый такт (числа f и φ, g и γ), что существенно увеличивает скорость вычисления всего алгоритма БПФ. The scalar product algorithm allows you to organize the process of computing the "butterfly" FFT in the pipeline, i.e. the result of the “butterfly” will be issued every measure (numbers f and φ, g and γ), which significantly increases the speed of computing the entire FFT algorithm.
Таким образом, можно выполнить вычисления за 4 такта работы умножителей и сумматоров. Считаем, что такт умножения равен по длительности такту сложения (вычитания). На третьем такте появляются результаты f и φ. На четвертом такте появляются результаты g и γ.
Конвейер заполняется за 4 такта, затем результаты вычисления "бабочек" (числа f и φ, g и γ) появляются на выходе каждый такт.Thus, it is possible to perform calculations in 4 clock cycles of multipliers and adders. We believe that the cycle of multiplication is equal in duration to the cycle of addition (subtraction). On the third measure, the results f and φ appear. On the fourth measure, the results g and γ appear.
The conveyor is filled in 4 steps, then the results of the calculation of the “butterflies” (numbers f and φ, g and γ) appear on the output every step.
Матричный рекуррентный алгоритм быстрого преобразования Хартли (БПХ) с прореживанием по времени, описанный в патенте РФ 2071221, 6 G 06 F 17/14, заявка 94024301/09 (023698) от 29.06.94 г. (название изобретения: "Процессор для быстрого преобразования Хартли"), представляется следующими формулами:
где р=2m-1, t=2r-m, m=1, 2, 3, ..., r;
р, t - размерности матриц на разных итерациях;
Сp 1 и Sp 1 - первые вектор-столбцы матриц весовых коэффициентов Сp t и Sp t на соответствующей итерации;
r - число итераций;
m - номер итерации;
N - длина исходного массива, N=2r.Hartley matrix fast recurrence matrix algorithm (BPH) with time decimation described in RF patent 2071221, 6 G 06 F 17/14, application 94024301/09 (023698) dated 06/29/94 (title of the invention: "Processor for fast conversion Hartley ") is represented by the following formulas:
where p = 2 m-1 , t = 2 rm , m = 1, 2, 3, ..., r;
p, t are the dimensions of the matrices at different iterations;
C p 1 and S p 1 are the first column vector vectors of the matrices of weight coefficients C p t and S p t at the corresponding iteration;
r is the number of iterations;
m is the iteration number;
N is the length of the original array, N = 2 r .
Операция Вp t*Сp 1 представляет собой поэлементное (статическое) умножение столбцов матрицы Вp t на вектор-столбец Сp 1. Матрица получена из матрицы Вp t. Строки матрицы кроме первой, представлены строками матрицы Вp t, размещенными в обратном порядке (инверсия строк).The operation B p t * C p 1 is the elementwise (static) multiplication of the columns of the matrix B p t by the column vector C p 1 . Matrix obtained from the matrix B p t . Matrix Rows except the first one, they are represented by the rows of the matrix B p t placed in the reverse order (inversion of rows).
Весовые коэффициенты представляются следующими выражениями:
С(k)=cоs(2π(k-1)/N); S(k)=sin(2π(k-1)/N); где k=1, 2, 3, ..., N/2.Weights are represented by the following expressions:
C (k) = cos (2π (k-1) / N); S (k) = sin (2π (k-1) / N); where k = 1, 2, 3, ..., N / 2.
Если взять N= 2, то базовая операция БПХ ("бабочка") будет описываться выражением:
Формулы (6) можно представить в виде скалярного произведения матрицы на вектор-столбец:
где входные действительные числа; F, G - выходные действительные числа (результат счета); С и S - весовые коэффициенты.If we take N = 2, then the basic BPH operation ("butterfly") will be described by the expression:
Formulas (6) can be represented as the scalar product of a matrix by a column vector:
Where input real numbers; F, G - output real numbers (counting result); C and S are weights.
Как показано в описании патента 2125290, 6 G 06 F 7/14, заявка 96105426/09 от 20.03.96 г. (название патента: "Арифметическое устройство для выполнения быстрого преобразования Хартли-Фурье"), формулы (7) можно представить с использованием математического знака суммирования:
где αi,βi - числа
Сумма
представляет собой операцию скалярного умножения.As shown in the description of patent 2125290, 6 G 06 F 7/14, application 96105426/09 of 03.20.96 (patent name: "Arithmetic device for performing fast Hartley-Fourier transform"), formulas (7) can be represented using mathematical sign of summation:
where α i , β i are numbers
Amount
is a scalar multiplication operation.
Алгоритм скалярного произведения здесь, как и в случае БПФ, позволяет организовать процесс вычисления "бабочки" БПХ в конвейере, т.е. результат "бабочки" будет выдаваться каждый такт (числа F и G), что существенно увеличивает скорость вычисления всего алгоритма БПХ. The scalar product algorithm here, as in the case of the FFT, allows you to organize the process of computing the “butterfly” of the BPH in the pipeline, i.e. the result of the “butterfly” will be issued every measure (numbers F and G), which significantly increases the speed of computing the entire BPH algorithm.
Вычисление "бабочки" БПХ выполняется за 4 такта работы умножителей и сумматоров. На третьем такте появляется результат F, а на четвертом - результат G. The calculation of the "butterfly" BPH is performed for 4 clock cycles of multipliers and adders. On the third bar, the result F appears, and on the fourth bar - the result G.
Конвейер заполняется за 4 такта, затем результаты вычисления каждой последующей "бабочки" (числа F и G) появляются на выходе каждый такт. The conveyor is filled in 4 steps, then the results of the calculation of each subsequent "butterfly" (numbers F and G) appear on the output every step.
Как мы видим, формулы для вычисления операции "бабочка" аналогичны для БПФ и БПХ. Поэтому в дальнейшем будет рассмотрен процесс вычисления "бабочки" БПХ.As we can see, the formulas for calculating the butterfly operation are similar for FFT and BPH. Therefore, in the future, the process of calculating the “butterfly” of the BPH will be considered.
На фиг. 1 приведена схема арифметического устройства для выполнения базовой операции БПХ в конвейере. In FIG. 1 is a diagram of an arithmetic device for performing a basic BPH operation in a conveyor.
По входам 1, 2, 4, 5, 8, 10 в арифметическое устройство поступают действительные числа Регистры 15-20 осуществляют прием и хранение этих чисел. Указанные числа записываются в регистры параллельным кодом. Регистр 15 принимает и хранит число В, регистр 16 - число С, регистр 17 - число регистр 18 - число S, регистр 19 - число A, а регистр 20 - число 2. По входам 6 и 11 устройства на входы управления записью регистров поступают коды записи.At the
Арифметическое устройство обрабатывает поступающие действительные числа согласно формулам (7). Не выполняется лишь операция умножения числа A на 1, как излишняя. По мере выполнения тактов конвейера с выходов регистров 19 и 20 поступают действительные числа и подмешиваются в скалярное произведение в соответствии с (7). По входам 3, 7, 9 и 12 устройства поступают соответствующие коды управления на умножители 21, 22, 25 и сумматоры 23, 24 и 26. Умножители и сумматоры выполняют операцию вычисления "бабочки" БПХ по тактам, при этом каждый раз результат передается дальше на следующую ступень конвейера, а предыдущая ступень уже готова обрабатывать новые операнды. Три такта работы конвейера затрачиваются на вычисление результата F и один такт на вычисление результата G. Проследим по тактам, как осуществляются вычисления. The arithmetic device processes incoming real numbers according to formulas (7). Only the operation of multiplying the number A by 1 is not performed, as excessive. As the conveyor ticks are fulfilled, real numbers come from the outputs of the registers 19 and 20 and are mixed into the scalar product in accordance with (7). At the
1. Из регистра 15 операнд В поступает на первый вход умножителя 21. Из регистра 16 операнд С поступает на второй вход умножителя 21. Операнды В и С перемножаются в умножителе 21 и результат запоминается на выходе умножителя 21. 1. From register 15, operand B goes to the first input of multiplier 21. From register 16, operand C goes to the second input of multiplier 21. Operands B and C are multiplied in multiplier 21 and the result is stored at the output of multiplier 21.
Одновременно из регистра 17 операнд поступает на первый вход умножителя 22. Из регистра 18 операнд S поступает на второй вход умножителя 22. Операнды и S перемножаются и результат запоминается на выходе умножителя 22.At the same time from the register 17 operand arrives at the first input of the multiplier 22. From the register 18, the operand S goes to the second input of the multiplier 22. The operands and S are multiplied and the result is stored at the output of the multiplier 22.
2. С выхода умножителя 21 произведение поступает на первый вход сумматора 23. С выхода умножителя 22 произведение поступает на второй вход сумматора 23. Поступающие операнды суммируются в сумматоре 23 и результат запоминается на выходе сумматора 23.2. From the output of the multiplier 21 works goes to the first input of the adder 23. From the output of the multiplier 22 product arrives at the second input of the adder 23. The incoming operands are summed in the adder 23 and the result is stored at the output of the adder 23.
3. С выхода сумматора 23 полученная сумма поступает на первый вход сумматора 24. Из регистра 19 операнд A поступает на второй вход сумматора 24. Поступающие операнды суммируются и результат запоминается на выходе сумматора 24. Получен первый результат - число F. Число F записывается в регистр 27. 3. From the output of the adder 23, the received amount goes to the first input of the adder 24. From the register 19, the operand A goes to the second input of the adder 24. The incoming operands are summed and the result is stored at the output of the adder 24. The first result is obtained — the number F. The number F is written to the register 27.
Одновременно операнд A из регистра 19 поступает на первый вход умножителя 25. Из регистра 20 число 2 поступает на второй вход этого умножителя. Операнды перемножаются и результат запоминается на выходе умножителя 25. At the same time, operand A from register 19 enters the first input of multiplier 25. From register 20,
4. С выхода сумматора 24 число F (в дополнительном коде) поступает на первый вход сумматора 26. С выхода умножителя 25 произведение Aх2 поступает на второй вход сумматора 26. Поступающие операнды суммируются в сумматоре 26 (фактически выполняется операция вычитания Aх2-F). Получен второй результат - число G. Число G записывается в регистр 28. По входам 13 и 14 устройства на входы управления записью регистров 27 и 28 поступают коды записи. 4. From the output of the adder 24, the number F (in the additional code) goes to the first input of the adder 26. From the output of the multiplier 25, the product Ax2 is fed to the second input of the adder 26. The incoming operands are summed in the adder 26 (in fact, the subtraction operation Ax2-F is performed). The second result is obtained - the number G. The number G is written to register 28. At the inputs 13 and 14 of the device, write codes are received at the recording control inputs of registers 27 and 28.
Таким образом, полный цикл вычисления базовой операции ("бабочки") БПХ занимает четыре такта работы конвейера, иначе говоря, четыре такта работы умножителей и сумматоров. Результаты вычисления базовой операции (числа F и G) из регистров 27 и 28 поступают на выходы 29 и 30 устройства со сдвигом на такт между собой. Thus, the full cycle of computing the basic operation ("butterfly") of the BPH takes four clock cycles of the conveyor, in other words, four clock cycles of the multipliers and adders. The results of the calculation of the basic operation (numbers F and G) from the registers 27 and 28 are fed to the outputs 29 and 30 of the device with a shift by a clock between them.
Конвейер заполняется за 4 такта, затем результаты вычисления каждой следующей "бабочки" (числа F и G) появляются на выходе устройства каждый такт. The conveyor is filled in 4 steps, then the results of the calculation of each next "butterfly" (numbers F and G) appear on the output of the device every step.
Временная диаграмма работы арифметического устройства при вычислении нескольких "бабочек" БПХ приведена на фиг.2. The timing diagram of the arithmetic device when calculating several "butterflies" BPH is shown in figure 2.
2. Устройство по п.1, отличающееся тем, что дополнительно введено r-1 арифметических устройств по п.1, 3r формирователей адресов, 3r элементов И, r + 1 блоков памяти, г блоков постоянной памяти, блок управления, регистр. Здесь r= log2N - количество итераций, которые необходимо выполнить для вычисления БПХ или БПФ массива данных произвольной размерности N=2r, r зависит от размерности массива данных N (r=1, 2, 3, ...).2. The device according to
Таким образом, расширяются возможности устройства по п.1 за счет реализации с помощью описанного в п.1 арифметического устройства конвейерного устройства для выполнения быстрого преобразования Хартли-Фурье (т.е. конвейера по итерациям, вычисляющего БПХ или БПФ). Thus, the capabilities of the device according to
Сущность изобретения по п.2 заключается:
- в существенном увеличении быстродействия работы устройства, достигаемом за счет полной конвейеризации процесса вычисления алгоритма БПФ или БПХ по итерациям (реализуется конвейер по итерациям) и использования в вычислительном процессе арифметического устройства, описанного в п.1;
- в обеспечении естественного порядка следования входной и выходной информации;
- в упрощении схемы, за счет введения идентичных формирователей адресов, выполненных на ПЗУ, в которых закодированы последовательности адресов чисел, необходимых для выполнения БПФ или БПХ по итерациям;
- в увеличении быстродействия работы устройства, достигаемом за счет регулярности и простоты управления вычислительным процессом БПФ или БПХ.The invention according to
- a significant increase in the speed of operation of the device, achieved by fully pipelining the process of computing the FFT or BPH algorithm by iterations (a pipeline by iterations is implemented) and using the arithmetic device described in
- in ensuring the natural sequence of input and output information;
- to simplify the scheme, by introducing identical address formers made on ROM, in which sequences of addresses of numbers necessary for FFT or BPH for iterations are encoded;
- to increase the speed of the device, achieved due to the regularity and ease of control of the computing process of the FFT or BPH.
Устройство будет понятно из следующего описания и приложенного к нему чертежа. The device will be clear from the following description and the attached drawing.
На фиг. 3 приведена схема конвейерного устройства по п.2 для выполнения алгоритма БПХ с использованием конвейера по итерациям. In FIG. 3 shows a diagram of a conveyor device according to
В чертеже и тексте приняты следующие обозначения:
31. Арифметическое устройство по п.1.The following notation is used in the drawing and text:
31. The arithmetic device according to
32. Информационный вход конвейерного устройства по п.2. 32. The information input of the conveyor device according to
33. Вход тактовой частоты. 33. Clock input.
34. Первый элемент И. 34. The first element of I.
35. Второй элемент И. 35. The second element of I.
36. Третий элемент И. 36. The third element of I.
37. Первый блок памяти. 37. The first block of memory.
38. Формирователь адресов. 38. Shaper addresses.
39. Блок управления. 39. The control unit.
40. Выход первого блока памяти. 40. The output of the first memory block.
41. Выход первого формирователя адресов. 41. The output of the first shaper addresses.
42. Выход второго формирователя адресов. 42. The output of the second shaper addresses.
43. Выход третьего формирователя адресов. 43. The output of the third shaper addresses.
44. Первый блок постоянной памяти. 44. The first block of read-only memory.
45. Выход первого блока постоянной памяти. 45. The output of the first block of read-only memory.
46. Выход первого арифметического устройства по п.1. 46. The output of the first arithmetic device according to
47. Второй блок памяти. 47. The second block of memory.
48. Выход второго блока памяти. 48. The output of the second memory block.
49. Первый выход блока управления. 49. The first output of the control unit.
50. Второй выход блока управления. 50. The second output of the control unit.
51. Третий выход блока управления. 51. The third output of the control unit.
52. Четвертый выход блока управления. 52. The fourth output of the control unit.
53. Пятый выход блока управления. 53. The fifth output of the control unit.
54. Шестой выход блока управления. 54. The sixth output of the control unit.
55. Седьмой выход блока управления. 55. The seventh output of the control unit.
56. Восьмой выход блока управления. 56. The eighth output of the control unit.
57. Девятый выход блока управления. 57. The ninth output of the control unit.
58. Десятый выход блока управления. 58. The tenth output of the control unit.
59. Одиннадцатый выход блока управления. 59. The eleventh output of the control unit.
....... .......
....... .......
....... .......
48+6r. 6r-й выход блока управления. 48 + 6r. 6th output of the control unit.
49+6r. 6r+1-й выход блока управления. 49 + 6r. 6r + 1st output of the control unit.
50+6r. 6r+2-й выход блока управления. 50 + 6r. 6r + 2nd output of the control unit.
51+6r. 6r+3-й выход блока управления. 51 + 6r. 6r + 3rd output of the control unit.
52+6r. Выход r-го арифметического устройства по п.1. 52 + 6r. The output of the rth arithmetic device according to
53+6r. r+1-й блок памяти. 53 + 6r. r + 1st memory block.
54+6r. Выход r+1-гo блока памяти. 54 + 6r. Output r + 1-th block of memory.
55+6r. Девятый регистр. 55 + 6r. Ninth register.
56+6r. Информационный выход конвейерного устройства по п.2. 56 + 6r. The information output of the conveyor device according to
В состав конвейерного устройства для выполнения быстрого преобразования Хартли-Фурье по п.2. (см. фиг.3) входят г арифметических устройств по п.1, r+1 блоков памяти, г блоков постоянной памяти, 3r формирователей адресов, 3r элементов И, блок управления, регистр. Здесь r=log2N - количество итераций, которые необходимо выполнить для вычисления БПХ или БПФ массива данных произвольной размерности N=2r, r зависит от размерности массива данных N (r=1, 2, 3 ,...). Число ступеней в конвейерном устройстве равно r.The composition of the conveyor device for performing fast Hartley-Fourier transform according to
К первым входам первого 34, второго 35, третьего 36 элементов И подключен вход тактовой частоты 33, с которым соединены также первые входы элементов И следующих r-1 ступеней конвейерного устройства, а также вход блока управления 39. Первый выход 49, второй выход 50, третий выход 51 блока управления 39 соединены соответственно со вторыми входами первого 34, второго 35, третьего 36 элементов И, к выходам которых подключены соответственно входы первого, второго, третьего формирователей адресов 38. Информационный вход конвейерного устройства 32 подключен к первому входу первого блока памяти 37, второй, третий и четвертый входы которого соединены соответственно с четвертым 52 пятым 53 выходами блока управления 39 и с выходом 41 первого формирователя адресов 38. Выход 40 первого блока памяти 37 соединен с первым входом первого арифметического устройства 31, второй и третий входы которого соединены соответственно с выходом 45 первого блока постоянной памяти 44 и с шестым выходом 54 блока управления 39. Вход первого блока постоянной памяти 44 соединен с выходом 43 третьего формирователя адресов 38. Выход 42 второго формирователя адресов 38 соединен со вторым входом второго блока памяти 47, первый вход которого соединен с выходом 46 первого арифметического устройства 31. Третий и четвертый входы второго блока памяти 47 соединены соответственно с седьмым 55 и восьмым 56 выходами блока управления 39. The input of
На этом заканчивается описание 1-й ступени конвейерного устройства. Остальные r-1 ступеней одинаковы. This concludes the description of the 1st stage of the conveyor device. The remaining r-1 steps are the same.
Пятый вход второго блока памяти 47 соединен с выходом четвертого формирователя адресов 38 (на фиг. 3 не показан). Девятый 57, десятый 58 и одиннадцатый 59 выходы блока управления 39 соединены со вторыми входами соответственно четвертого, пятого и шестого элементов И (на фиг.3 не показаны). The fifth input of the
................ ................
................ ................
................ ................
6r-й выход 48+6r блока управления 39 соединен с третьим входом r-го арифметического устройства 31, выход 52+6r которого соединен с первым входом r+1-го блока памяти 53+6r. 6r+1-й выход 49+6r и 6r+2-й выход 50+6r блока управления 39 соединены соответственно с третьим и четвертым входами r+1-го блока памяти 53+6r, выход 54+6r которого соединен с информационным входом девятого регистра 55+6r, вход управления записью которого соединен с 6r+3-м выходом 51+6r блока управления 39. Выход 56+6r девятого регистра 55+6r является информационным выходом конвейерного устройства. The
Формирователь адресов 38 выполнен по а/с 1425667, G 06 F 9/36, 19.02.87 г. The shaper of
Устройство работает следующим образом. The device operates as follows.
Число ступеней в конвейерном устройстве равно r, т.е. равно количеству итераций, которые необходимо выполнить для вычисления БПХ или БПФ массива данных размерности N=2r. Мы рассмотрим конвейерное устройство для вычисления БПХ.The number of steps in the conveyor is r, i.e. equal to the number of iterations that must be performed to calculate the FFT or FFT of the data array of dimension N = 2 r . We will consider a conveyor device for calculating the FEC.
Вычисления по итерациям осуществляются согласно матричному рекуррентному алгоритму БПХ (5). Исходная информация в виде массива действительных чисел длиной N= 2r поступает в естественном порядке следования на информационный вход конвейерного устройства 32 и записывается в первую область первого блока памяти 37. Информация поступает с тактом работы конвейера арифметического устройства по п.1. Сигналы записи поступают с выхода 52 блока управления 39. На вход тактовой частоты 33 поступают тактовые импульсы. После того, как в первую область первого блока памяти 37 будет записан весь массив длиной N= 2r, записанная информация из первой области без изменения порядка следования перезаписывается во вторую область первого блока памяти 37, а в первую область блока памяти 37 с информационного входа 32 начинает записываться следующий входной массив длиной N. В это время, над массивом, находящимся во второй области первого блока памяти 37, начинает выполняться 1-я итерация алгоритма БПХ. Коммутация первой и второй областей первого блока памяти 37 осуществляется сигналом с выхода 53 блока управления 39. В качестве блоков памяти 37, 47, ..., 53+6r могут быть использованы микросхемы двухпортовой памяти, позволяющие одновременно записывать и считывать информацию.Iteration calculations are performed according to the BPH matrix recurrence algorithm (5). The initial information in the form of an array of real numbers of length N = 2 r enters in the natural sequence to the information input of the
Рассмотрим работу 1-й ступени конвейерного устройства, т.е. выполнение первой итерации алгоритма БПХ. С выходов 49, 50 и 51 блока управления 39 соответствующие сигналы разрешения поступают на элементы И34, И35 и И36. Тактовые импульсы с выходов элементов И34, И35 и И36 поступают соответственно на входы первого, второго и третьего формирователей адресов 38. Все три формирователя адресов 38 начинают формировать адреса операндов и адреса для записи результатов "бабочки" - чисел F и G в соответствии с временной диаграммой работы арифметического устройства по п.1 (фиг.2).Consider the work of the 1st stage of the conveyor device, i.e. execution of the first iteration of the BPH algorithm. From the
На выходе 41 первого формирователя адресов 38, начиная с 1-й "бабочки" БПХ, появляются адреса операндов поступающие во вторую область первого блока памяти 37. С выхода 40 блока памяти 37 операнды соответствующие этим адресам, параллельным кодом поступают на первый вход первого арифметического устройства 31.At the
На выходе 43 третьего формирователя адресов 38 появляются адреса операндов С, S и числа 2, поступающие на вход первого блока постоянной памяти 44. С выхода 45 первого блока постоянной памяти 44 операнды C, S и число 2, соответствующие этим адресам, параллельным кодом поступают на второй вход первого арифметического устройства 31. At the
Арифметическое устройство 31 обрабатывает поступающие действительные числа согласно формулам (7) - как было описано выше. Конвейер заполняется за 4 такта, затем результаты вычисления каждой следующей "бабочки" БПХ (числа F и G) появляются на выходе арифметического устройства 31 каждый такт (в соответствии с временной диаграммой работы, приведенной на фиг.2). The
Второй формирователь адресов 38 вырабатывает адреса для записи чисел F и G; затем эти адреса с выхода 42 второго формирователя адресов поступают в первую область второго блока памяти 47. Результаты вычисления "бабочек" - числа F и G, появляющиеся на выходе первого арифметического устройства 31, записываются по этим адресам в первую область блока памяти 47. Сигналы записи поступают с выхода 55 блока управления 39. The
Подробнее работа формирователей адресов 38 описана в патенте РФ 2071221, 6 G 06 F 17/14, заявка 94024301/09 от 29.06.94 г., название изобретения: "Процессор для быстрого преобразования Хартли". The operation of
Сигналы управления умножителями и сумматорами 21, 22, 23, 24, 25, 26, а также сигналы управления записью в регистры 15, 16, 17, 18, 19, 20, 27 и 28 арифметического устройства 31 поступают с выхода 54 блока управления 39. The control signals of the multipliers and adders 21, 22, 23, 24, 25, 26, as well as the control signals for writing to the registers 15, 16, 17, 18, 19, 20, 27 and 28 of the
Таким образом осуществляется вычисление всех N/2 "бабочек" первой итерации алгоритма БПХ на первой ступени конвейерного устройства. По времени выполнение первой итерации (как и всех остальных) занимает N/2 тактов работы конвейера арифметического устройства 31 (такт работы конвейера обозначен Tап на фиг.2).Thus, all N / 2 “butterflies” of the first iteration of the BPH algorithm are calculated at the first stage of the conveyor device. In time, the execution of the first iteration (like all others) takes N / 2 clock cycles of the conveyor of the arithmetic device 31 (the clock cycle of the conveyor is indicated by T ap in figure 2).
После окончания счета первой итерации массив результатов, накопленный в первой области второго блока памяти 47, без изменения порядка следования перезаписывается во вторую область блока памяти 47, а в первую область блока памяти 47 вновь начинают записываться результаты вычисления 1-й итерации нового входного массива длиной N, который до этого находился в первой области первого блока памяти 37 и был перезаписан во вторую область блока памяти 37. Одновременно с этим в первую область блока памяти 37 с информационного входа конвейерного устройства 32 начинает записываться следующий входной массив длиной N с тактом работы конвейера арифметического устройства 31. After the end of the first iteration count, the results array accumulated in the first region of the
Коммутация первой и второй областей второго блока памяти 47 осуществляется сигналом с выхода 56 блока управления 39. Switching of the first and second regions of the
Аналогично работе 1-й ступени, вторая ступень конвейерного устройства выполняет вторую итерацию алгоритма БПХ. Затем, по окончании счета 2-й итерации и перезаписей информации из первых областей блоков памяти во вторые области, третья ступень выполняет третью итерацию и т.д. Similar to the work of the 1st stage, the second stage of the conveyor device performs the second iteration of the BPH algorithm. Then, at the end of the 2nd iteration count and overwriting information from the first areas of the memory blocks to the second areas, the third step performs the third iteration, etc.
В каждый момент времени каждая ступень конвейерного устройства выполняет "свою" итерацию алгоритма БПХ: 1-я ступень - первую итерацию, 2-я ступень - вторую итерацию и т.д. Входная информация поступает на информационный вход 32 с тактом работы конвейера арифметического устройства 31. At each moment of time, each stage of the conveyor device performs its own iteration of the BPH algorithm: 1st stage - the first iteration, 2nd stage - the second iteration, etc. The input information is supplied to the
Каждый раз по окончании выполнения итерации перезапись информации из первых областей блоков памяти 37, 47 и т.д. во вторые области этих блоков памяти происходит синхронно для всех блоков памяти. Число блоков памяти равно числу ступеней в конвейерном устройстве плюс единица, т.е. равно r+1. Each time after completion of the iteration, rewriting information from the first areas of memory blocks 37, 47, etc. in the second areas of these memory blocks occurs synchronously for all memory blocks. The number of memory blocks is equal to the number of steps in the conveyor device plus one, i.e. equal to r + 1.
Все r ступеней конвейерного устройства имеют одинаковую с 1-й ступенью схему и выполняют соответствующие итерации аналогично тому, как это было описано для 1-й ступени. Число выходов блока управления 39 пропорционально числу ступеней конвейерного устройства. All r stages of the conveyor device have the same scheme as the 1st stage and perform corresponding iterations in the same way as described for the 1st stage. The number of outputs of the
Рассмотрим работу последней, r-й ступени конвейерного устройства (при длине входного массива данных N=2r). Эта ступень выполняет последнюю, r-ю итерацию алгоритма БПХ. Итерация выполняется аналогично предыдущим. Результаты вычисления "бабочек" - числа F и G с выхода r-го арифметического устройства 31 записываются в первую область r+1-го блока памяти 53+6r. Сигналы записи поступают с выхода 49+6r блока управления 39. Адреса операндов и адреса для записи результатов "бабочки" формируются соответствующими формирователями адресов 38 r-й ступени (на фиг.3 не показаны).Consider the work of the last, rth stage of the conveyor device (with the length of the input data array N = 2 r ). This step performs the last, rth iteration of the BPH algorithm. Iteration is performed similarly to the previous ones. The results of calculating the “butterflies” - the numbers F and G from the output of the rth
По окончании вычисления последней, N/2-й "бабочки", последней, r-й итерации в первой области r+1-го блока памяти 53+6r будет накоплен искомый массив спектра Хартли (массив дискретного преобразования Хартли - ДПХ) в естественном порядке следования. Затем, по сигналу с выхода 50+6r блока управления 39 массив спектра Хартли без изменения порядка следования из первой области перезаписывается во вторую область r+1-го блока памяти 53+6r. После этого ступени конвейерного устройства начинают выполнять соответствующие итерации, а результирующий спектр Хартли с выхода 54+6r r+1-гo блока памяти последовательно, с тактом работы Тап конвейера арифметического устройства 31 начинает записываться в регистр 55+6r. Код записи поступает на вход управления записью регистра 55+6r с выхода 51+6r блока управления 39. Затем полученный спектр Хартли (ДПХ) поступает на информационный выход конвейерного устройства 56+6r.At the end of the calculation of the last, N / 2nd “butterfly”, the last, rth iteration, in the first region of the r +
Конвейерное устройство по п.2 заполняется за r•N/2 тактов работы конвейера арифметического устройства 31, затем искомый спектр Хартли исходных массивов появляется в естественном порядке следования на информационном выходе 56+6r с тактом работы Тап конвейера арифметического устройства 31 по п. 1. Причем, сначала выйдет 1-й массив ДПХ длиной N=2r, за ним 2-й массив, потом 3-й и т.д. Т.е. результирующая последовательность ДПХ будет выходить массивами (частями) длиной N= 2r, которые соответствуют исходным массивам данных также длиной N=2r, поступающим на информационный вход 32.The conveyor device according to
Таким образом, достигается полная конвейеризация процесса вычисления алгоритма БПХ. Thus, a complete pipelining of the calculation process of the BPH algorithm is achieved.
Claims (1)
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
RU99116107A RU2190874C2 (en) | 1999-07-20 | 1999-07-20 | Arithmetic device for calculating fast fourier transformation |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
RU99116107A RU2190874C2 (en) | 1999-07-20 | 1999-07-20 | Arithmetic device for calculating fast fourier transformation |
Publications (2)
Publication Number | Publication Date |
---|---|
RU99116107A RU99116107A (en) | 2001-05-10 |
RU2190874C2 true RU2190874C2 (en) | 2002-10-10 |
Family
ID=20223048
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
RU99116107A RU2190874C2 (en) | 1999-07-20 | 1999-07-20 | Arithmetic device for calculating fast fourier transformation |
Country Status (1)
Country | Link |
---|---|
RU (1) | RU2190874C2 (en) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
RU2517694C1 (en) * | 2012-11-16 | 2014-05-27 | Федеральное государственное бюджетное образовательное учреждение высшего профессионального образования "Казанский национальный исследовательский технический университет им. А.Н. Туполева - КАИ" (КНИТУ-КАИ) | Apparatus for calculating discrete polynomial transformations |
-
1999
- 1999-07-20 RU RU99116107A patent/RU2190874C2/en not_active IP Right Cessation
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
RU2517694C1 (en) * | 2012-11-16 | 2014-05-27 | Федеральное государственное бюджетное образовательное учреждение высшего профессионального образования "Казанский национальный исследовательский технический университет им. А.Н. Туполева - КАИ" (КНИТУ-КАИ) | Apparatus for calculating discrete polynomial transformations |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CA1255394A (en) | Method and circuit for performing discrete transforms | |
US6539368B1 (en) | Neural processor, saturation unit, calculation unit and adder circuit | |
US4450525A (en) | Control unit for a functional processor | |
US5226171A (en) | Parallel vector processing system for individual and broadcast distribution of operands and control information | |
US4601006A (en) | Architecture for two dimensional fast fourier transform | |
US4821224A (en) | Method and apparatus for processing multi-dimensional data to obtain a Fourier transform | |
US11720645B2 (en) | Optimization problem solving calculation apparatus | |
KR100538605B1 (en) | Data processing device and method of computing the cosine transform of a matrix | |
JP4163178B2 (en) | Optimized discrete Fourier transform method and apparatus using prime factorization algorithm | |
US4769779A (en) | Systolic complex multiplier | |
CN109144469B (en) | Pipeline structure neural network matrix operation architecture and method | |
US5034910A (en) | Systolic fast Fourier transform method and apparatus | |
US5508538A (en) | Signal processing applications of massively parallel charge domain computing devices | |
JPS63167967A (en) | Digital signal processing integrated circuit | |
US5398322A (en) | Number theory mapping generator for addressing matrix structures | |
CN117692126A (en) | Paillier homomorphic encryption method and system based on low-complexity modular multiplication algorithm | |
RU2190874C2 (en) | Arithmetic device for calculating fast fourier transformation | |
US6460061B1 (en) | 2-dimensional discrete cosine transform using a polynomial transform | |
Wang et al. | A novel fast modular multiplier architecture for 8,192-bit RSA cryposystem | |
RU2290687C1 (en) | Processor with maximum possible efficiency for fast fourier transformation | |
Delosme | Bit-level systolic algorithms for real symmetric and hermitian eigenvalue problems | |
RU2125290C1 (en) | Arithmetic device for fast hartley-fourier transform | |
JP2022500782A (en) | Data processing systems, methods, and programs | |
US4611273A (en) | Synchronized microsequencer for a microprocessor | |
Hussain et al. | Application-driven dimensioning of a coarse-grain reconfigurable array |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PD4A | Correction of name of patent owner | ||
MM4A | The patent is invalid due to non-payment of fees |
Effective date: 20180721 |