Айфичер Э., Джервис Б. Цифровая обработка сигналов, практический подход (2-е изд., 2004) (1095888), страница 138
Текст из файла (страница 138)
Специальные команды, внедренные в микросхемы ЦОС, включают: 1) команды, поддерживающие базовые операции ЦОС; 2) команды, Типичная юнфигурация аппаратного умножителя-накопителя ЦОС изображена на рис. 12.10. В такой конфигурации умножитель имеет пару входных регистров, которые содержат входы умножителя, и 32-битовый регистр произведения, юторый содержит результат умножения. Выход регистра Р (рго()цс( — произведение) соединяется с наюпителем двойной точности, в котором накапливаются произведения. Принцип весьма сходен с тем, что используется в аппаратных умножителях-накопителях с плавающей запятой, за исключением того, что входы и произведения — это нормированные числа, представленные в форме с плавающей запятой.
Умножителинакопители с плавающей запятой позволяют быстро вычислять результаты алгоритмов ЦОС с минимальным ошибками. Как обсуждалось в главах 7 и 8, такие алгоритмы ЦОС, как КИХ- и БИХ-фильтрация подвержены эффектам конечной разрядности (квантование коэффициентов и арифметические ошибки). Операции с плавающей запятой позволяют использовать большой динамический диапазон и снижают арифметические ошибки, хотя во многих приложениях достаточно динамичесюго диапазона, который предлагает представление с фиксированной запятой. 79$ 12,2. Компьютерные архитектуры обработки сигналов данныс у Лаиныс Х Рсгистр Р Рнс. 1К1Е. Типичная Лля ЦОС «онфн- гурация умножитсля-наианитсля которые снижают служебные издержки для организации циклов команд; 3) команды, ориентированные на конкретное приложение.
Многие ключевые алгоритмы ЦОС, такие как алгоритмы цифровой фильтрации и поиска корреляции, требуют смещения или задержки данных, чтобы освободить место для новых выборок данных, Процессоры ЦОС предлагают специальные команды, которые позволяют копировать выборку, находящуюся в ячейке памяти со следующим порядковым адресом, так же, как будто выборка извлечена из памяти или обрабатывается в данный момент, причем все это за один такт. Например, во втором поколении семейства ТМЯ320 процессоров ЦОС пара команд 1.Тлг и МРХ позволяет одновременно загружать данные во временный регистр для умножителя, смещать данные (для реализации единичной задержки, которая обозначается л ') н накапливать произведения.
Специальные команды, которые поддерживают операции умножения-накопления со сдвигом данных, в современных процессорах ЦОС стали стандартными, Специальные команды также позволяют ускорить часто повторяющиеся операции ЦОС. Например, во втором поколении процессоров семейства ТМБ320 есть команда, которая позволяет повторить следующую за ней команду заданное число раз. Поскольку команда повтора требует только одной операции извлечения из памяти, фрагмент кода, который обычно требует цикла в несколько тактов, эффективно превращается в одно- тактовую команду. Команды повтора особенно полезны в цифровой обработке сигналов для расчета внутренних циклов, например, в КИХ- и адаптивной фильтрации, и записи данных в порядке, определяемом обращенными битами, при вычислении БПФ.
796 Глава 12. Универсальные и специализированные процессоры Ц(ЭС Напомним, что КИХ-фильтры характеризуются следующим уравнением: Ф-1 у(п) = ~5 6((с)х(п — Й), где А( — длина фильтра. В процессоре ТМБ320С50, например, уравнение КИХ-фильтрации можно эффективно реализовать с использованием пары комацд: НРТ ИИ1 ИАСП ННИ1,ХИИ1 Первая команда ((РТ ИМ1 загружает длину фильтра минус 1 (те. А( — 1) в счетчик повторения команды и приводит к А(-кратному повторению следующей за ней команды умножения-накопления с перемещением данных (МАС(1). Команда МАС(Э выполняет за один такт несколько команд: 1) умножает выборку данных х(п — (с), которая находится в памяти для хранения данных, на коэффициент 6(к), который находится в памяти для хранения программы; 2) добавляет предыдущее произведение к накапливающему сумматору; 3) реализует единичную задержку, которая обозначается как с ', путем смещения выборки данных х(п — й) в ячейку со следующим по возрастанию адресом для обновления линии задержки с отводами.
В семействе процессоров ЦОС Мо(ого!а (ЗБР56000, как и в семействе ТМБ320, для эффективной реализации КИХ-фильтра можно использовать команду МАС вместе с командой повторения (НЕР): НРТ ((Н-1 илс ХО,ТО,А х:(РО)+,хо т:(Р41+,то Здесь команда повторения используется вместе с командой МАС для выполнения длительных умножений и суммирования произведений. Снова отметим возможность осуществить умножение с помощью одной команды, что позволяет иметь несколыю трактов обработки данных.
Содержимое регистров ХО и ТО перемножается, а результат добавляется к накопителю. В это же время следующая выборка данных и соответствующий коэффициент извлекаются для умножения из ячеек Х и Т. В наиболее современных процессорах ЦОС была развита концепция повторения команды и введена команда, которая позволяет повторять заданное число раз не только одну команду, но и блок кода. В семействе ТМБ320 (например, ТМБ320С50, ТМБ320С54 и ТМБ320СЗО) используется такой формат вычисления повторяющего блока команд (цикл с нулевыми служебными издержками): ЕРТВ 1оор 1оор (послелняя команда! 12.2. Компьютерные архитектуры обработки сигналов 797 Команды повторения, предлагаемые некоторыми процессорами ЦОС, имеют функции, характерные для языков высокого уровня.
В семействах Мо(ого1а ОБР56000 и ОЯР56300 есть циклы 00 с нулевыми служебными издержками, которые также могут быть вложенными. Приведенный ниже пример иллюстрирует вложенный цикл 1)0, в котором внешний цикл выполняется Аг раз, а внутренний — Ьгм раз. 00 РИ, 100Р1 00 Ри, ьООР2 ЬООР2 (здесь располагается последняя команда) ЬООР1 (здесь располагается последняя команда внешнего цикла) Вложенные циклы полезны при эффективной реализации таких функций ЦОС, как алгоритмы БПФ и двумерная обработка сигналов. Процессоры ЦОС, производимые Апа1оя Оет(сез (например, АОЗР-2115 и БНАКС), также позволяют организовать вложенные циклы. Процессор АВАР-2! 15 поддерживает до четырех уровней вложения циклов. При вложении используется следующий формат: снтн н 00 ЬООР пыт1Ь СЕ ЬООР: (последняя команда цикла) Цикл повторяется до обнуления счетчика.
Цикл может содержать большой блок команд. Формат вложения циклов, по сути, идентичен формату, который используется в процессорах семейства ОЗР56000. Адаптивная фильтрация — это еще одна ключевая характерная функция современной обработки сигналов, и для ее поддержки также были реализованы специальные команды. В адаптивной фильтрации важным шагом является обновление коэффициентов (см. главу 10) и вычисление нового набора коэффициентов на основе старого. Например, в адаптивных фильтрах, основанных на схеме наименьших квадратов, задача обновления коэффициентов характеризуется следующим уравнением: Ььт,(г) = Ьь(() + 2)гвьш(Ь вЂ” т), (12,3, а) где еь = Рь — Уы (1 2.3, б) а уы выход адаптивного фильтра, выражается следующим образом: (12.3, в) Глава 12.
Универсальные и специализированные процессоры ЦОС 798 Обычно часть задачи обновления козффициентов, которая относится к КИХ-фильтрации (уравнение 12.3, в), реализуется с использованием специальных команд умножения- накопления, как описывалось ранее. Задачу обновления коэффициентов (уравнение (12.3, а)) можно выполнить с помощью команды повторения блока с нулевыми служебными издержками на организацию цикла. В процессоре ТМБ320С54 рассчитывать выход адаптивного фильтра и обновлять козффициенты фильтра можно с помощью команды адаптивной фильтрации на базе схемы наименьших квадратов ЬМВ, команды умножения ЯТ//МРг и команды повтора блока йРТВВ. Указанные команды позволяют снизить время выполнения и размер кода адаптивных фильтров.
В быстром преобразовании Фурье (БПФ), другой ключевой операции ЦОС, всегда требуется скремблировагь последовательность входных данных до БПФ и восстанавливать обычный порядок после БПФ, чтобы гарантировать, что точки данных идут в правильной последовательности. Все высококачественные универсальные процессоры ЦОС предлагают специальные команды для адресации с инвертированием битов, позволяющие выполнять требуемое скремблирование/воостановление одновременно с извлечением выборок данных из памяти или перемещением выборок Например, адресацию с инвертированием битов в процессорах ТМБ320 можно использовать для обращения битов при занесении в память М-точечной комплексной последовательности данных: ВРт к2 ВЬПП ФХИ, *Вас+ В данном случае используются комплексные входные данные, так что каждая выборка состоит из действительной н мнимой частей.