Микропроцессоры обработки сигналов
Сигнальные процессоры [22-26] обладают высокой степенью специализации. В них широко используются методы сокращения длительности командного цикла, характерные и для универсальных RISC-процессоров, такие как конвейеризация на уровне отдельных микроинструкций и инструкций, размещение операндов большинства команд в регистрах, использование теневых регистров для сохранения состояния вычислений при переключении контекста, разделение шин команд и данных (Гарвардская архитектура). В то же время для сигнальных процессоров характерным является наличие аппаратного умножетеля, позволяющего выполнять умножение двух чисел за один командный такт. В универсальных процессорах умножение обычно реализуется за несколько тактов, как последовательность операций сдвига и сложения. Другой особенностью сигнальных процессоров является включение в систему команд таких операций, как умножение с накоплением MAC (С:= АхВ+С с указанным в команде числом выполнения в цикле и с правилом изменения индексов используемых элементов массивов А и В), инверсия бит адреса, разнообразные битовые операции. В сигнальных процессорах реализуется аппаратная поддержка программных циклов, кольцевых буферов. Один или несколько операндов извлекаются из памяти в цикле исполнения команды.
Реализация однотактного умножения и команд, использующих в качестве операндов содержимое ячеек памяти, обусловливает сравнительно низкие тактовые частоты работы этих процессоров. Специализация не позволяет поднять производительность за счет быстрого выполнения коротких команд типа R, R®R, как это делается в универсальных процессорах. Этих команд просто нет в программах обработки сигналов.
Сигнальные процессоры различных компаний-производителей образуют два класса, существенно различающиеся по цене: более дешевые микропроцессоры с обработкой данных в формате с фиксированной точкой и более дорогие микропроцессоры, аппаратно поддерживающие операции над данными в формате с плавающей точкой.
Использование в сигнальной обработке данных в формате с плавающей точкой обусловлено несколькими причинами. Для многих задач, связанных с выполнением интегральных и дифференциальных преобразований, особую значимость имеет точность вычислений, обеспечить которую позволяет экспоненциальный формат представления данных. Алгоритмы компрессии, декомпрессии, адаптивной фильтрации в цифровой обработке сигналов связаны с определением логарифмических зависимостей и весьма чувствительны к точности представления данных в широком динамическом диапазоне.
Работа с данными в формате с плавающей точкой существенно упрощает и ускоряет обработку, повышает надежность программы, поскольку не требует выполнения операций округления и нормализации данных, отслеживания ситуаций потери значимости и переполнения.
Платой за эти дополнительные «комфорт и скорость» является высокая сложность функциональных устройств, выполняющих обработку данных в формате с плавающей точкой, необходимость использования более сложных технологий производства микросхем, больший процент отбраковки изделий и как следствие дороговизна микропроцессоров.
В настоящее время стал популярен и другой подход к получению высокой производительности. Большое количество транзисторов на кристалле может быть использовано для создания симметричной мультипроцессорной системы с более простыми процессорами, обрабатывающими целочисленные операнды. Примерами таких, так называемых медийных процессоров, служат Mediaprocessor компании MicroUnity, Trimedia компании Philips, Mpact Media Engine компании Chromatic Research, NVI компании Nvidia, MediaGx компании Cyrix.
Эти процессоры создавались, исходя из потребности обработки в реальном времени видео- и аудиоинформации в мультимедийных ПК, игровых приставках, бытовых радиоэлектронных приборах. В связи с более простой схемотехникой, по сравнению с универсальными сигнальными процессорами, стоимость медийных процессоров достаточно низкая (порядка $100), а значение показателя «производительность/стоимость» на два - три порядка больше. Пиковое значение производительности медийных процессоров составляет несколько миллиардов целочисленных операций в секунду.
В числе наиболее распространенных сигнальных процессоров [23, 24] можно назвать изделия следующих компаний: Motorola (56002, 96002), Intel (i960), Texas Instruments (TMS320Cxx), Analog Devices (21xx, 210xx, BlackFin ADSP-BF512, BF514, BF516, BF518 и др.). Большая производительность, требуемая при обработке сигналов в реальном времени, побудила две последние из перечисленных компаний выпустить транспьютерные семейства микропроцессоров TMS320C4x и ADSP2106x, ориентированных на использование в мультипроцессорных системах.
Выбор того или иного процессора для реализации конкретного проекта - многокритериальная задача, однако, следует отметить предпочтительность процессоров компании Analog Devices для приложений, требующих выполнения больших объемов математических вычислений (таких, как цифровая фильтрация сигнала, вычисление корреляционных функций и т.п.), поскольку их производительность на подобных задачах выше, чем у процессоров компаний Motorola и Texas Instruments. В то же время для задач, требующих выполнения интенсивного обмена с внешними устройствами (многопроцессорные системы, различного рода контроллеры), предпочтительнее использовать микропроцессоры компании Texas Instruments, обладающие высокоскоростными интерфейсными подсистемами.
Компания Motorola является лидером по объему производства сигнальных микропроцессоров, большую часть из которых составляют дешевые и достаточно высокопроизводительные 16- и 24-разрядные микропроцессоры с фиксированной точкой. Расширенные коммуникационные возможности, наличие достаточных объемов внутрикристальной памяти для данных и программы, возможности защиты программы от несанкционированного доступа, поддержка режима энергосбережения делают эти микропроцессоры привлекательными для использования не только в качестве специализированных вычислителей, но и в качестве контроллеров в промышленных роботах, бытовых электронных приборах, системах управления оружием, средствах беспроводной связи.