Процессоры цифровой обработки сигналов

Процессоры цифровой обработки цифровых сигналов (ПЦОС) предназначены для обработки оцифрованных аналоговых сигналов в реальном времени. ПЦОС являются образцом проблемно-ориентированных микропроцессоров.

Первыми из промышленных проблемно-ориентованных процессоров с подержкой скалярного паралеллизма были ПЦОС. Основной их характеристикой является нерегулярная структура командного слова и как следствие ограниченные возможности скалярного паралелизма, связанные с историей разработки первых ПЦОС. Первые ПЦОС создавались для виполнения простых операций цифровой обработки: цифровых фильтров, быстрого преобразования Фурье, Хартли, и косинусного преобразования, которые в основном оперировали с целыми 16-битными числами.

ПЦОС являются ключевым элементом беспроводных коммуникаций, промышленных систем, а также обработки аудио- и видеосигналов. Ожидается их массовое использование в МР3-плейерах, надеваемых (wearable) компьютерах и медицинском оборудовании. Наиболее существенный рост применения ПЦОС наблюдается в последние пять лет. Это в немалой степени связано с бумом в области беспроводной связи.

Так, один из вице-президентов корпорации Texas Instruments (http://www.ti.com/) считает, что примерно 40% спроса на ПЦОС приходится именно на рынок беспроводных коммуникаций. Texas Instruments занимает около 48% рынка ПЦОС. Именно она выпустила в 1982 г. первый ПЦОС, который имел коммерческий успех. ПЦОС TMS32010 использовался в игре Speak and Spell ("Скажи и произнеси по буквам"), а также в говорящей кукле по имени Джули.

Помимо Texas Instruments серьезные позиции на рынке ПЦОС имеют такие корпорации, как Analog Devices (http://www.analog.com/), Motorola (http:/www.motorola.com) и Lucent Technologies (http:/www.lucent.com). По данным аналитического агентства Forward Concept, в прошлом году было продано ПЦОС на сумму 4,4 млрд. долл., что на 25% больше, чем в 1998-м. В нынешнем году объем продаж составит 6,1 млрд. долл., а к 2004-му эта цифра достигнет 19,2 млрд. долл.

Основная операция, исполняемая ПЦОС, - фильтрация (конволюция) (цифровой фильтр с бесконечной/конечной импульсной характеристикой).

 n
----
\   h(k)*x(k)
/
----
 i=0

Эффективное выполнение этой операции зависит от времени исполнения операции умноження и от эффективности доступа к памяти. В начале 90-х годов серийные процессоры, у которых был аппаратный умножитель, исполняли операцию умноження за время прямо пропорциональное ширине слова данных. У первых ПЦОС был комбинационный умножитель, выполнявший эту операцию за 1 такт, циркулярные схемы адресации, позволявшие обращение к массивам при преобразовании Фурье и фильтрации без необходимости операции сравнения и коррекции указателей и бит-реверсивную адресацию. Вводилась комбинированная операция

RS=RS+A*B,

которая позволяет исполнять внутренний цикл фильтрации всего за 1 такт. В первом коммерчески успешном ПЦОС Texas Instruments TMS320С10 были задействованы все обозначенные нововведения. Устройство комбинированого сложения и умножения получило название MAC (Multiplier-Adder Combination)

и стало непременным признаком ПЦОС на десяток лет. Отметим, что это устройство также позволяет оптимизировать большинство матричных операций.

Для выполнения фильтрации необходимо за такт подавать из памяти в MAC два слова данных, поэтому подсистема памяти ПЦОС имеет гарвардскую архитектуру: независимые пространства памяти данных и программ. Виборка команд производится из пространства памяти программ и кеш-памяти. Кеш-память ПЦОС обычно была крайне невелика - кешировалось до 2 К памяти программ для хранения текущего программного цикла. При выполнении циклов командные слова сохраняются в кеш-памяти, поэтому одновременная виборка данных из обоих устройств проходит без задержек, начиная с второй итераци цикла. Отметим, что в новейших разработках фирмы Texas Instruments Сx60, на частоте 500-600 Мегагерц выборка за 1 такт из динамической памяти становится невозможной, поэтому чип имеет кеш-память до 8 Мбит, которая может использоваться без внешнего ОЗУ как SRAM-память на чипе.

В отличие от других типов приложений, связанных с обработкой данных, ПЦОС обычно работают с очень длинными выборками сигналов в частотном диапазоне 10-500 кГц и даже выше. Для обеспечения высокой производительности исполнительные устройства ПЦОС функционируют параллельно. Так, одновременно с МАС операции могут выполняться на арифметико-логическом устройстве (АЛУ) и регистрах (циклического) сдвига.

Поскольку задания цифровой обработки отличаются прогнозированным доступом к памяти, в командах доступа к памяти используется в основном автоинкрементная или автодекрементная адресация, и циркулярная адресация с коррекцией указателя при його инкременте для того, чтобы он оставался в границах некоторого участка памяти.

Большинство ПЦОС имеют кластеризованный регистровый файл - не все функциональные устройства, исполняющие арифметико-логические операции, могут иметь любой регистр как операнд или результат. В большинстве случаев регистровый файл разделён на две или четыре части, над кождой из которых возможно выполнять только определённые операции. К тому же, МАС-устройство оперирует часто с регистрами увеличенной длины - аккумуляторами (40, 64 и 80 бит), которые аппаратно являются отдельным регистровым файлом, который может иметь нерегулярную структуру.

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

Ещё одним важным фактором является выполнение программ в реальном времени - то есть время выполнения операций должно быть полностью прогнозируемо. Поэтому как ПЦОС редко используются суперскалярные процессоры, так как для них дельзя рассчитать точное время выполнения функции.

Как правило, ПЦОС используют 16-разрядный формат данных с фиксированной точкой. Реже встречаются 20-, 24- и 32-разрядные устройства. Такая "ширина" данных в большинстве случаев оказывается вполне достаточной. Кроме того, накапливающий регистр (аккумулятор) во избежание переполнения имеет добавочные разряды и специальные служебные биты (guard bits). Заметим, что устройства для операций с плавающей точкой не только сложнее по схемотехнике, но и потребляют больше энергии, поэтому в ПЦОС используются крайне редко.

Четыре основные производителя ПЦОС: Texas Instruments (TI), Analog Devices (AD), Lucent (LT) и Motorola представляют достаточно много модельных рядов ПЦОС, которые условно подразделяются на пять больших групп:

  1. Традиционные или классические ПЦОС: TI TMS320C2xx, ADSP-21xx, Motorola DSP 56xxx, LT DSP16xx, которые имеют 16-битное арифметико-логическое устройство (АЛП) и МАС, тактовую частоту от 20 до 50 Мгц, и используются для заданий цифровой обработки, не требующих высокой точности вычислений, обычно - обработка звука з небольшими требованиями к точности. Эти модели могут оперировать с аудио сигналами з динамическим диапазоном до 90 дБ; Основными особенностями традиционных ПЦОС являются весьма умеренные энергопотребление и цена. Зачастую данные ПЦОС используются в накопителях на жестких дисках и цифровых автоответчиках.
  2. Улучшеные 24/32-битные ПЦОС: Motorola DSP 563xxx, TI TMS320C45x, LT DSP16xxx, ADSP-21xxx. Эти модели имеют 24 или 32-битную архитектуру, тактовую частоту от 50 до 150 Мгц, и используют для решення сложных заданий обработки сигналов в промышленности и военном деле, часто эти процессоры имеют блоки для операций с плавающими числами. Процессоры используются для обработки аудио и видео сигналов, динамический диапазон которых достигает 186 дБ. В их архитектуре используются дополнительные аппаратные средства, например такие, как регистры циклического сдвига, дополнительные функциональные устройства и кэш-память команд. Кроме того, конвейеры исполнительных устройств, как правило, имеют большую "глубину" (т. е. большее количество ступеней), чем у более дешевых моделей. Данные ПЦОС обычно используются в телекоммуникационном оборудовании для беспроводной связи и высокоскоростных модемах.
  3. ПЦОС с архитектурою з длинным командным словом (ДКС) и образцы суперскалярных ПЦОС. Суперскалярные ПЦОС, распараллеливающие двоичный код во время выполнения программы непопулярные, потому что точно неизвестно, сколько времени будет выполнятьсянекоторая последовательность команд процессора. Суперскалярным ПЦОС является процессор LSI40xZ (ZSP164xx). Первым коммерческим ПЦОС с архитектурой с ДКС стал в 1996 г. процессор Texas Instruments TMS320C62xx. Его производительность оказалась существенно выше, чем у традиционных ПЦОС, и процессор быстро завоевал популярность на рынке.
  4. Обычно паралеллелизм ПЦОС ограничивается MAC-устройством, но объединение ПЦОС и ДКС архитектур позволяет значительно повысить пиковое быстродействие: разные модели ПЦОС с ДКС могут исполнять от 4 до 8 команд за такт, и имеют меньше атрибутов ПЦОС, например отсутствует MAC-устройство в моделях фирми TI. Типовым представителем этой группы является SC140 и TI TMS320C62xx/С64хх, с максимальной длиной командного слова в 8 команд. Важным фактором коммерческого успеха этого ПЦОС является достаточно эффективный компилятор, розработанный фирмой-изготовителем.

    Стоит отметить, что ПЦОС с ДКС потребляют гораздо больше мощности, чем процессоры, имеющие традиционную архитектуру, что является ценой высокое быстродействие. Именно по этой причине VLIW DSP обычно используются в базовых станциях, а не в самих сотовых телефонах. Впрочем, исключением может стать ПЦОС StarCore SC140 - совместная разработка корпораций Motorola и Lucent Technologies, которая должна найти применение именно в портативных продуктах.

  5. К четвертой группе относятся ПЦОС с SIMD-архитектурой, например ADSP-2116x (фактически 2 процессора в одном корпусе), ADSP-T001 TigerSHARC. Первый имеет действительно SIMD-архитектуру,второй только поддерживает систему команд SIMD-in-Register (аналогичные технологии имеют названия MMX, SSE, SSE2, 3DNOW! и пр.), которая позволяет увеличитьбыстродействие на операциях с целыми числами в 2-4-8 раз за счёт разделения длинных (64 и 128-битных) регистров на 2 или 4 или 8 независимых частей и проведение над ними всеми одной операции. Однако, эта технология имеет недостатки: применение только в определённых программах и необходимость модуля векторизации циклов у компиляторе.
  6. Мощный ПЦОС Analog Devices TigerSHARC (не экспортирующийся в ряд стран), имеет VLIW-архитектуру и комбинирует два типа SIMD: одна команда управляет двумя наборами исполнительных устройств и, кроме того, она же может назначить совместное использование АЛУ и МАС. Благодаря таким архитектурным особенностям TigerSHARC за один такт может выполнить до 16 умножений.

  7. Другие процессоры, которые используются для цифровой обработки сигналов. К ним относятся как процессоры и микроконтроллеры фирм Hitachi, ARM или Lextra, которые имеют некоторые черты ПЦОС, например, быстрый умножитель, так и мощные процессоры общего назначения Intel Pentium III/IV, VIA C3 Cyrix, Geode MX (уже снятые с производства), которые используются в мощных промышленных компьютерах. Наиболее распространёнными ПЦОС этой группы являются TI TMS320C24xx, AD ADMC3xx на базе ADSP?2171, Motorola DSP5665x, ядро TI TMS320C27xx, использующееся для построения контроллеров с разнообразной периферией.

Традиционно, архитектура ПЦОС не предназначена для выполнения задач управления. Архитектура ДКС, напротив, хорошо справляется с этими задачами. В последнее время классические ПЦОС все меньше удовлетворяют современным требованиям: уровень поддержки скалярного паралелизма небольшой, а перечень заданий расширяется. В современных процессорах наблюдается дисбаланс между быстродействием внутренних АЛУ процессора и скоростью подачи данных из памяти в АЛУ. Используется всё больше процессоров, которые поддерживают технологию ОКМД-в-регистре, расширяется номенклатура процессоров с встроенными специализированными сопроцессорами. Методы оптимизации, которые используются сейчас для ПЦОС, раньше были характерны в основном для ДКС, например - программный конвейер. В связи с увеличением числа архитектур ПЦОС с ДКС, основной признак ПЦОС -устройство умножителя-накопителя становится раритетом, например в справочнике по программированию МП ADSP-2106x при розработке алгоритмов от простых фильтров до сложных матричных преобразований ни один раз не использовалось устройство MAC, вместо него используется эквивалентная использованию MAC техника программного конвейера. Использование устройства MAC рекомендуется только в случаях повышенной точности вычислений - обычно акумулятор в устройстве имеет удвоенную (или утроенную) длину в сравнении с арифметическим регистрами, но в новейших процессорах используется улучшенная схема построения арифметических регистров с защитой от переполнения и двойной точностью. Опираясь на последние исследования в области процессорных архитектур, можно отметить, что постепенно в заданиях обработки сигналов, требующих большого быстродействия, больше используются МП с ДКС, чем класические ПЦОС, узким местом которых является устаревшая архитектура с ограниченным скалярним паралеллизмом.

Пока что основной сложностью в внедрении как ДКС, так и ПЦОС является отсутствие эффективных компиляторов. Это связанов основном с поддержкой этими архитектурами скалярного паралеллизма и ориентированностью на определённые задания. Для эффективного использования особенностей архитектуры новейших процессоров необходимо решить вопросы извлечения имеющихся видов паралеллизма из программы на конкретной архитектуре процесора та оптимизировать процесс вычислений для неё.

Так как рассмотренные архитектуры ПЦОС и ДКС по основным признакам являются одновременно ОКОД, ОКДМ, и МКМД (от IssDss до IscDcc по Шнайдеру), то будем обозначать эти архитектуры как нерегулярное командное слово, с количеством команд от 1 до c - константы, определяемой архитектурными особенностями МП.

С точки зрения программирования ПЦОС представляют собой довольно сложные архитектуры, которые, для получения соответствующего быстродействия, должны тщательно программироваться. Основные моменты, отличающие программирование ПЦОС от МП общего применения, представлены ниже:

  1. ПЦОС как правило имеют несколько регистров-аккумуляторов, которые необходимо задействовать при обработке цифровых сигналов с повышенной точностью. В случае процессоров, которые поддерживают ОКМД-операции, необходимо размножать переменные-редукции и производить раскрутку циклов. Пример "ОКМД-в-регистре" показан на рисунке.
  2. ПЦОС имеют большое количесво комбинированных операций. Для МАС-устройств ПЦОС операция s=a+b*c и некоторые другие ( |a+b|, |a-b|, (a+b)/2, min(a,b), max(a,b) ) могут выполняться одной командой.
  3. В большинстве современных архитектур ПЦОС регистровий файл поделенный на части (для уменьшения количества портов чтения-записи и сложности мультиплексора). Функциональные устройства могут иметь в качестве операндов только регистры из определённых регистровых банков, поэтому перед выполнением операций значение переменных должны быть расположены в необходимых регистрових банках.
  4. ПЦОС поддерживают различные режимы операций. В архитектурах ПЦОС обычно используются особые режимы исполнения операций в АЛУ: округления, насыщения (сатурации) и другие; режимы переключаются не специальными полями команды, а специальными командами ПЦОС. Естественно, при разных режимах вычислений переключения режимов необходимо минимизировать.
  5. Некоторые ПЦОС, например ADSP-2106x, позволяют исполнять команды, содержащие операции из разных базовых блоков. При генерации коду для таких ПЦОС необходимо глобально планировать объектный код.
  6. Новейшие ПЦОС имеют в своём составе устройства генерации адреса, использующиеся для адресации данных в памяти и поддержки специальных режимов адресации: автоинкрементной и циркулярной. Часть ПЦОС имеет ограничения на использования режимов адресации, что приводит к необходимости использования специальных схем оптимизации адресации. Большинство ПЦОС поддерживает (бывает с определёнными ограничениями) циркулярную адресацию, использующуюся в алгоритмах цифровой фильтрации и преобразовая Фурье, а также для оптимизации исполнения быстрого преобразования Фурье испльзуеся бит-реверсивная адресация.
  7. В отличие от RISC-процессоров, ПЦОС эксплуатирует скалярный параллелизм;
  8. Так как ПЦОС - проблемно-ориентированный процесор, система команд большинства ПЦОС содержит множество специальних и расширенных команд: арифметических, например |a+b|, |a-b|, (a+b)/2; передачи управления: задержанные переходы, инструкции выполнения циклов с нулевым временем перехода между итерациями;
  9. Необходимо эффективно использовать преимущества гарвардськой архитектуры например распределять переменные по разным пространствам памяти, особенно для фильтрации и матричных операций. Дополнительно, особенности генераторов адреса в некоторых ПЦОС требуют розмещения переменных, к которым производится доступ в пределах нескольких тактов, в соседних адресах памяти (скажем, в фрейме локальных переменных процедуры).

Кластеры процессоров цифровой обработки

Для увеличения вычислительной мощности ПЦОС традиционные способы используются редко. Повышение тактовой частоты не приводит к желаемому результату потому что возрастает тепловыделение и возникает проблема обращения к памяти. Так как немногие классические ПЦОС имеют вообще кеш-память, проблема часто решается установкой на плате больших объёмов статической памяти, или же уступками в вопросах тепловыделения - например, размещаем 8Мбит Кеш на кристалле процессора.

Есть и принципиально иной случай: многопроцессорные системы. Но, если в случае с МКМД-ЭВМ основным решением является общая память, а в транспьютерах соединение производится через специальные устройства ввода-вывода - линки, которые прямо соединяют процессор с процессором, в кластерах ПЦОС используется и тот, и другой способы.

Рассмотрим кластер AD ADSP-2106x SHARC. Каждый процессор ADSP-2106x имеет следующие характеристики:

Каждый кластер объединяет от 2 до 6 процессоров. Процессоры связаны общей шиной. Каждый процессор имеет по 2 Мбит локальной памяти, доступ к которой происходит по внутренним шинам. Каждый процессор может прочитть или изменить память другого процессора с помощью доступа по общей шине. Имеется 2 Мбит общей памяти, доступ к которой происходит только по общей шине. Кроме того, каждый процессор может послать прерывание другому процессору.

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

Таким образом, в кластере ПЦОС связь происходит как с помощью общей памяти, так и с помощью линков - как транспьютеры.

Аналогичную структуру имеет кластер TI TMS320C6x, в котором может объединяться до 8 процессоров.