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

Классы МПК:G11C5/02 размещение элементов памяти, например в форме матриц 
G06F17/14 преобразования Фурье, Уолша или аналогичные преобразования
G06F15/16 сочетание двух или более вычислительных машин, каждая из которых снабжена по меньшей мере арифметическим устройством, программным устройством и регистром, например для одновременной обработки нескольких программ
Автор(ы):
Патентообладатель(и):Общество с ограниченной ответственностью "Уральская Архитектурная Лаборатория" (RU)
Приоритеты:
подача заявки:
2006-04-03
публикация патента:

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

Формула изобретения

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

способ размещения отсчетов быстрого преобразования фурье в памяти   данных, патент № 2388076

где n=[p-q+1]/q-1;

si - коэффициент номера строки sn, представленной в виде sn=snm n+способ размещения отсчетов быстрого преобразования фурье в памяти   данных, патент № 2388076 +s2m2+s1m1+s 0m0.

Описание изобретения к патенту

Изобретение относится к вычислительной технике и может быть использовано при построении параллельных вычислительных систем.

Известно устройство - синергическая вычислительная система (пат. № 2179333 RU). Система состоит из N функциональных блоков, в качестве которых могут использоваться процессорные элементы, и полносвязного коммутатора. Архитектура процессорных элементов и коммутатора обеспечивают реализацию параллелизма на командном уровне, представленного в виде ярусно-параллельной формы. Так, например, фрагмент программы, обеспечивающий вычисление «бабочек» быстрого преобразования Фурье для системы, состоящей из четырех процессорных элементов, будет иметь следующий вид:

РЕ0 РЕ1 РЕ2РЕ 3
RD aRD b RD сRD d
MOV ~0 MULC ~1, W1 MOV ~2MULC ~3, W2
ADDC ~0, ~1SUBC ~0, ~1ADDC ~2, ~3SUBC ~2, ~3
MOV ~0 MOV ~1 MULC ~2, W3 MULC ~3, W4
ADDC ~0, ~2ADDC ~1, ~3SUBC ~0, ~2SUBC ~1, ~3
WR a WR bWR 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. Введенные отсчеты могут быть записаны построчно:

способ размещения отсчетов быстрого преобразования фурье в памяти   данных, патент № 2388076

либо по столбцам

способ размещения отсчетов быстрого преобразования фурье в памяти   данных, патент № 2388076

Очевидно, что и в первом, и во втором случае наиболее быстро вычисляется только q ступеней преобразования. При построчном размещении - это первые ступени быстрого преобразования Фурье с прореживанием по времени. При размещении по столбцам - это также первые ступени, но с использованием быстрого преобразования Фурье с прореживанием по частоте. Для вычисления «бабочек» на последующих ступенях преобразования необходимо выбирать отсчеты, которые размещаются в памяти данных одного процессорного элемента. При этом меняется программа вычисления «бабочки» и каждый процессорный элемент начинает работать автономно. Это увеличивает количество команд на вычисление «бабочки» и, следовательно, снижает быстродействие синергической вычислительной системы, что является недостатком как первого, так и второго способа размещения отсчетов в памяти данных.

Следует отметить, что этот недостаток присущ любой параллельной системе, использующей указанный способ размещения отсчетов.

Задача настоящего изобретения - повышение производительности параллельных вычислительных систем при выполнении быстрого преобразования Фурье.

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

способ размещения отсчетов быстрого преобразования фурье в памяти   данных, патент № 2388076

где

n=[p-q+1]/q-1;

si - коэффициент номера строки sn, представленной в виде sn=snmn+способ размещения отсчетов быстрого преобразования фурье в памяти   данных, патент № 2388076 +s2m2+s1m1+s 0m0.

Признаки в указанной взаимосвязи в процессе проведения поиска на новизну не обнаружены, являются существенными и в своей совокупности обеспечивают повышение производительности параллельных вычислительных систем при вычислении быстрого преобразования Фурье. Достигается это тем, что при предложенном «закрученном» размещении отсчетов в m блоках памяти данных с возможностью одновременной выборки, на любой ступени вычисления быстрого преобразования Фурье обеспечивается одновременная выборка всех необходимых на данном шаге отсчетов.

