Цифровой сигнальный процессор (англ. Digital signal processor, DSP; сигнальный микропроцессор, СМП; процессор цифровых сигналов, ПЦС) — специализированный микропроцессор, предназначенный для цифровой обработки сигналов (обычно в реальном масштабе времени).
Особенности архитектуры Архитектура сигнальных процессоров, по сравнению с микропроцессорами настольных компьютеров, имеет некоторые особенности: - Гарвардская архитектура (разделение памяти команд и данных), как правило модифицированная;
- Большинство сигнальных процессоров имеют встроенную оперативную память, из которой может осуществляться выборка нескольких машинных слов одновременно. Нередко встроено сразу несколько видов оперативной памяти, например, в силу Гарвардской архитектуры бывает отдельная память для инструкций и отдельная — для данных.
- Некоторые сигнальные процессоры обладают одним или даже несколькими встроенными постоянными запоминающими устройствами с наиболее употребительными подпрограммами, таблицами и т. п.
- Аппаратное ускорение сложных вычислительных инструкций, то есть быстрое выполнение операций, характерных для цифровой обработки сигналов, например, операция «умножение с накоплением» (MAC) (Y := X + A × B) обычно исполняется за один такт.
- «Бесплатные» по времени циклы с заранее известной длиной. Поддержка векторно-конвейерной обработки с помощью генераторов адресных последовательностей.
- Детерминированная работа с известными временами выполнения команд, что позволяет выполнять планирование работы в реальном времени.
- Сравнительно небольшая длина конвейера, так что незапланированные условные переходы могут занимать меньшее время, чем в универсальных процессорах.
- Экзотический набор регистров и инструкций, часто сложных для компиляторов. Некоторые архитектуры используют VLIW.
- По сравнению с микроконтроллерами, ограниченный набор периферийных устройств — впрочем, существуют «переходные» чипы, сочетающие в себе свойства DSP и широкую периферию микроконтроллеров.
Области применения Коммуникационное оборудование:- Уплотнение каналов передачи данных;
- Кодирование аудио- и видеопотоков;
- Системы гидро- и радиолокации;
- Распознавание речи и изображений;
- Речевые и музыкальные синтезаторы;
- Анализаторы спектра;
- Управление технологическими процессами;
- Другие области, где необходима быстродействующая обработка сигналов, в том числе в реальном времени.
История
Предшествующие разработки
До 1980 года несколько компаний выпустили устройства, которые можно считать предшественниками ЦСП. Так, в 1978 Intel выпускает «процессор аналоговых сигналов» 2120. В его состав входили АЦП, ЦАП и процессор обработки цифровых данных, однако аппаратная функция умножения отсутствовала. В 1979 AMI выпускает S2811 — периферийное устройство, управляемое основным процессором компьютера. Оба изделия не достигли успеха на рынке.
Первое поколение (начало 1980-х)
Основную историю ЦСП принято отсчитывать от 1979—1980 годов, когда Bell Labs представила первый однокристальный ЦСП Mac 4, а также на «IEEE International Solid-State Circuits Conference '80» были показаны µMPD7720 компании NEC и DSP1 компании AT&T, которые, однако, не получили широкого распространения. Стандартом де-факто стал выпущенный чуть позже кристалл TMS32010 фирмы Texas Instruments, по многим параметрам и удачным техническим решениям превосходящий изделия конкурентов. Вот некоторые его характеристики:
- АЛУ:
- Размер слова: 16 бит;
- Разрядность вычислителя: 32 бит;
- Быстродействие: 5 млн операций сложения или умножения в секунду;
- Длительность командного цикла: 160—280 нс;
- Память:
- ОЗУ: 144—256 слов;
- ПЗУ программ: 1,5—4 К слов;
- ППЗУ: до 4К слов (отдельные модели);
- Внешняя шина:
- Разрядность: 16 бит;
- Адресуемое пространство: 4К слов
- Пропускная способность: 50 Мбит/с
- Устройства ввода-вывода: 8 портов по 16 разрядов;
Второе поколение (середина 1980-х)
Благодаря прогрессу в полупроводниковых технологиях, в этот период были выпущены изделия, имеющие расширенные функции по сравнению с первым поколением. К характерным отличиям можно отнести: Увеличение объёма ОЗУ до 0,5 К слов;- Добавлена возможность подключения внешней памяти программ и внешней памяти данных объёмом до 128 К слов;
- Быстродействие повышено в 2—4 раза;
- Улучшенные подсистемы прерываний и ввода-вывода.
Много позднее также были выпущены устройства, формально относящиеся ко второму поколению, но имеющие следующие усовершенствования: - Увеличена разрядность данных;
- Пониженное напряжение питания и, как следствие, энергопотребление;
- Введены режимы экономии энергии;
- Аппаратная поддержка мультипроцессорности (система совместного доступа к внешней памяти);
- Аппаратная поддержка кольцевых буферов;
- Аппаратная поддержка операций циклов;
- Расширены способы адресации;
- Две внутренние шины данных, что позволяет значительно ускорить парную обработку данных (координаты X/Y, действительная и мнимая часть и т. д.), либо виртуально удвоить разрядность обрабатываемых данных;
- Введена кэш-память.
Третье поколение (конец 1980-х)
Третье поколение ЦСП принято связывать с началом выпуска изделий, реализующих арифметику с плавающей запятой. Характерные особенности первых выпущенных образцов: Производительность: порядка 20-40 млн оп./сек. (MIPS);- Два блока ОЗУ по 1 К 32-разрядных слов с возможностью одновременного доступа;
- Кэш-память объёмом 64 слова;
- Разрядность регистров: 32 бит;
- Разрядность АЛУ: 40 бит;
- Регистры для операций с повышенной точностью;
- Встроенные контроллеры ПДП;
- Разрядность шин: 32 бит для команд и 24 бит для адреса;
Четвёртое поколение
Четвёртое поколение ЦСП характеризуется значительным расширением наборов команд, созданием VLIW и суперскалярных процессоров. Заметно возросли тактовые частоты. Так, например, время выполнения команды MAC (Y := X + A × B) удалось сократить до 3 нс.
Основные параметры ЦСП Тип арифметики. ЦСП делятся на процессоры, обрабатывающие данные с фиксированной точкой и обрабатывающие данные с плавающей точкой. Устройства с плавающей точкой удобнее в применении, но они заметно сложнее по устройству и более дороги;- Разрядность данных. Большинство ЦСП с фиксированной точкой обрабатывают данные с разрядностью 16 бит, процессоры с плавающей точкой — 32 бита. Многие модели могут обрабатывать данные с двойной точностью.
- Быстродействие. Быстродействие как интегральную характеристику определить достаточно сложно, поэтому скорость работы характеризуют несколькими параметрами, а также временем решения некоторых реальных задач.
- Тактовая частота и Время командного цикла. Для современных ЦСП тактовая внутренняя частота может отличаться от внешней, поэтому могут указываться два значения. Время командного цикла указывает на время выполнения одного этапа команды, то есть время одного цикла конвейера команд. Так как команды могут исполняться за разное количество циклов, а также с учетом возможности одновременного исполнения нескольких команд, этот параметр может характеризовать быстродействие ЦСП достаточно приближённо.
- Количество выполняемых команд за единицу времени. Различное время исполнения команд, а также исполнение нескольких команд одновременно не позволяют использовать этот параметр для надежной характеристики быстродействия.
- Количество выполняемых операций за единицу времени (MIPS). Данный параметр учитывает одновременную обработку нескольких команд и наличие параллельных вычислительных модулей, поэтому достаточно хорошо может указывать на быстродействие ЦСП. Некоторой проблемой здесь остается то, что понятие «операции» четко не формализовано.
- Количество выполняемых операций с плавающей точкой за единицу времени. Параметр аналогичен предыдущему и используется для процессоров с плавающей точкой.
- Количество выполняемых операций MAC за единицу времени. Данная команда, с одной стороны, является базовой для многих вычислений, а с другой — достаточно проста. Поэтому время её исполнения можно использовать в том числе и для оценки общей производительности ЦСП.
- Виды и объём внутренней памяти. Объём внутренней оперативной памяти показывает, сколько данных ЦСП может обработать без обращения к внешней памяти, что может характеризовать общее быстродействие системы а также возможность работать «в реальном времени». Тип ПЗУ определяет возможности по программированию устройства. Модели с обычным ПЗУ подходят для крупносерийного производства, ППЗУ (однократно программируемое) удобно для небольших тиражей, а применение Flash-памяти позволяет менять программу устройства многократно во время эксплуатации. На данный момент не очень мощные DSP чаще всего снабжены достаточно большой Flash-памятью (её цена неуклонно снижается) и заметным объёмом RAM и поэтому могут являться самодостаточными без добавления внешней памяти и на этапе разработки и на этапе производства, что повышает конкурентоспособность таких DSP в ряде сегментов рынка. Мощные DSP как правило полагаются на внешнюю память подключенную по достаточно быстрым шинам а размещение там Flash-памяти может быть технически проблематичным, например, из-за заметного выделения тепла.
- Адресуемый объём памяти. Объём адресуемой внешней памяти характеризуется шириной внешней шины адреса.
- Способ начальной загрузки.
- Количество и параметры портов ввода-вывода. Данный параметр показывает возможности ЦСП по взаимодействию с внешними по отношению к нему устройствами.
- Состав внутренних дополнительных устройств. В число внутренних могут входить разнообразные по назначению устройства, например, общего применения — таймеры, контроллеры ПДП и т. д., а также проблемно-ориентированные — АЦП, кодеки, компрессоры данных и другие.
- Напряжение питания и потребляемая мощность. Данная характеристика особенно важна для ЦСП, встраиваемых в переносные устройства. Обычно предпочтительнее низковольтные устройства (1,8-3,3В), которые имеют быстродействие аналогично 5В процессорам, но заметно экономнее в плане потребления энергии. Многие устройства имеют режимы экономии при простое, либо позволяют программно отключать часть своих устройств.
- Состав и функциональность средств разработки и поддержки.
- Перечень языков программирования, для которых есть компиляторы под данную систему;
- Наличие и возможности средств отладки готовых программ;
- Доступность документации и технической поддержки;
- Наличие библиотек стандартных подпрограмм и математических функций;
- Наличие, доступность и возможности совместимых устройств — АЦП, ЦАП, контроллеры питания и т. д.
- Допустимые параметры окружающей среды.
- Другие, в зависимости от назначения.
Часто используются также интегральные характеристики ЦСП, например показатель «мощность/ток/быстродействие», например ma/MIPS (миллиампер на 1 млн инструкций в секунду), что позволяет оценить реальную потребляемую мощность в зависимости от сложности задачи, решаемой процессором в указанный момент.
Выбор ЦСП целиком определяется назначением разрабатываемой системы. Например, для массовых мобильных устройств важна дешевизна процессора, низкое энергопотребление, в то время как стоимость разработки системы отходит на второй план. С другой стороны, для измерительного оборудования, систем обработки звуковой и видеоинформации важны эффективность процессора, наличие развитых инструментальных средств, многопроцессорность и т. д.
Оценка и сравнение производительности
Как отмечено ранее, отдельные характеристики типа тактовой частоты, MIPS, MOPS, MFLOPS позволяют оценить быстродействие ЦСП достаточно неоднозначно. Поэтому для решения задачи измерения и сравнения характеристик разных ЦСП используют специальные наборы тестов, имитирующих некоторые распространенные задачи цифровой обработки сигналов. Каждый тест состоит из нескольких небольших программ, которые пишутся на ассемблере и оптимизируются под заданную архитектуру. Эти тесты могут включать реализацию: - Фильтры КИХ и БИХ;
- Перемножение векторов;
- Декодеры Витерби;
- БПФ
Наиболее авторитетным пакетом тестов на сегодняшний день является тест BTDImark2000 (http://www.btdi.com), который кроме указанных алгоритмов включает также оценку используемой алгоритмом памяти, время разработки системы и другие параметры.
|