Меню
Главная
Случайная статья
Настройки
|
Цифровой сигнальный процессор (DSP — англ. digital signal processor, ЦПОС — цифровой процессор обработки сигналов) — специализированный микропроцессор, предназначенный для обработки оцифрованных сигналов (обычно, в режиме реального времени)[1].
Содержание
Особенности архитектуры
Архитектура сигнальных процессоров, по сравнению с микропроцессорами общего применения, имеет некоторые особенности, связанные со стремлением максимально ускорить выполнение типовых задач цифровой обработки сигналов, таких, как цифровая фильтрация, преобразование Фурье, поиск сигналов. Математически эти задачи сводятся к поэлементному перемножению многокомпонентных векторов действительных чисел, последующему суммированию произведений (например, в цифровой фильтрации выходной сигнал фильтра с конечной импульсной характеристикой равен сумме произведений коэффициентов фильтра на вектор выборок сигнала, аналогичные вычисления производятся при поиске максимумов корреляционных и автокорелляционных функций выборок сигналов). Поэтому сигнальные процессоры оптимизированы по быстродействию для выполнения именно таких операций. И сигнальные процессоры ориентированы, в первую очередь, на многократное выполнение умножения с расчётом «на лету» адресов перемножаемых элементов массивов:
- операция «умножение с накоплением» (англ. multiply-accumulate, MAC) — , где , , — элементы массивов вещественных чисел с автоматическим расчётом адресов элементов массивов и обычно реализована аппаратно и исполняется за один машинный цикл;
- аппаратная реализация многократного повторения заданного набора команд, то есть циклы с заранее назначенной длиной без использования счётчиков цикла и команд проверки обнуления счётчика цикла — признака выхода из цикла.
- возможность одновременной в одном машинном такте выборки команды и двух операндов для максимально быстрого выполнения команды MAC; для этого сигнальный процессор имеет несколько портов обращения к памяти (независимых областей памяти, каждая со своим комплектом шин адреса и данных);
- поддержка векторно-конвейерной обработки с помощью генераторов адресных последовательностей.
Ограниченность аппаратных ресурсов первых сигнальных процессоров накладывала существенный отпечаток на их архитектуру:
- гарвардская архитектура (разделение памяти команд и данных), как правило, модифицированная; с разделением памяти на сегменты с независимым доступом;
- детерминированная работа с известными временами выполнения команд, что позволяет выполнять планирование работы в реальном времени;
- сравнительно небольшая длина конвейера, так что незапланированные условные переходы могут занимать меньшее время, чем в универсальных процессорах;
- экзотический набор регистров и инструкций, часто сложных для компиляторов. Некоторые архитектуры тогда использовали VLIW.
В современной микроэлектронике процессоры общего назначения зачастую содержат аппаратную поддержку типовых операций сигнальных процессоров. Особо ёмкие по времени задачи обработки сигналов решаются на основе программируемой логики, где можно достичь предельной оптимизации выполнения конкретной операции. Специализированные сигнальные процессоры всё чаще делают векторными. В то же время классические цифровые сигнальные процессоры снабжают развитыми наборами команд процессоров общего назначения и сглаживают особенности программной модели, позиционируя их как изделия широкого применения с ускоренными функциями обработки сигналов. Все эти тенденции приводят к размыванию классического понятия сигнального процессора.
Области применения
Сигнальные процессоры применяются в для решения следующего рода задач:
История
Предшествующие разработки
До 1980 года несколько компаний выпустили устройства, которые можно считать предшественниками ЦСП. Так, в 1978 году Intel выпустила «процессор аналоговых сигналов» 2920. В его состав входили АЦП, ЦАП и процессор обработки цифровых данных, однако аппаратная функция умножения отсутствовала. В 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 нс.
Современные ЦСП
Лучшие современные[уточнить] цифровые сигнальные процессоры можно характеризовать следующими параметрами:
- тактовая частота — 1 ГГц и выше;
- многоядерность;
- наличие двухуровневого кеша;
- встроенные многоканальные контроллеры прямого доступа к памяти;
- быстродействие порядка нескольких тысяч MIPS и MFLOPS;
- выполнение до 8 параллельных инструкций за такт;
- совместимость со стандартными шинами (PCI и другими).
Основные параметры
По типу арифметики сигнальные процессоры делятся на процессоры, обрабатывающие данные с фиксированной точкой и обрабатывающие данные с плавающей точкой. Устройства с плавающей точкой удобнее в применении, но они заметно сложнее по устройству и более дороги.
Другой ключевой параметр сигнального процессора — разрядность данных. Большинство процессоров с фиксированной точкой обрабатывают данные с разрядностью 16 бит, процессоры с плавающей точкой — 32 бита. Многие модели могут обрабатывать данные с двойной точностью.
Быстродействие как интегральную характеристику определить достаточно сложно, поэтому скорость работы характеризуют несколькими параметрами, а также временем решения некоторых реальных задач. Для характеризации быстродействия используют такие параметры, как тактовая частота и время командного цикла. Для современных
Более показательным для цифровых сигнальных процессоров является такой параметр, как количество выполняемых операций умножения с накоплением за единицу времени, поскольку данная команда, с одной стороны, является базовой для многих вычислений, а с другой — достаточно проста. Поэтому время её исполнения можно использовать в том числе и для оценки общей производительности процессора.
Объём внутренней оперативной памяти показывает, сколько данных сигнальный процессор может обработать без обращения к внешней памяти, что может характеризовать общее быстродействие системы, а также возможность работать «в реальном времени». Тип ПЗУ определяет возможности по программированию устройства. Модели с обычным ПЗУ подходят для крупносерийного производства, ППЗУ (однократно программируемое) удобно для небольших тиражей, а применение Flash-памяти позволяет менять программу устройства многократно во время эксплуатации. На данный момент не очень мощные процессоры чаще всего снабжены достаточно большой флеш-памятью и заметным объёмом оперативной памяти и поэтому могут являться самодостаточными без добавления внешней памяти и на этапе разработки, и на этапе производства, что повышает конкурентоспособность таких процессоров в ряде сегментов рынка. Мощные сигнальные процессоры, как правило, полагаются на внешнюю память, подключённую по достаточно быстрым шинам, а размещение там флеш-памяти может быть технически проблематичным, например, из-за заметного выделения тепла.
Объём адресуемой внешней памяти характеризуется шириной внешней шины адреса.
Также процессоры могут различаться по способу начальной загрузки.
Количество и параметры портов ввода-вывода показывают возможности по взаимодействию с внешними по отношению к нему устройствами.
Процессоры могут включать различные внутренние дополнительные устройства, в их число могут входить разнообразные по назначению устройства, например, «общего применения» — таймеры, контроллеры ПДП, а также проблемно-ориентированные — АЦП, кодеки, компрессоры данных и другие.
Особенно важная для встраиваемых и переносных систем характеристика — напряжение питания и потребляемая мощность. Обычно предпочтительнее низковольтные устройства (1,8 — 3,3 В), которые имеют быстродействие аналогично пятивольтовым процессорам, но заметно экономнее в плане потребления энергии. Многие устройства имеют режимы экономии при простое, либо позволяют программно отключать часть своих устройств.
Процессоры могут различаться составом и функциональностью средств разработки и поддержки — для каких языков программирования есть компиляторы под данную систему, наличием и возможностями средств отладки готовых программ, доступностью документации и технической поддержки, наличием библиотек стандартных подпрограмм и математических функций, совместимостью со смежными устройствами (АЦП, ЦАП, контроллерами питания и так далее).
Часто используются также интегральные характеристики цифровых сигнальных процессоров, например, показатель «мощность/ток/быстродействие», например, ma/MIPS (миллиампер на 1 млн инструкций в секунду), что позволяет оценить реальную потребляемую мощность в зависимости от сложности задачи, решаемой процессором в указанный момент.
Выбор сигнального процессора целиком определяется назначением разрабатываемой системы. Например, для массовых мобильных устройств важна дешевизна процессора, низкое энергопотребление, в то время как стоимость разработки системы отходит на второй план. С другой стороны, для измерительного оборудования, систем обработки звуковой и видеоинформации важны эффективность процессора, наличие развитых инструментальных средств, многопроцессорность и так далее.
Оценка и сравнение производительности
Как отмечено ранее, отдельные характеристики типа тактовой частоты, MIPS, MOPS, MFLOPS позволяют оценить быстродействие ЦСП достаточно неоднозначно. Поэтому для решения задачи измерения и сравнения характеристик разных ЦСП используют специальные наборы тестов, имитирующих некоторые распространённые задачи цифровой обработки сигналов. Каждый тест состоит из нескольких небольших программ, которые пишутся на ассемблере и оптимизируются под заданную архитектуру. Эти тесты могут включать реализацию:
Наиболее авторитетным пакетом тестов на сегодняшний день является тест BTDImark2000 (BDTI DSP Kernel Benchmarks™ (BDTImark2000™) Certified Results), который, кроме указанных алгоритмов, включает также оценку используемой алгоритмом памяти, время разработки системы и другие параметры.
Устройство
Гарвардская архитектура
Цифровые сигнальные процессоры строятся на основе гарвардской архитектуры, отличительной особенностью которой является то, что программы и данные хранятся в различных устройствах памяти — памяти программ и памяти данных. В отличие от архитектуры фон Неймана, где процессору для выборки команды и двух операндов требуется минимум три цикла шины, ЦСП может производить одновременные обращения как к памяти команд, так и к памяти данных, и указанная выше команда может быть получена за два цикла шины. В реальности, благодаря продуманности системы команд и другим мерам, это время может быть сокращено до одного цикла. В реальных устройствах память команд может хранить не только программы, но и данные. В этом случае говорят, что ЦСП построен по модифицированной гарвардской архитектуре.
Память команд и память данных обычно располагаются на кристалле ЦСП. В связи с тем, что эта память имеет относительно небольшой объём, возникает необходимость в использовании внешних (относительно кристалла процессора) запоминающих устройств. Для таких устройств раздельные шины команд и данных не используются, так как это потребовало бы значительно увеличить количество внешних выводов кристалла, что дорого и непрактично. Поэтому взаимодействие ЦСП с внешними запоминающими устройствами происходит по одному комплекту шин без разделения на команды и данные. Обращение к внешней памяти всегда занимает значительно больше времени, чем к внутренней, поэтому в приложениях, критичных ко времени исполнения, такие обращения стараются минимизировать.
Структурная схема
|
|