Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
PROFORG / Диплом-правка.doc
Скачиваний:
51
Добавлен:
16.04.2013
Размер:
1.18 Mб
Скачать

1.4 Архитектура микропроцессора

Структурная схема простейшего микропроцессора, вычисляющего БПФ, выглядит следующим образом(см. рис 1.3):

Алгоритм его работы следующий:

  1. Записываем входную последовательность в ОЗУ1 в соответствии с двоичной инверсией номеров.

  2. Данные считываются из ОЗУ1 в соответствии с требуемым порядком, преобразовываются бабочкой, и записываются в ОЗУ2.

  3. Данные считываются из ОЗУ2 в соответствии с требуемым порядком, преобразовываются бабочкой, и записываются в ОЗУ1

  4. Повторяем шаги 2, 3 до получения полного преобразования

  5. Выгружаем полученное преобразование из ОЗУ1

Рис 1.3 Простейший микропроцессор для вычисления БПФ

Недостатки такой организации микропроцессора следующие:

  1. Необходимость иметь большое ОЗУ на кристалле. На практике это требование означает, что, фактически, изготовить такой кристалл в России будет проблематично.

  2. Наиболее выгодно использовать бабочки с nвходами (nзависит от конкретного случая)

Все это позволяет подойти к проблеме вычисления 4096-точечного БПФ следующим образом.

Будем вычислять БПФ в два прохода (отсюда название – двухпроходный БПФ процессор). Для этого возьмем бабочку на 64 входа (4096 = 64*64). И, выбирая данные последовательно, блок за блоком, вычислим с ее помощью частичное БПФ с глубиной шесть уровней (первый проход). Затем еще раз пройдемся, теперь уже по полученным данным, и повторно подадим их на вход бабочки порциями, но теперь уже не последовательно, а в том порядке, в котором мы подавали бы их на вход бабочки, если бы делали БПФ на 4096 точки целиком. Полученные в результате данные и будут искомым спектром Фурье.

Рассмотрим этот процесс более детально на примере бабочки на 16 входов:

Рис 1.4 Пример «бабочки» на 16 входов

Слева – исходные отсчеты, расположенные в том порядке, в котором требуется для выполнения БПФ. Справа – результирующие коэффициенты спектра Фурье. Как видно из рисунка, соседние уровни отличаются друг от друга только коэффициентами бабочек W, и порядком межсоединений. Таким образом, мы можем объединить несколько элементарных бабочек (на 2 входа) в одну, и, управляя только коэффициентами этой новой бабочки, выразить все преобразование посредством ее одной.

Например, для примера, приведенного выше (БПФ на 16 точек), можно взять в качестве базовой бабочку на 4 входа, и результирующее БПФ будет выглядеть так (см. рис. 1.5). При кажущейся сложности межсоединений первого уровня бабочек со вторым, алгоритм очень прост: на вход первой бабочки второго уровня подаются 0-ой, 4-ый, 8-ой, 12-ый выходы предыдущего уровня. На вход второй бабочки, соответственно, 1-ый, 5-ый, 9-ый, 13-ый. И так далее, перебирая все бабочки. Как видно, мы берем в данном случае каждый четвертый выход. Это правило сохраняется и в случае бабочек более высоких порядков.

Рис 1.5 Реализация 16-ти точечного БПФ бабочками на 4 входа

Как было упомянуто в предыдущем разделе, на выходе бабочки на 2 входа теоретически может возникнуть переполнение. Для борьбы с ним используется адаптивный алгоритм, заключающийся в следующем.

Н

0

Рис 1.6 Схема микропроцессора

а выходе бабочки мы имеем два 17-тиразрядных числа. Разряды 0..15 передаются на выход, 16-ый - сигнальный. Если 16-ый разряд одной из бабочекk-го уроня выставлен в единицу, мы имеем переполнение, и все коэффициенты на выходах всех бабочекk-го уровня делятся на два (сдвигом вправо на один разряд) перед подачей на входы бабочек следующего уровня. Блок управления получает сигнал о том, что коэффициенты были смасштабированы по амплитуде и увеличивает счетчик числа масштабирований на единицу. После выполнения БПФ, конечные значения коэффициентов спектра домножаются на 2k, гдеk-сохраненной в блоке управления число масшабирований.

Одним их коренных отличий и преимуществ данного микропроцессора (пункт, отдельно отмеченный в ТЗ) является небольшой размер ОЗУ на кристалле. Рассмотрим подробнее вопрос минимизации размера ОЗУ. Будем хранить входные и промежуточные данные во внешнем ОЗУ (которое, к примеру, может быть зарубежного производства). Самые известные производители микросхем ОЗУ – Samsung,TexasInstruments,Micron. Для простоты возьмем статическое ОЗУ. Для выборки данных и хранения их непосредственно перед и после преобразования нужно небольшое буферное ОЗУ, которое и будет размещено на кристалле. В нашем случае размер буферного ОЗУ составляет 2x64x16. Функциональная схема микропроцессора будет выглядеть следующим образом (см. рис. 1.6). Пунктирной линией обведен микропроцессор.

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

Микрооперация 1

Микрооперация 2

Микрооперация 3

1

Закачивание блока данных из внешнего ОЗУ во внутреннее, буферное ОЗУ.

2

Частичное ДПФ блока данных на бабочке и сброс результата во второе буферное ОЗУ

Закачивание следующего блока данных из внешнего ОЗУ

3

Вывод блока промежуточных данных из буферного ОЗУ во внешнее

Частичное ДПФ блока данных на бабочке и сброс результата во второе буферное ОЗУ

Закачивание следующего блока данных из внешнего ОЗУ1

1 Обоснование возможности реализации операций ввода и вывода в/из внешнего ОЗУ во время преобразования будет дано позже.

Стадия 3 повторяется до тех пор, пока не будут выбраны все данные из внешнего ОЗУ.

Соседние файлы в папке PROFORG