ОБЗОР
Цифровая обработка сигналов находит широкое применение в различных областях науки и техники. Для ее реализации обычно используются специальные аппаратные средства, которые получили название процессоров цифровой обработки сигналов (ПЦОС, или DSP - Digital Signal Processor). Эти ПЦОС могут быть выполнены и как проблемно-ориентированные интегральные микросхемы ASIC (Application-Specific Integrated Circuit), и как программируемые логические матрицы FPGA (Field Programmable Gate Array). ПЦОС являются ключевым элементом беспроводных коммуникаций, промышленных систем, а также обработки аудио- и видеосигналов. Ожидается их массовое использование в МР3-плейерах, надеваемых (wearable) компьютерах и медицинском оборудовании. Наиболее существенный рост применения ПЦОС наблюдается в последние пять лет. Это в немалой степени связано с бумом в области беспроводной связи.
Так, один из вице-президентов корпорации Texas Instruments (www.ti.com) считает, что примерно 40% спроса на ПЦОС приходится именно на рынок беспроводных коммуникаций. Кстати, Texas Instruments занимает около 48% рынка ПЦОС. И это неслучайно. Именно она выпустила в 1982 г. первый ПЦОС, который имел коммерческий успех. Напомним, что ПЦОС TMS32010 использовался в игре Speak and Spell (“Скажи и произнеси по буквам”), а также в говорящей кукле по имени Джули.
Помимо Texas Instruments серьезные позиции на рынке ПЦОС имеют такие корпорации, как Analog Devices (www.analog.com), Motorola (www.motorola.com) и Lucent Technologies (www.lucent.com). По данным аналитического агентства Forward Concept, в прошлом году было продано ПЦОС на сумму 4,4 млрд. долл., что на 25% больше, чем в 1998-м. В нынешнем году объем продаж составит 6,1 млрд. долл., а к 2004-му эта цифра достигнет 19,2 млрд. долл.
Особенности архитектуры ПЦОС
Вообще говоря, архитектура ПЦОС в основном определяется алгоритмами цифровой обработки сигналов, наиболее известными из которых являются различные методы цифровой фильтрации и преобразования Фурье.
Как известно, формула, реализующая цифровой фильтр с бесконечной импульсной характеристикой (БИХ), выглядит следующим образом:
,
где х - вектор входных данных; h - вектор коэффициентов фильтра.
Таким образом, вся работа устройства сводится к умножению и накапливающему суммированию. Надо сказать, что операции умножения и суммирования вовсе не уникальны для алгоритмов цифровой обработки сигналов. Они используются не только в формулах для БИХ-, но и для КИХ-фильтров (с конечной импульсной характеристикой), а также для преобразований Фурье.
Именно поэтому начиная с TMS32010 неотъемлемой частью всех ПЦОС являются комбинированные устройства, включающие в себя умножитель и накапливающий сумматор MAC (Multiply Accumulate), выполняющие операции за один такт.
В отличие от других типов приложений, связанных с обработкой данных, ПЦОС обычно работают с очень длинными выборками сигналов в частотном диапазоне 10-100 кГц и даже выше. Для обеспечения высокой производительности исполнительные устройства ПЦОС функционируют параллельно. Например, одновременно с МАС операции могут выполняться на арифметико-логическом устройстве (АЛУ) и регистрах циклического сдвига.
Пластина с чипами ПЦОС
Архитектура ПЦОС накладывает жесткие ограничения на используемую память. Ведь исполнение операций в одном тактовом цикле на МАС требует, чтобы за это же время из памяти были выбраны соответствующая команда, данные-операнды и коэффициенты фильтра. Для того чтобы ПЦОС поддерживали несколько обращений к памяти за один такт, используются два и более отдельных банка памяти, которые имеют собственные шины. За счет этого можно обеспечить одновременные процессы записи и чтения в разные банки. Кроме того, выборка команды и операндов происходит в таком случае параллельно. В ранних моделях ПЦОС обычно использовалось два банка памяти: для команд и для данных. В настоящее время на кристаллах ПЦОС реализуется также кэш-память для инструкций. Ее использование особенно эффективно для программных циклов, то есть когда небольшая группа команд повторяется несколько раз.
Экономия времени при обращении к памяти достигается и за счет оптимизации генерации адреса выборки. Дело в том, что по сравнению с задачами, связанными, скажем, с базами данных, выборка операндов при реализации алгоритмов цифровой обработки сигналов более предсказуема. Действительно, и результаты выборки, и коэффициенты фильтров хранятся последовательно. Наиболее часто для этой цели используется постинкрементная косвенная регистровая адресация. При этом увеличение указателя адреса происходит автоматически. В противном случае при программировании пришлось бы применить дополнительную команду. Еще одна команда экономится при использовании так называемой “циклической” (circular) адресации, когда после перебора заданного количества последовательных адресов выполняется автоматический переход на начальный адрес. Данный метод адресации находит место и при реализации линий задержки для цифровых фильтров, которые обычно строятся на регистрах типа FIFO (First In First Out - “первым пришел - первым обслужен”).
Как правило, ПЦОС используют 16-разрядный формат данных с фиксированной точкой. Реже встречаются 20-, 24- и 32-разрядные устройства. Такая “ширина” данных в большинстве случаев оказывается вполне достаточной. Кроме того, накапливающий регистр (аккумулятор) во избежание переполнения имеет добавочные разряды и специальные служебные биты (guard bits). Заметим, что устройства для операций с плавающей точкой не только сложнее по схемотехнике, но и потребляют больше энергии, поэтому в ПЦОС используются крайне редко.
Набор команд, применяемый в ПЦОС, как правило, отвечает двум основным требованиям: максимально эффективное использование имеющихся аппаратных средств и сведение к минимуму требуемого объема памяти.
Классификация ПЦОС
Некоторые эксперты подразделяют имеющиеся на рынке ПЦОС на традиционные, улучшенные и многопотоковые. Сразу оговоримся, что данная классификация весьма условна.
Ценовой диапазон и производительность традиционных ПЦОС весьма широки. Как правило, архитектура этих процессоров мало чем отличается от ПЦОС “образца 1980 г.”. Обычно они включают один умножитель (или МАС) и АЛУ, изредка оснащаются добавочными исполнительными устройствами.
Примерами устройств начального уровня могут служить ПЦОС Analog Devices ADSP-21xx, Texas Instruments TMS320C2xx и Motorola DSP560xx. Тактовая частота подобных кристаллов лежит в диапазоне 20-50 МГц. Их основными особенностями являются весьма умеренные энергопотребление и цена. Зачастую данные ПЦОС используются в накопителях на жестких дисках и цифровых автоответчиках.
ПЦОС среднего уровня, к которым можно отнести Texas Instruments TMS320C54x и Motorola DSP563xx, работают на тактовых частотах 100-150 МГц. В их архитектуре используются дополнительные аппаратные средства, например такие, как регистры циклического сдвига и кэш-память команд. Кроме того, конвейеры исполнительных устройств, как правило, имеют большую “глубину” (т. е. большее количество ступеней), чем у более дешевых моделей. Данные ПЦОС обычно используются в телекоммуникационном оборудовании для беспроводной связи и высокоскоростных модемах.
В улучшенных ПЦОС повышение производительности достигается за счет работающих параллельно дополнительных устройств, таких, как умножители и накапливающие сумматоры. В качестве примера можно назвать ПЦОС Lucent Technologies DSP16xx.
За редким исключением многопотоковые ПЦОС используют технологию VLIW (Very Long Instruction Word). Первым коммерческим ПЦОС с мультипотоковой архитектурой стал в 1996 г. процессор Texas Instruments TMS320C62xx. Его производительность оказалась существенно выше, чем у традиционных ПЦОС.
В обычной процессорной архитектуре применение VLIW позволяет прочесть группу инструкций и выполнить их одновременно. Обычно команды имеют фиксированную длину, и в одном слове объединяются от четырех до шестнадцати кодов операций. У VLIW DSP за один такт обычно выполняется от четырех до восьми команд (например, в TMS320C62xx имеется восемь независимых исполнительных устройств).
Стоит отметить, что многопотоковые ПЦОС потребляют гораздо больше мощности, нежели процессоры, имеющие традиционную архитектуру, что является своеобразной платой за высокое быстродействие. Именно по этой причине VLIW DSP обычно используются в базовых станциях, а не в самих сотовых телефонах. Впрочем, приятным исключением может стать ПЦОС StarCore SC140 - совместная разработка корпораций Motorola и Lucent Technologies, которая должна найти применение именно в портативных продуктах.
Как известно, техника SIMD (Single Instruction Multiple Data) довольно широко реализуется в универсальных микропроцессорах и позволяет одной командой оперировать несколькими наборами разнородных данных. Примером SIMD DSP может быть ПЦОС Analog Devices ADSP-2116x, каждое исполнительное устройство которого содержит МАС, АЛУ, регистр циклического сдвига и собственный набор регистров для операндов. Отметим, что этот продукт базировался на традиционном ПЦОС ADSP-2106x, исполнительные устройства которого обрабатывали данные с плавающей точкой.
Некоторые ПЦОС для увеличения количества исполнительных устройств (МАС, АЛУ) используют их разделение (совместное использование). Например, специально сконструированное 32-разрядное устройство может обрабатывать два 16- или четыре 8-разрядных операнда. Среди таких ПЦОС назовем Analog Devices TigerSHARC, который имеет VLIW-архитектуру и комбинирует два типа SIMD: одна команда управляет двумя наборами исполнительных устройств и, кроме того, она же может назначить совместное использование АЛУ и МАС. Благодаря таким архитектурным особенностям TigerSHARC за один такт может выполнить до 16 умножений.
По понятным причинам возможности SIMD могут использоваться только для тех алгоритмов, которые должны обрабатывать данные параллельно, а не последовательно.
Сравнение с универсальными микропроцессорами
Многие высокопроизводительные микропроцессоры, например Pentium, Athlon или PowerPC, имеют достаточно вычислительных ресурсов, чтобы успешно выполнять задачи, связанные с цифровой обработкой сигналов. Наряду с техникой SIMD в них применяются расширенные наборы команд, такие, например, как MMX и SSE. Благодаря использованию 64-разрядных шин данных, регистров и АЛУ микропроцессоры общего назначения иной раз по производительности обгоняют даже самые быстрые ПЦОС. В немалой степени это связано и с тактовой частотой. Как известно, данный параметр для универсальных кристаллов часто превышает 600-650 МГц, а у специализированных ПЦОС не бывает больше 200-250 МГц.
Тем не менее ПЦОС применялись и будут применяться впредь для многих приложений. И причина этого весьма проста. Несмотря на то что универсальные микропроцессоры могут обеспечить сравнимую или даже лучшую производительность, ПЦОС предлагают лучшее соотношение производительности, мощности потребления и цены.