Современные устройства цифровой обработки сигналов. Вместе или врозь?
Каждый тип ЦОС-устройств можно разбить на процессоры младших и старших моделей. Проанализируем с этой точки зрения представленные на современном рынке ЦОС-устройства.
Наиболее распространенными младшими моделями УП можно считать встраиваемые микроконтроллеры (4-, 8-, 16- и 32-разрядные), разрабатываемые для систем с высокими требованиями к экономической эффективности. К таким процессорам относится 32-разрядный микроконтроллер компании ARM на основе ядра ARM7. УП старших моделей – центральные процессоры, используемые в ПК, рабочих станциях, сетевых серверах, подобные процессорам семейства Pentium компании Intel и PowerPC компании IBM. На долю УП в настоящее время приходятся самые высокие объемы продаж процессоров на рынке.
DSP младших моделей по своей относительно простой архитектуре аналогичны первым микропроцессорам этого класса, разработанным в 1980-е годы. Предназначены они для эффективного выполнения конкретных задач цифровой обработки сигнала, не требующих высокого быстродействия (например, декодирование данных в формате МР3), с достаточно низким энергопотреблением и приемлемой стоимостью. На долю этих процессоров приходится основной объем продаж DSP. Пример младшей модели DSP – микросхема TMS320C54x компании Texas Instruments [1, 2].
Однако существуют применения, для которых важно высокое быстродействие. Так, вместо 50·106 операций умножения-накопления в секунду (50 MMACS), необходимых для декодирования данных в формате МР3, в ряде систем требуются процессоры, производительность которых должна достигать нескольких миллиардов или более таких операций в секунду (GМАСS). Старшие модели DSP реализованы на основе архитектуры с использованием очень длинных командных слов (VLIW) и принципа "одна команда – множество данных" (SIMD). Пример – процессоры семейства TigerSHARC компании Ananlog Devices. У них статическая суперскалярная VLIW-архитектура с двумя SIMD-элементами, позволяющими с помощью одной команды управлять двумя типами исполнительных устройств. В результате процессор TigerSHARC, как и универсальный процессор PowerPC74xx, также выполненный на основе SIMD-архитектуры, может производить восемь 16-разрядных операций умножения за цикл [2]. Старшие модели сигнальных процессоров применяются в медицинской аппаратуре, в которой предусмотрена визуализация получаемых данных, стационарных станциях сотовой связи, средствах электронной разведки, РЛС и гидролокационных станциях, спутниковых видеопередатчиках, промышленных установках контроля пластин/шаблонов при производстве полупроводниковых приборов.
Таким образом, существует значительный рынок ЦОС-устройств младших моделей (с быстродействием <100 MMACS). В то же время большое число респондентов нуждаются в ЦОС-устройствах старших моделей (с быстродействием >10000 MMACS) [1].
В последнее время ведется оживленная полемика относительно конструктивно-технологических решений старших моделей ЦОС-устройств, в том числе военного назначения. Следует отметить, что цифровая обработка сигнала – это не одна прикладная задача, а комплекс взаимосвязанных задач, которые в обобщенном виде можно охарактеризовать как задачи предварительной и окончательной обработки сигнала. Искусство разработчика заключается в правильном выборе ЦОС-устройства для конкретного применения на основе традиционных критериев. Он должен учитывать не только производительность, но и множество других параметров, характеризующих работу процессора.
Так, FPGA не могут выполнять операции с плавающей запятой, если ключевое требование задачи – точность. В то же время средства радиотехнической и электронной разведки (SIGINT и ELINT соответственно) требуют проведения большого числа БПФ, обычно выполняемых с плавающей запятой, поскольку операции с фиксированной запятой ограничивают динамический диапазон получаемого решения [3], т.е. при создании этих устройств следует применять DSP. Кроме того, операцию обращения (или деления) матрицы также лучше выполнять с помощью DSP или УП.
Следует учитывать и другие важные различия между DSP, УП и FPGA. Так, быстродействие DSP велико, но такой процессор может одновременно выполнять лишь несколько операций, тогда как FPGA способны выполнять одновременно практически неограниченное число операций, обеспечивая высокий параллелизм работы. Правда, их быстродействие, как правило, ниже, чем у DSP и УП. Таким образом, DSP и УП больше подходят для работы со сложными алгоритмами с плавающей запятой, а FPGA целесообразно применять в системах, работающих с фиксированной запятой и требующих высокого уровня параллелизма. Следовательно, только конкретное применение определяет преимущество одного типа ЦОС-процессора перед другим. Например, для формирования диаграммы направленности обычная или цифровая антенная система умножает принятые многочисленными антеннами сигналы на их весовые коэффициенты. И если быстродействующие FPGA – идеальное решение для выполнения операции умножения, динамическое вычисление весовых коэффициентов требует обращения матрицы, что значительно лучше реализует УП или специализированный DSP. Поэтому наиболее приемлемое решение задачи формирования диаграммы направленности, очевидно, заключается в реализации входного сопроцессора антенной системы на FPGA, а выходного блока сбора данных – на DSP или УП. Такое решение упрощает архитектуру системы, облегчает ее дальнейшее развитие, а также полезно при модернизации функциональных возможностей действующих систем [3].
Немаловажное значение при выборе того или иного типа ЦОС-устройства для конкретного приложения имеет показатель "стоимость-производительность". Проведенное компанией Texas Instruments сравнение этого показателя для специализированных DSP собственной разработки и FPGA компании Altera, крупного поставщика таких микросхем, показало, что для приложений, не требующих производительности более 300 MMACS, оптимальное решение можно получить при использовании DSP. Для приложений с производительностью 300–1000 MMACS предпочтительны специализированные DSP с ресурсами, необходимыми для выполнения требуемой функции (табл.1, 2).
Итак, каждый тип ЦОС-устройства – FPGA, DSP и УП – имеет на рынке свою нишу, определяемую применением и требованиями заказчика. Поэтому, очевидно, для развития ЦОС-процессоров необходимо сосуществование, а не конкуренция. У каждой технологии свои достоинства и недостатки, и каждая способна в зависимости от конкретного применения превзойти другие. При выборе варианта процессора конструктор системы должен оценивать многие параметры, в том числе:
* требования системы к характеристикам ЦОС-устройства;
* потребляемая мощность;
* число компонентов и габариты;
* план-график (roadmap) создания будущих изделий/систем и совершенствования существующих устройств;
* экономические показатели, такие как единовременные затраты на проектирование и внедрение в производство (NRE), стоимость материалов, сроки поставок на рынок и риск, связанный с проектом (рис.1) [5].
Гибридная архитектура FPGA/DSP
Если конструктору требуется производительность свыше 1000 ММАСS, целесообразно применять гибридные устройства на основе DSP/FPGA (см. таблицу 2). Такая "гибридная архитектура", в которой на одной плате размещены FPGA и DSP вычислительные элементы, как правило, используется и при реализации встраиваемых процессоров цифровой обработки сигнала. Но при этом приходится принимать немало компромиссных решений, касающихся интерфейсов устройств ввода-вывода данных (устройств В/В), межпроцессорной связи, конфигурации памяти, интерфейса хоста, управления, программно-аппаратных средств FPGA. Все эти решения должны быть тщательно продуманы и поддержаны типовым программным обеспечением [5].
Интерфейс. Для реконфигурации устройств В/В во многих современных представленных на рынке промышленных платах вычислительных систем уже имеются FPGA вычислительные элементы. Размещение таких элементов вблизи устройств ввода/вывода данных позволяет поддерживать любые стандарты передачи данных, в том числе и такие отличающиеся друг от друга стандарты, как PCI, PCI Express, USB, GigE, Serial RapidIO. Это особенно выгодно при использовании плат новых форматов – VITA 41, VITA 46 и АМС, которые поддерживают быстродействующие последовательно-параллельные и параллельно-последовательные преобразователи (SerDes), способные работать с несколькими различными протоколами.
Межпроцессорная связь. Помимо выбранного типа вычислительных элементов (DSP или FPGA) на производительность системы влияет качество связи между ними. Очевидно, оно должно быть достаточно высоким. Кроме того, связь должна быть детерминированной и устанавливаться с малой задержкой. Менее очевиден тот факт, что скорость передачи данных в среднем должна быть выше, чем полоса пропускания устройств В/В платы. Главная задача гибридной архитектуры заключается в том, чтобы нужный тип вычислительного элемента, размещенный в нужном месте системы, использовался в нужное время. Для ее выполнения данные, как правило, необходимо передавать между различными элементами и зачастую не один раз (рис.2).
Данные обычно вводятся в систему на плате через интерфейс устройства В/В матрицы FPGA, которая выполняет их предварительную обработку. Иногда, как в случае преобразователя с понижением частоты или выполнения алгоритма сжатия импульсов, предварительная обработка приводит к снижению скорости передачи данных. Однако общие алгоритмы предварительной обработки, включая алгоритмы реализации фильтров, дешифраторов, БПФ, существенно не влияют на скорость передачи данных, а иногда приводят к ее увеличению. Поэтому, когда при передаче данных элементу DSP с целью дополнительной обработки, а также возврата их FPGA для окончательной обработки и вывода требуется минимальная пропускная способность, скорость межпроцессорной связи должна быть равна скорости передачи данных устройств В/В. Правда, в более общем случае, когда ресурсы FPGA обеспечивают совместную с DSP обработку данных или когда вычислительные элементы построены на нескольких FPGA и/или DSP, скорость межпроцессорной связи может многократно превышать скорость передачи данных устройств В/В.
Конфигурация памяти. Не все ЦОС-устройства нуждаются в памяти большого объема. Но в случае наличия такой памяти ее тип, конфигурация и даже местоположение зависят от требований конкретного применения. Совместное использование модульной памяти большого объема и FPGA позволяет формировать ее различные типы и конфигурации путем изменения модуля и репрограммирования вентильной матрицы. Например, 64-разрядную шину данных можно использовать для поддержки одного банка памяти с длиной слова 64 бит или можно реконфигурировать для поддержки двух независимых банков памяти с длиной слова каждого 32 бит. При этом банки памяти могут быть разных типов.
Интерфейс хоста и управление. Наиболее приемлемый способ реализации интерфейса хоста промышленных плат с гибридным ЦОС-устройством – соединить стандартные интерфейсы и отдельные шины команд и управления каждого FPGA и DSP вычислительного элемента с помощью моста. Поскольку при этом линии связи будут перпендикулярны линиям передачи данных, интерфейс хоста часто называют матрицей управления (в отличие от матрицы данных). Наличие независимой матрицы управления позволяет хосту выполнять непосредственную выборку данных и управление любыми ресурсами, не влияя на пропускную способность шин данных. Шина команд и управления обеспечивает хосту непосредственный доступ к модулю памяти. Она может также служить дополнительным средством межпроцессорной связи.
Общий вид промышленной платы с гибридным ЦОС-устройством и решением рассмотренных проблем представлен на рис.3.
Программно-аппаратные средства FPGA. При больших возможностях FPGA, программирование матрицы может быть обескураживающим. Если необходимо обеспечить высокое быстродействие FPGA ЦОС-устройства, расположенного на промышленной плате с фиксированными положениями выводов и внешними интерфейсами, задача еще больше усложняется. Чтобы облегчить ее решение, для интерфейсов платы должны быть предусмотрены IP-модули (в том числе устройств В/В, памяти, межпроцессорной связи, шины команд и управления). В идеале структура FPGA должна поддерживать программируемую связь между IP-модулями наряду с документально утвержденными их интерфейсами, позволяющими пользователю применять модули обработки сигнала, которые могут быть введены в потоки данных. В этом случае потоки данных, показанные на рис.2, легко реализовать путем перевода требуемых блоков предварительной/совместной/пост-обработки сигналов (на рисунке они показаны желтым цветом) в конфигурируемые программой потоки данных. В ходе процесса обработки шины команд и управления могут конфигурировать требуемые для данного применения потоки данных между интерфейсами В/В, IP-модулями, DSP и другими ресурсами платы.
Программное обеспечение. Чем сложнее аппаратные средства, тем больше потребность в ПО низкого уровня для поддержки интерфейса хоста, отладки системы, команд и управления временем исполнения программы. Для гибридного устройства, которое сложнее однотипного, унификация программных средств особенно важна. Отладка может потребовать специальных ресурсов для реализации различных технических решений, но конфигурации, управление и данные всех вычислительных элементов должны быть сведены в единую библиотеку интерфейса драйвера хоста. Если рассмотренные выше программно-аппаратные средства вентильной матрицы реализованы, для задания потока данных и управления им необходимы программные средства. Кроме того, для выполнения операций передачи данных, прерываний, координации и синхронизации следует обеспечить программную поддержку взаимодействия DSP-элементов с FPGA. Эту задачу можно решить с помощью кода, библиотек, интерфейса обмена сообщениями или ОС [5].
Использование FPGA в качестве сопроцессора
В быстродействующих ЦОС-платформах, традиционно реализуемых на универсальных DSP, выполняющих алгоритмы на языке Си, для предварительной обработки данных или выполнения функций сопроцессора, все чаще применяют FPGA. Это обусловлено гибкостью FPGA структуры, которая поддерживает высокий параллелизм работы при выполнении таких операций, как КИХ-фильтрация, БПФ, цифровое преобразование с понижением частоты и прямая коррекция ошибок. Аппаратная система, содержащая DSP и FPGA-сопроцессор, может выполнять операции распределения алгоритмов между DSP, конфигурируемыми логическими блоками FPGA и встроенным процессором на FPGA. Проблема заключается в достижении эффективного распределения системных операций DSP по имеющимся аппаратным ресурсам. Как наилучшим образом использовать встроенные FPGA-процессоры, не всегда очевидно. Этот аппаратный ресурс может внести большой вклад в снижение общей стоимости системы. FPGA позволяет объединять все некритичные операции в программном потоке встроенных процессоров, сокращая общее число аппаратных ресурсов, требуемых для системы [6].
Применение микросхем DSP и FPGA-сопроцессора для реализации системы быстродействующего видеокодирования стандарта H.264/AVC показало, что функциональные возможности кодеков, выполненных на их основе, значительно шире, чем кодеков только на DSP (рис.4) [7].
Для оптимизации быстродействующих цифровых систем видеонаблюдения компания Mango DSP разработала четырехканальную систему видеонаблюдения Raven-D на основе недорогой FPGA Cyclone II фирмы Altera и DSP DM642 фирмы Texas Instruments (рис.5). DSP работает на тактовой частоте до 1 ГГц. Число его интерфейсов В/В, команд/тактовых сигналов и умножителей ограничено, длина слов фиксирована. К тому же, для связи с другими DSP используются PCI шины с относительно небольшим быстродействием. Микросхема FPGA может работать с большим числом команд/тактовых сигналов и словами переменной длины, содержит на два порядка больше умножителей, чем DSP. Так, в FPGA типа Cyclone II до 150 18×18 умножителей/накапливающих сумматоров, работающих на частоте до 250 МГц каждый, и около 70 тыс. стандартных логических элементов. FPGA, как и DSP, имеет доступ к различным современным типам ДОЗУ. Межпроцессорную связь обеспечивают шины LVDS с быстродействием 1 Гбит/с или шины SerDes с быстродействием более 1 Гбит/с. Недостатки FPGA ЦОС-процессора – длительное время разработки и значительно меньшие значения тактовой частоты в сравнении с DSP.
Таким образом, DSP и FPGA дополняют друг друга. DSP с высоким быстродействием выполняет новые и сложные алгоритмы и от двух до четырех вычислений одновременно, а FPGA – одновременно векторные и матричные математические операции. Кроме того, микросхема FPGA удобна для установления связи между многочисленными процессорными узлами, для сбора данных и распределения их между устройствами цифровой обработки сигнала, а также для перестройки дополнительных вычислений в одном выходном потоке. В системе видеонаблюдения FPGA может использоваться в качестве сопроцессора для предварительной обработки видеосигналов (стабилизации, фильтрации и обнаружения перемещений), а также для выполнения функции сжатия видеоизображения [8].
DSP в сочетании с FPGA успешно работает и в кодере JPEG2000 компании BroadMotion (рис.6). Применение дополнительной недорогой микросхемы FPGA Cyclone II фирмы Altera или Spartan 3 фирмы Xilinx позволило расширить функциональные возможности кодера и улучшить качество изображения при соблюдении требований к обеспечению достаточно низкой стоимости. При обработке полноцветного видеоизображения с разрешением 720×480 пикселов кодек фирмы BroadMotion кодирует более 50 кадров в секунду при производительности 25 Мбайт/с. Применение такого сопроцессора позволяет более чем на порядок улучшить эффективность кодера в сравнении с устройством только на DSP [9].
Хорошие результаты могут быть получены и при построении системы на основе трех типов ЦОС-устройств. Пример совместного использования УП/DSP/FPGA – плата контроллера IP-камеры на базе трехъядерного сигнального микроконтроллера MCam02, разработанного компанией Элвис в рамках платформы "Мультикор" (рис.7). Плата, помимо контроллера, содержит недорогую микросхему FPGA типа Spartan 3 фирмы Xilinx (для организации интерфейса средства управления объективом с переменным фокусным расстоянием, интерфейса съемной флеш-памяти, интерфейса I2C для ввода-вывода высококачественного аудиосигнала, дополнительного интерфейса для кнопок и вспышки). В результате эффективность микроконтроллера при выполнении операций обработки и передачи видеосигнала повышается [10].
Использование комбинации DSP/FPGA в программируемых радиоустройствах
Чтобы достичь баланса стоимости, мощности, быстродействия, гибкости и надежности разработчики при построении архитектуры программируемых радиоустройств (SDR), в том числе военного назначения, также используют комбинацию процессорных элементов.
SDR-системы работают с сигналами различной формы волны, и для их цифрового преобразования с понижением частоты необходима гибкая логика программируемой вентильной матрицы. После демодуляции сигнала FPGA динамическую обработку в реальном времени может выполнять DSP. В передающем канале процесс повторяется в обратном порядке. Для работы модемов в SDR-системах и поддержки операций модуляции, демодуляции, передискретизации с повышением и понижением частоты, а также коррекции ошибок нужно совмещать DSP и быстродействующие FPGA. В зависимости от типа алгоритмов модема беспроводного устройства система контроля ошибок при передаче данных или прямой коррекции ошибок, может быть реализована с помощью или DSP, или логических вентилей. Например, алгоритмы кодирования и декодирования Рида-Соломона, наряду с кодированием в сверхточных и турбокодах, проще и лучше выполнять сигнальным процессором в силу лучшего соотношения показателя стоимость–мощность. Однако при более сложной техникие декодирования алгоритмов для коррекции ошибок в сверхточных или турбокодах целесообразно применять логические вентили, встроенные в процессор или FPGA. В этом отношении применение FPGA в SDR-системах в качестве сопроцессора имеет множество плюсов, поскольку его гибкость позволяет поддерживать несколько протоколов.
Управление доступом к среде передачи данных, предусматривающее кодирование и декодирование пакетов двухразрядных данных, передачу их интерфейсу сети и от него, а также управление потоками и конфликтами в канале, требует высокоэффективной операционной системы реального времени и предполагает выполнение большого числа операций. Лучшими ЦОС-устройствами для выполнения функций управления доступом к среде передачи считаются УП. Таким образом, для реализации многоканальных многопротокольных SDR систем необходимо сочетать УП, DSP и FPGA [11].
Сочетание сигнального процессора и FPGA обеспечивает очень гибкое системное решение при работе в военных стандартах AFDX, ARINC и MIL-STD-853. Анализ и обработку данных выполняет процессор, в то время как ЦОС на FPGA обеспечивает их ввод/вывод. Большинству FPGA для хранения данных конфигурации прибора требуется внешняя энергонезависимая память. После включения питания эти данные загружаются в FPGA. Часто такая загрузка выполняется последовательно и занимает сотни миллисекунд. Сократить время загрузки могут микроконтроллеры, программируемые данными флеш-памяти через интерфейс стандарта RS-232. Благодаря этому плату можно модернизировать с помощью новой версии ПО без извлечения какой-либо части установленной аппаратуры. К другим достоинствам этого метода относится возможность программирования любой модификации прибора, загрузки конфигурации FPGA в параллельном режиме через процессорную шину, благодаря чему эта операция занимает значительно меньше времени, чем при последовательной загрузке. В итоге уменьшается число компонентов системы, увеличивается время наработки на отказ, уменьшаются физические размеры и значительно снижается стоимость платы. На рис.8 показан пример сочетания микроконтроллера и FPGA, включая различные системные интерфейсы платы. В конструкции использован RISC-микроконтроллер MSP430 компании Texas Instruments с чрезвычайно малой потребляемой мощностью: ток в рабочем режиме не превышает 10 мА, в неактивном режиме – ~1 мкА. Микроконтроллер содержит два асинхронных последовательных порта, восемь 12-разрядных АЦП, несколько общих устройств В/В, ШИМ и таймеры.
Приведенные оценки показателей УП, DSP и FPGA хотя и субъективны, но не носят "застывшего" характера и с течением времени будут меняться. Так, проблема повышения степени параллельной обработки DSP оперативно решается за счет развития многоядерных конструкций. Компания Texas Instruments уже выпускает двухъядерный DSP TNETV1051/1052/1053 и приступает к выпуску шестиядерной конструкции. По мнению специалистов компании, в последующие 25 лет на одном кристалле будут интегрированы сотни ядер DSP [12, 13].
Литература
1. Strauss W. High-end DSP markets compute to higher revenue. DSP-FPGA.com Product Resource Guide 2006.
2. Hori B. et al. Use a Microprocessor, a DSP, or Both? Workshop ESC-304.
3. Cavill P. FPGA or DSP for military applications? Both have their place. DSP-FPGA.com Product Resource Guide 2005.
4. Afra B., Kapadiya A. DSP or FPGA? How to choose the right device. www.dspdesignline.com/207600551?printableArticle=true
5. Milrod J. Hybrid FPGA/DSP architecture: the optimal solution. DSP-FPGA.com Product Resource Guide 2006.
6. Hill T. The benefits of FPGA coprocessing. DSP-FPGA.com Product Resource Guide 2006.
7. Banks J., Chung W. Combining the power of DSP and FPGAs to implement a high-performance H.264/AVC video coding standard. www.dsp-fpga.com/articles/banks_and chung/
8. Jentz B., Rotem J. Leveraging. FPGA coprocessors to optimize high-performance digital video surveillance systems. www.dsp-fpga.com/articles/jentz_and_rotem
9. Wang R. Encoding JPEG2000 using both DSP and FPGA. www.embedded,com/showArticle.jhtml?articleID=192202060
10. Беляев А.А., Солохина Т.В., Александров Ю.Н., Миронова Ю.В., Коплович Е.А. Программная реализация алгоритмов сжатия изображений на базе процессоров семейства "Мультикор". – Тезисы докладов научно-технической конференции "Современные телевизионные технологии. Состояние и направления развития". – M., 2006.
11. Dumas M., Belanger L. A new architecture for development platforms targeted to portable radio applications. www.dsp-fpga.com/articles/dumas_and_belanger
12. Wilson R. 100-core DSPs in our sights, TI says. Electronics Weekly 3/9/2007.
13. LaPedus M. DSP to go multicore.
www.eetimes.com/showArticle.jhtml?articleID=197801152