Назад в библиотеку

ВСТРОЕННЫЕ ПРИЛОЖЕНИЯ, ИСПОЛЬЗУЮЩИЕ ИНТЕГРИРОВАННЫЕ DSP И МИКРОПРОЦЕССОРНЫЕ ЯДРА

Автор:

Oshana R.

Переводчик:

Самсонова И.А.

Источник:

Oshana R. Embedded applications using integrated DSP and microprocessor cores. 2007, http://dsp-fpga.com/

Тенденция к использованию унифицированных микропроцессорных DSP ядер во встроенных приложениях заключается в возможности объединения обработки и алгоритмов управления сигнала, которые работают вместе для выполнения необходимых функций внутри многих встроенных систем реального времени. Поэтому очень важно понять, как взаимодействуют алгоритмы управления и цифровой сигнальный процессор (DSP). Для таких приложений, как сотовые телефоны и MP3-плееры, эта проблема традиционно решается путем разделения работы, отдавая алгоритмы управления процессорам RISC, а обработку сигналов - DSP. Например, в сотовом телефоне функции обработки сигналов могут включать подавление эха или кодирования/декодирования видео и аудио приложений. Эти алгоритмы эффективно работают на DSP, архитектура которого призвана выполнить эти алгоритмы обработки. Программное обеспечение в сотовом телефоне реализует конечные автоматы, которые контролируют пользовательский интерфейс, клавиатуру и другие функции обработки не-сигналов.

Рисунок 1

При разработке встраиваемых приложений одновременно с обработкой сигналов и функциями управления, которые должны взаимодействовать между собой, возникают несколько проблем. Например, перенос настольных или других сложных приложений во встраиваемое устройство, где ядра будут работать в режиме реального времени и с соответствующим разделением кода, может быть очень трудоемким процессом из-за существенных усилий, которые необходимо будет затратить, чтобы настроить управление синхронизацией между различными ядрами. Во многих продвинутых встроенных приложениях, например для видеообработки или обработки протоколов, трудно разделить работу на несколько ядер, и большую часть проблем должен решать программист. Например, при двух-ядерной архитектуре, которая используется в Texas Instruments TMS320C55x DSP и процессорах ARM RISC, DSP выполняет задача обработки сигнала, а ARM 9 - функции управления (см. рисунок 1).

Альтернативный подход заключается в унификации DSP и микропроцессорах на одном устройстве, что может быть достигнуто путем добавления DSP как инструкции к ядру RISC. Они могут состоять из нескольких или накапливаемых инструкций, которые могут добавляться к ядру DSP, и дополнять инстукции для выполненения специализированных адресаций. При поддержке имеющихся инструментов, эта "единая" техника имеет ряд преимуществ. Например, только одно приложение изначально будет работать в операционной системе, обеспечивая более простые методы проектирования, более легкую интеграцию и быстрее выводить продукт на рынок.

Встроенные приложения исторически предназначены для разделения функций общего назначения на микропроцессоры общего назначения или микроконтроллеры и алгоритмы обработки сигналов на DSP-ядрах. Этот подход имеет смысл по ряду причин:

  1. • DSP-ядра приспособлено для эффективного запуска алгоритмов обработки сигналов;
  2. • DSP-архитектуры имеют ряд общих характеристик, таких как параллельные вычисления, быстрые операции умножения с накоплением (MAC) и гарвардскую архитектуру, которая позволяет одновременную выборку нескольких операндов;
  3. • DSP-процессоры, как правило, не базируются на принципах проектирования RISC;
  4. • DSP-архитектура управляет приложениями, такими как видео- и голосовая обработка, полученные в результате сжатия данных и декомпрессии. Эти приложения можно найти во многих телекоммуникационных и мультимедийных приложениях;
  5. • DSP-наборы инструкций ориентированы на память и оптимизированы для выполнения алгоритмов обработки сигналов, таких как фильтры и преобразования. Для поддержки этих операций DSP содержит специальные регистры, адресные блоки, с умножением и накоплением единиц, и память на кристале.

Одна из основных задач по распределению системных функций заключается в том, что каждое ядро требует свою подсистему внешней памяти, которая потребляет много энергии. В дополнение к мощности, необходимой для борьбы с этими независимыми подсистемами памяти, часто каждое ядро контролирует свой собственный набор периферийных устройств для того, чтобы получать данные в и из рабочего ядра (это показано на рисунке 1, где и DSP, и ARM интерфейс имеют набор потенциально различных периферийных устройств и подсистем памяти). Они также потребляют много энергии и добавляют связи к общей контактной сети.

Добавление инструкций DSP к ядру RISC с интегорванным DSP-блоками в архитектуре приводит к дополнительному параллелизму и более эффективному совместному использованию ресурсов, в том числе периферийных устройств и памяти. Таким образом, алгоритмы DSP может быть выполнен быстрее за счет использования более быстрой архитектуры RISC.

