RU2388076C2 - Способ размещения отсчетов быстрого преобразования фурье в памяти данных - Google Patents

Способ размещения отсчетов быстрого преобразования фурье в памяти данных Download PDF

Info

Publication number
RU2388076C2
RU2388076C2 RU2006113972/09A RU2006113972A RU2388076C2 RU 2388076 C2 RU2388076 C2 RU 2388076C2 RU 2006113972/09 A RU2006113972/09 A RU 2006113972/09A RU 2006113972 A RU2006113972 A RU 2006113972A RU 2388076 C2 RU2388076 C2 RU 2388076C2
Authority
RU
Russia
Prior art keywords
samples
readings
fast fourier
columns
data memory
Prior art date
Application number
RU2006113972/09A
Other languages
English (en)
Other versions
RU2006113972A (ru
Inventor
Николай Викторович Стрельцов (RU)
Николай Викторович Стрельцов
Original Assignee
Общество с ограниченной ответственностью "Уральская Архитектурная Лаборатория"
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Общество с ограниченной ответственностью "Уральская Архитектурная Лаборатория" filed Critical Общество с ограниченной ответственностью "Уральская Архитектурная Лаборатория"
Priority to RU2006113972/09A priority Critical patent/RU2388076C2/ru
Publication of RU2006113972A publication Critical patent/RU2006113972A/ru
Application granted granted Critical
Publication of RU2388076C2 publication Critical patent/RU2388076C2/ru

Links

Abstract

Изобретение относится к вычислительной технике и может быть использовано при построении параллельных вычислительных систем. Техническим результатом является возможность одновременного доступа к отсчетам быстрого преобразования Фурье, размещенным в памяти традиционным способом. Указанный технический результат достигают тем, что в прямоугольной матрице отсчетов размерностью s×m, где: s - количество строк, m - количество столбцов, причем s*m равно 2p, m равно 2q, а р и q - целые числа и q больше или равно 1, а р больше q, для всех строк прямоугольной матрицы отсчеты, находящиеся в одной строке, размещают в столбцах с циклическим сдвигом относительно прямоугольного размещения вправо (влево) на Sh позиций:
Figure 00000007
, где n=[p-q+1]/q-1; si - коэффициент номера строки sn, представленной в виде sn=snmn+…+s2m2+s1m1+s0m0.

Description

Изобретение относится к вычислительной технике и может быть использовано при построении параллельных вычислительных систем.
Известно устройство - синергическая вычислительная система (пат. №2179333 RU). Система состоит из N функциональных блоков, в качестве которых могут использоваться процессорные элементы, и полносвязного коммутатора. Архитектура процессорных элементов и коммутатора обеспечивают реализацию параллелизма на командном уровне, представленного в виде ярусно-параллельной формы. Так, например, фрагмент программы, обеспечивающий вычисление «бабочек» быстрого преобразования Фурье для системы, состоящей из четырех процессорных элементов, будет иметь следующий вид:
РЕ0 РЕ1 РЕ2 РЕ3
RD a RD b RD с RD d
MOV ~0 MULC ~1, W1 MOV ~2 MULC ~3, W2
ADDC ~0, ~1 SUBC ~0, ~1 ADDC ~2, ~3 SUBC ~2, ~3
MOV ~0 MOV ~1 MULC ~2, W3 MULC ~3, W4
ADDC ~0, ~2 ADDC ~1, ~3 SUBC ~0, ~2 SUBC ~1, ~3
WR a WR b WR c WR d
где RD - операция чтения, MOV ~j - передача результата выполнения команды предыдущего яруса j-того процессорного элемента на следующий ярус; MULC ~j, Wi - комплексное умножение результата выполнения команды предыдущего яруса j-того процессорного элемента на коэффициент; ADDC ~j, ~i, SUBC ~j, ~i - операции комплексного сложения и комплексного вычитания, соответственно, результатов j-того и i-того процессорных элементов с предыдущего яруса, WR - операция записи.
Таким образом, для четырех отсчетов (а, b, с, d) две ступени вычисления «бабочек» выполняются за шесть шагов.
Каждый процессорный элемент имеет в своем составе память данных, в которой размещаются введенные отсчеты для выполнения преобразования. Для m процессорных элементов, где m равно 2q, a q - целое число больше или равно 1, массив 2p отсчетов, где р - целое число больше q, можно представить в виде прямоугольной матрицы размерностью s×m. Введенные отсчеты могут быть записаны построчно:
Figure 00000001
либо по столбцам
Figure 00000002
Очевидно, что и в первом, и во втором случае наиболее быстро вычисляется только q ступеней преобразования. При построчном размещении - это первые ступени быстрого преобразования Фурье с прореживанием по времени. При размещении по столбцам - это также первые ступени, но с использованием быстрого преобразования Фурье с прореживанием по частоте. Для вычисления «бабочек» на последующих ступенях преобразования необходимо выбирать отсчеты, которые размещаются в памяти данных одного процессорного элемента. При этом меняется программа вычисления «бабочки» и каждый процессорный элемент начинает работать автономно. Это увеличивает количество команд на вычисление «бабочки» и, следовательно, снижает быстродействие синергической вычислительной системы, что является недостатком как первого, так и второго способа размещения отсчетов в памяти данных.
Следует отметить, что этот недостаток присущ любой параллельной системе, использующей указанный способ размещения отсчетов.
Задача настоящего изобретения - повышение производительности параллельных вычислительных систем при выполнении быстрого преобразования Фурье.
Поставленная задача решается тем, что в указанной прямоугольной матрице отсчетов размерностью s×m, где s - количество строк, m - количество столбцов, причем s*m равно 2р, m равно 2q, а р и q - целые числа и q больше или равно 1, а р больше q, согласно изобретению для всех строк прямоугольной матрицы отсчеты, находящиеся в одной строке, размещают в столбцах с циклическим сдвигом относительно прямоугольного размещения вправо (влево) на Sh позиций:
Figure 00000003
где
n=[p-q+1]/q-1;
si - коэффициент номера строки sn, представленной в виде sn=snmn+…+s2m2+s1m1+s0m0.
Признаки в указанной взаимосвязи в процессе проведения поиска на новизну не обнаружены, являются существенными и в своей совокупности обеспечивают повышение производительности параллельных вычислительных систем при вычислении быстрого преобразования Фурье. Достигается это тем, что при предложенном «закрученном» размещении отсчетов в m блоках памяти данных с возможностью одновременной выборки, на любой ступени вычисления быстрого преобразования Фурье обеспечивается одновременная выборка всех необходимых на данном шаге отсчетов.
Рассмотрим быстрое преобразование Фурье с прореживанием по времени на 64 отсчета(26), которые размещены в 4-х блоках памяти процессорных элементов. В исходном состоянии отсчеты (с учетом бит-реверсивной перестановки) введены и хранятся в памяти данных построчно (в соответствующих позициях матрицы приведены номера отсчетов):
Figure 00000004
Очевидно, что первые две ступени, содержащие «вырождение бабочки», не требуют перестановки отсчетов. Для выполнения первых двух «бабочек» третьей и четвертой ступеней необходимы отсчеты с номерами {0, 4, 8, 12}, которые находятся в памяти данных нулевого процессорного элемента. Разместим отсчеты в соответствии с предлагаемым способом, осуществляя циклический сдвиг вправо:
Figure 00000005
Необходимые отсчеты теперь размещаются в разных столбцах и могут быть прочитаны одновременно (одним ярусом команд). Так как отсчеты размещаются в разных строках, то для вычисления номера строки, в соответствующем блоке памяти, можно воспользоваться формулой:
v=[sn/qcf]*qcf+(sn mod qcf+npe*(m**(cf-1)))mod qcf,
где
v - номер строки;
sn - текущий номер строки (номер шага), изменяется от 0 до s-1;
qcr=m*cf, если m**cf≤s, иначе qcf=s;
cf - номер прохода по массиву отсчетов, а именно вычисление первой и второй ступеней - «0-ой» проход, вычисление третьей и четвертой ступеней - 1-ый проход и т.д., количество ступеней, реализуемых за один проход по массиву отсчетов, определяется m;
npe - номер процессорного элемента (номер блока памяти).
Для выполнения последующих «бабочек» третьей и четвертой ступеней при sn=1 будет выбран набор отсчетов с номерами {7, 11, 15, 3}, при sn=2 - {10, 14, 2, 6}, при sn=3 - {13, 1, 5, 9}, при sn=4 - {19, 23, 27, 31} и т.д. Выбранный набор отсчетов должен быть переставлен местами путем циклического сдвига влево на m-Sh позиций, а массив коэффициентов должен быть сформирован в соответствии с порядком выборки отсчетов.
В синергической вычислительной системе предложенный способ размещения может быть реализован следующим образом:
(a) в состав процессорного элемента вводятся аппаратно модифицируемые регистры, содержащие sn, cf, а также регистры, содержащие значения m и s, задаваемые программистом;
(b) вводится режим модификации адресов доступа к коммутатору, позволяющий динамически изменить заданное программистом значение на аппаратно формируемую константу;
(c) вводятся две специализированные команды «чтение из массива отсчетов» и «запись в массив отсчетов».
Команда «чтение из массива отсчетов» (мнемокод SRD) имеет один операнд М - адрес массива отсчетов и на основании значений sn, cf, m, s формирует исполнительный адрес для чтения отсчета, а также формирует значение константы модификации адреса доступа к коммутатору для команды следующего и только следующего яруса. Это значение равно величине обратного сдвига и суммируется с адресом коммутатора. Так для cf=1 и sn=1 величина константы будет равна 4-1=3 и команда MOV ~0 в последовательности команд:
РЕ0
SRD M
MOV ~0
передаст на следующий ярус значение, считанное РЕ3.
Команда «запись в массив отсчетов» имеет два операнда - записываемое значение и адрес массива отсчетов. На основании значений sp, sf, m, s она формирует исполнительный адрес для записи отсчета, формирует значение обратного сдвига как константу для модификации своего адреса доступа к коммутатору и модифицирует его путем вычитания ее из адреса. Модифицирует значения sn, а после выполнения последнего шага очередного прохода - значение cf.

Claims (1)

  1. Способ построчного размещения или размещения по столбцам отсчетов быстрого преобразования Фурье в виде прямоугольной матрицы размерностью sxm, где s - количество строк, m - количество столбцов, причем s×m равно 2p, m равно 2q, а р и q - целые числа и q больше или равно 1, а р больше q, расположенной в памяти данных параллельной вычислительной системы, состоящей из m блоков данных с возможностью одновременной выборки, каждый из которых содержит отсчеты соответствующего столбца, отличающийся тем, что для всех строк прямоугольной матрицы все отсчеты, находящиеся в одной строке, размещают в столбцах с циклическим сдвигом относительно прямоугольного размещения вправо (влево) на Sh позиций:
    Figure 00000006

    где n=[p-q+1]/q-1;
    si - коэффициент номера строки sn, представленной в виде sn=snmn+…+s2m2+s1m1+s0m0.
RU2006113972/09A 2006-04-03 2006-04-03 Способ размещения отсчетов быстрого преобразования фурье в памяти данных RU2388076C2 (ru)

Priority Applications (1)

Application Number Priority Date Filing Date Title
RU2006113972/09A RU2388076C2 (ru) 2006-04-03 2006-04-03 Способ размещения отсчетов быстрого преобразования фурье в памяти данных

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
RU2006113972/09A RU2388076C2 (ru) 2006-04-03 2006-04-03 Способ размещения отсчетов быстрого преобразования фурье в памяти данных

Publications (2)

Publication Number Publication Date
RU2006113972A RU2006113972A (ru) 2007-11-20
RU2388076C2 true RU2388076C2 (ru) 2010-04-27

Family

ID=38958966

Family Applications (1)

Application Number Title Priority Date Filing Date
RU2006113972/09A RU2388076C2 (ru) 2006-04-03 2006-04-03 Способ размещения отсчетов быстрого преобразования фурье в памяти данных

Country Status (1)

Country Link
RU (1) RU2388076C2 (ru)

Also Published As

Publication number Publication date
RU2006113972A (ru) 2007-11-20

Similar Documents

Publication Publication Date Title
US6609140B1 (en) Methods and apparatus for fast fourier transforms
US7337205B2 (en) Matrix multiplication in a vector processing system
Savage Extending the Hong-Kung model to memory hierarchies
EP0535244B1 (en) Quasi radix-16 processor and method
US20080208944A1 (en) Digital signal processor structure for performing length-scalable fast fourier transformation
CN107305538A (zh) 一种子矩阵运算装置及方法
KR20110079495A (ko) Simd 멀티코어 프로세서 아키텍처 상의 어레이 데이터 전치
WO2010105887A2 (en) Processing array data on simd multi-core processor architectures
WO2005057423A3 (en) Fft architecture and method
Harvey et al. An in-place truncated Fourier transform and applications to polynomial multiplication
JPH11203272A (ja) 高速フーリエ変換処理装置、高速フーリエ変換処理システムおよび高速フーリエ変換処理方法
JP2002351858A (ja) 処理装置
US9098449B2 (en) FFT accelerator
CN103034621B (zh) 基2×k并行fft架构的地址映射方法及系统
US7657587B2 (en) Multi-dimensional fast fourier transform
US7441099B2 (en) Configurable SIMD processor instruction specifying index to LUT storing information for different operation and memory location for each processing unit
RU2388076C2 (ru) Способ размещения отсчетов быстрого преобразования фурье в памяти данных
US6728742B1 (en) Data storage patterns for fast fourier transforms
Ploskas et al. A computational comparison of scaling techniques for linear optimization problems on a graphical processing unit
US6438568B1 (en) Method and apparatus for optimizing conversion of input data to output data
Zheng et al. Accelerating biological sequence alignment algorithm on gpu with cuda
JP3950466B2 (ja) フーリエ変換装置
CN106776474A (zh) 一种矢量处理器实现fft运算的方法及系统
CN114116012B (zh) 基于混洗操作的fft码位反序算法向量化实现方法及装置
CA2164982A1 (en) Real time active addressing display device and method utilizing fast walsh transform circuit

Legal Events

Date Code Title Description
PC41 Official registration of the transfer of exclusive right

Effective date: 20110315

MM4A The patent is invalid due to non-payment of fees

Effective date: 20140404