Рассмотрим быстрое преобразование Фурье с прореживанием по времени на 64 отсчета(26), которые размещены в 4-х блоках памяти процессорных элементов. В исходном состоянии отсчеты (с учетом бит-реверсивной перестановки) введены и хранятся в памяти данных построчно (в соответствующих позициях матрицы приведены номера отсчетов):

способ размещения отсчетов быстрого преобразования фурье в памяти   данных, патент № 2388076

Очевидно, что первые две ступени, содержащие «вырождение бабочки», не требуют перестановки отсчетов. Для выполнения первых двух «бабочек» третьей и четвертой ступеней необходимы отсчеты с номерами {0, 4, 8, 12}, которые находятся в памяти данных нулевого процессорного элемента. Разместим отсчеты в соответствии с предлагаемым способом, осуществляя циклический сдвиг вправо:

способ размещения отсчетов быстрого преобразования фурье в памяти   данных, патент № 2388076

Необходимые отсчеты теперь размещаются в разных столбцах и могут быть прочитаны одновременно (одним ярусом команд). Так как отсчеты размещаются в разных строках, то для вычисления номера строки, в соответствующем блоке памяти, можно воспользоваться формулой:

v=[sn/qcf]*qcf+(sn mod qcf+npe*(m**(cf-1)))mod qcf,

где

v - номер строки;

sn - текущий номер строки (номер шага), изменяется от 0 до s-1;

qcr=m*cf, если m**cfспособ размещения отсчетов быстрого преобразования фурье в памяти   данных, патент № 2388076 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.

Класс G11C5/02 размещение элементов памяти, например в форме матриц 

архитектура запоминающего устройства с экономией динамической мощности -  патент 2471259 (27.12.2012)
конструктивное исполнение матрицы битовых ячеек магниторезистивной оперативной памяти (mram) -  патент 2464654 (20.10.2012)
способ неразрушающего хранения и извлечения данных и устройство для осуществления данного способа -  патент 2271581 (10.03.2006)
многомерная структура адресации для электронных устройств -  патент 2248626 (20.03.2005)

Класс G06F17/14 преобразования Фурье, Уолша или аналогичные преобразования

способ измерения времени прихода сигнала и устройство для его реализации -  патент 2524843 (10.08.2014)
бортовой спецвычислитель -  патент 2522852 (20.07.2014)
устройство для вычисления дискретных полиномиальных преобразований -  патент 2517694 (27.05.2014)
звуковое кодирующее устройство и декодер для кодирования декодирования фреймов квантованного звукового сигнала -  патент 2507572 (20.02.2014)
эффективные аппроксимации с фиксированной запятой прямого и обратного дискретных косинусных преобразований -  патент 2496139 (20.10.2013)
способ построения спектра n-мерных неразделимых цифровых сигналов -  патент 2484523 (10.06.2013)
устройство для приема дискретных сигналов -  патент 2480839 (27.04.2013)
способ анализа электроэнцефалограмм -  патент 2467384 (20.11.2012)
способ цифровой рекурсивной полосовой фильтрации и цифровой фильтр для реализации этого способа -  патент 2460130 (27.08.2012)
структура преобразования с масштабированными и немасштабированными интерфейсами -  патент 2460129 (27.08.2012)

Класс G06F15/16 сочетание двух или более вычислительных машин, каждая из которых снабжена по меньшей мере арифметическим устройством, программным устройством и регистром, например для одновременной обработки нескольких программ

способ, сервер, компьютерная программа и компьютерный программный продукт для кэширования -  патент 2527736 (10.09.2014)
схема передачи данных с текстовой информацией -  патент 2527733 (10.09.2014)
визуализация подписок rss на календаре -  патент 2527194 (27.08.2014)
способ построения системы автоматического управления с взаимодействием через сеть ethernet -  патент 2526765 (27.08.2014)
устройство обработки информации, система обработки информации, способ обработки информации и носитель информации -  патент 2525746 (20.08.2014)
системы и способы для передачи файлов данных, независимо от платформы -  патент 2525743 (20.08.2014)
расширяемость для основывающейся на web визуализации диаграмм -  патент 2524855 (10.08.2014)
способ и система для загрузки файла для веб-приложения -  патент 2523216 (20.07.2014)
переносимость и совместимость медийных данных для различных платформ-адресатов -  патент 2523123 (20.07.2014)
способ использования мобильных телефонов -  патент 2520417 (27.06.2014)
Наверх