Тем не менее, RISC-архитектуры основаны на принципе загрузки и хранения и существуют наборы более общих инструкций по размещению, которые могут иметь негативное влияние на производительность. Эти устройства имеют сложные алгоритмы кэширования и активно используют конвейерную систему, что приводит к более высоким частотам. Эти микропроцессоры на основе RISC были дополнены улучшенными DSP для поддержки DSP-алгоритмов, таких как умножение и накопление инструкций и специальные разделы для графики или обработки изображений.

Поскольку один процессор с интегрированным ядром RISC/DSP выполняет работу двух, нет никакой потребности в межпроцессорных связях. По сравнению с кодами контроллера, с одним интегрированным ядром возможна динамическое назначение DSP. Кроме того, эта модель обеспечивает более быстрое переключение контекста и уменьшенное количество ресурсов, потому что нет дублирования в периферии или памяти. Она также обеспечивает более интегрируемую систему, что приводит к снижению потребления энергии и другие выгодные преимущества (стоимость, производительность, и уменьшение размера), которые могут возникнуть за счет интеграции более функциональных единиц на одно устройство.

Как упоминалось ранее, есть некоторые общие черты, присущие современным процессорам DSP. К ним относятся специализированные каналы передачи данных, настроенные для операций DSP, специализированные инструкции, установленные для DSP-ориентированных операций, несколько банков памяти и шина для объединения нескольких последовательных регистров памяти и специализированных периферийных устройств для DSP.

С другой стороны, процессоры общего назначения проектируются с DSP в собственных ядрах. Чтобы увеличить возможности DSP в процессорах общего назначения используются различные подходы. Разработчики могут добавить созданную протсую инструкцию, несколько инструкций данных и расширения, например как в Pentium Multi-Media Extension (MMX), или они могут интегрировать DSP-процессор с фиксированной точкой, как каналы передачи данных для мультимедийного операнда, также как в других связанных с ресурсами существующие ядра процессора, как в процессорах Hitachi SH- DSP. Подобно ARM Ltds NEON-архитектуры, DSP-сопроцессоры могут быть добавлены к основному ядру процессора. Разработчики также могут создавать гибридные архитектуры, такие как процессор TRICORE.

Рисунок 2

Архитектуры с интегрированными DSP имеют NEON SIMD инструкции, разрешающие до 16 элементов, которые будут обрабатываться параллельно, что ускоряет медиа- и DSP-приложения. Они тесно связаны с ядром (см. рисунок 2 ), и эта интеграция обеспечивает унифицированное представление памяти, которая совмещена с ядром ARM. Это приводит к возможности использовать единого потока команд и дает единый вид для платформы, что ускоряет общую разработку приложений.

Такая архитектура будет хорошо работать для некоторых приложений, таких как 3G-сотовые телефоны. В этих случаях, система, управляющая данными DSP, может быть использована для определенной обработки, такой как кодирование видео, и ядро ARM с расширенным NEON DSP могут быть использованы для аудио- и видео-декодирования, а процесс обработки RISC может быть использован для пользовательского интерфейса и протокола обработки стека.

Архитектура TriCore (см. рисунок 3) основана на использовании MCU RISC с загрузкой и хранением и DSP-памятью. В ней используются адресные шины по 32 бита, в то время как для программируемой памяти и памяти данных на 64. Само ядро не содержит памяти, но может быть встроенно разработчиком. Суперскалярная архитектура содержит 32-разрядную шину с фиксированной точкой данных, основным и запасным блоком, а так же блоком управления программой. Это устройство может выполнять до трех инструкций за такт, необходимые для высокопроизводительных DSP-приложений. К ним относятся: инструкции данных, загрузки и хранения, или инструкции, которые определют петлю.

Это устройство также поддерживает DSP-режимы адресации, включая регистр с косвенным пред- и пост-наращиванием, индексной адресацией, круговым (по модулю) решением, и инвертированной по разрядам адресацией. Инвертирование по разрядам полезно для дешифровки входного или выходного алгоритма БПФ, что является распространенной операцией DSP. Алгоритмы с циклом добавления нуля также поддерживается.

Таким образом, ключевыми преимуществами использования интегрированного RISC/DSP процессор в режиме реального времени встроенных систем являются:

  1. • единая архитектура объединяет как особенности DSP, так и микроконтроллеров, без ущерба для производительности;
  2. • быстрое переключение задач позволяет интегрированное ядро вести себя как виртуальный процессор и очень быстро переключаться между DSP и микроконтроллерами задач, иногда за пару тактов;
  3. • большие блоки для памяти на кристале (ОЗУ, ПЗУ) приводят к более высокой производительности и более низкой мощности системы;
  4. • интегрированная архитектура обеспечивает прямое управление встроенными внешними устройствами без необходимости дополнительной объединяющей логики.

Рисунок 3