Процессоры цифровой обработки сигналов
Процессоры цифровой обработки цифровых сигналов (ПЦОС) предназначены для обработки оцифрованных аналоговых сигналов в реальном времени. ПЦОС являются образцом проблемно-ориентированных микропроцессоров.
Первыми из промышленных проблемно-ориентованных процессоров с подержкой скалярного паралеллизма были ПЦОС. Основной их характеристикой является нерегулярная структура командного слова и как следствие ограниченные возможности скалярного паралелизма, связанные с историей разработки первых ПЦОС. Первые ПЦОС создавались для виполнения простых операций цифровой обработки: цифровых фильтров, быстрого преобразования Фурье, Хартли, и косинусного преобразования, которые в основном оперировали с целыми 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 представляют достаточно много модельных рядов ПЦОС, которые условно подразделяются на пять больших групп:
Обычно паралеллелизм ПЦОС ограничивается MAC-устройством, но объединение ПЦОС и ДКС архитектур позволяет значительно повысить пиковое быстродействие: разные модели ПЦОС с ДКС могут исполнять от 4 до 8 команд за такт, и имеют меньше атрибутов ПЦОС, например отсутствует MAC-устройство в моделях фирми TI. Типовым представителем этой группы является SC140 и TI TMS320C62xx/С64хх, с максимальной длиной командного слова в 8 команд. Важным фактором коммерческого успеха этого ПЦОС является достаточно эффективный компилятор, розработанный фирмой-изготовителем.
Стоит отметить, что ПЦОС с ДКС потребляют гораздо больше мощности, чем процессоры, имеющие традиционную архитектуру, что является ценой высокое быстродействие. Именно по этой причине VLIW DSP обычно используются в базовых станциях, а не в самих сотовых телефонах. Впрочем, исключением может стать ПЦОС StarCore SC140 - совместная разработка корпораций Motorola и Lucent Technologies, которая должна найти применение именно в портативных продуктах.
Мощный ПЦОС Analog Devices TigerSHARC (не экспортирующийся в ряд стран), имеет VLIW-архитектуру и комбинирует два типа SIMD: одна команда управляет двумя наборами исполнительных устройств и, кроме того, она же может назначить совместное использование АЛУ и МАС. Благодаря таким архитектурным особенностям TigerSHARC за один такт может выполнить до 16 умножений.
Традиционно, архитектура ПЦОС не предназначена для выполнения задач управления. Архитектура ДКС, напротив, хорошо справляется с этими задачами. В последнее время классические ПЦОС все меньше удовлетворяют современным требованиям: уровень поддержки скалярного паралелизма небольшой, а перечень заданий расширяется. В современных процессорах наблюдается дисбаланс между быстродействием внутренних АЛУ процессора и скоростью подачи данных из памяти в АЛУ. Используется всё больше процессоров, которые поддерживают технологию ОКМД-в-регистре, расширяется номенклатура процессоров с встроенными специализированными сопроцессорами. Методы оптимизации, которые используются сейчас для ПЦОС, раньше были характерны в основном для ДКС, например - программный конвейер. В связи с увеличением числа архитектур ПЦОС с ДКС, основной признак ПЦОС -устройство умножителя-накопителя становится раритетом, например в справочнике по программированию МП ADSP-2106x при розработке алгоритмов от простых фильтров до сложных матричных преобразований ни один раз не использовалось устройство MAC, вместо него используется эквивалентная использованию MAC техника программного конвейера. Использование устройства MAC рекомендуется только в случаях повышенной точности вычислений - обычно акумулятор в устройстве имеет удвоенную (или утроенную) длину в сравнении с арифметическим регистрами, но в новейших процессорах используется улучшенная схема построения арифметических регистров с защитой от переполнения и двойной точностью. Опираясь на последние исследования в области процессорных архитектур, можно отметить, что постепенно в заданиях обработки сигналов, требующих большого быстродействия, больше используются МП с ДКС, чем класические ПЦОС, узким местом которых является устаревшая архитектура с ограниченным скалярним паралеллизмом.
Пока что основной сложностью в внедрении как ДКС, так и ПЦОС является отсутствие эффективных компиляторов. Это связанов основном с поддержкой этими архитектурами скалярного паралеллизма и ориентированностью на определённые задания. Для эффективного использования особенностей архитектуры новейших процессоров необходимо решить вопросы извлечения имеющихся видов паралеллизма из программы на конкретной архитектуре процесора та оптимизировать процесс вычислений для неё.
Так как рассмотренные архитектуры ПЦОС и ДКС по основным признакам являются одновременно ОКОД, ОКДМ, и МКМД (от IssDss до IscDcc по Шнайдеру), то будем обозначать эти архитектуры как нерегулярное командное слово, с количеством команд от 1 до c - константы, определяемой архитектурными особенностями МП.
С точки зрения программирования ПЦОС представляют собой довольно сложные архитектуры, которые, для получения соответствующего быстродействия, должны тщательно программироваться. Основные моменты, отличающие программирование ПЦОС от МП общего применения, представлены ниже:
Кластеры процессоров цифровой обработки
Для увеличения вычислительной мощности ПЦОС традиционные способы используются редко. Повышение тактовой частоты не приводит к желаемому результату потому что возрастает тепловыделение и возникает проблема обращения к памяти. Так как немногие классические ПЦОС имеют вообще кеш-память, проблема часто решается установкой на плате больших объёмов статической памяти, или же уступками в вопросах тепловыделения - например, размещаем 8Мбит Кеш на кристалле процессора.
Есть и принципиально иной случай: многопроцессорные системы. Но, если в случае с МКМД-ЭВМ основным решением является общая память, а в транспьютерах соединение производится через специальные устройства ввода-вывода - линки, которые прямо соединяют процессор с процессором, в кластерах ПЦОС используется и тот, и другой способы.
Рассмотрим кластер AD ADSP-2106x SHARC. Каждый процессор ADSP-2106x имеет следующие характеристики:
Каждый кластер объединяет от 2 до 6 процессоров. Процессоры связаны общей шиной. Каждый процессор имеет по 2 Мбит локальной памяти, доступ к которой происходит по внутренним шинам. Каждый процессор может прочитть или изменить память другого процессора с помощью доступа по общей шине. Имеется 2 Мбит общей памяти, доступ к которой происходит только по общей шине. Кроме того, каждый процессор может послать прерывание другому процессору.
Дополнительно процессоры имеют по 2 или 4 линка, с помощью которых они могт связываться напрямую с процессорами своего кластера, или чужого кластера.
Таким образом, в кластере ПЦОС связь происходит как с помощью общей памяти, так и с помощью линков - как транспьютеры.
Аналогичную структуру имеет кластер TI TMS320C6x, в котором может объединяться до 8 процессоров.