Процессоры цифровой обработки сигналов. Руководство новичка по цифровой обработке сигналов (DSP)

Данная статья открывает серию публикаций, посвященных многоядерным цифровым сигнальным процессорам TMS320C6678. В статье дается общее представление об архитектуре процессора. Статья отражает лекционно-практический материал, предлагаемый слушателям в рамках курсов повышения квалификации по программе «Многоядерные процессоры цифровой обработки сигналов C66x фирмы Texas Instruments», проводимых в Рязанском государственном радиотехническом университете.

Цифровые сигнальные процессоры TMS320C66xх строятся по архитектуре KeyStone и представляют собой высокопроизводительные многоядерные сигнальные процессоры, работающие как с фиксированной, так и с плавающей точкой. Архитектура KeyStone – это разработанный фирмой Texas Instruments принцип изготовления многоядерных систем на кристалле, позволяющий организовывать эффективную совместную работу большого числа ядер DSP- и RISC-типов, акселераторов и устройств периферии с обеспечением достаточной пропускной способности внутренних и внешних каналов пересылки данных, основой чего являются аппаратные компоненты: Multicore Navigator (контроллер обмена данными по внутренним интерфейсам), TeraNet (внутренняя шина пересылки данных), Multicore Shared Memory Controller (контроллер доступа к общей памяти) и HyperLink (интерфейс с внешними устройствами на внутрикристальной скорости).

Архитектура процессора TMS320C6678 , наиболее высокопроизводительного процессора в семействе TMS320C66xх, изображена на Рисунке 1. Архитектура может быть разбита на следующие основные компоненты:

  • набор операционных ядер (CorePack);
  • подсистема работы с общей внутренней и внешней памятью (Memory Subsystem);
  • периферийные устройства;
  • сетевой сопроцессор (Network Coprocessor);
  • контроллер внутренних пересылок (Multicore Navigator);
  • служебные аппаратные модули и внутренняя шина TeraNet.

Рисунок 1. Общая архитектура процессора TMS320C6678

Процессор TMS320C6678 работает на тактовой частоте 1.25 ГГц. В основе функционирования процессора лежит набор операционных ядер С66х CorePack, количество и состав которых зависят от конкретной модели процессора. ЦСП TMS320C6678 включает в свой состав 8 ядер DSP-типа. Ядро является базовым вычислительным элементом и включает в свой состав вычислительные блоки, наборы регистров, программный автомат, память программ и данных. Память, входящая в состав ядра, называется локальной.

Кроме локальной памяти, есть память общая для всех ядер – общая память многоядерного процессора (Multicore Shared Memory – MSM). Доступ к общей памяти осуществляется через подсистему управления памятью (Memory Subsystem), которая также включает интерфейс внешней памяти EMIF для обмена данными между процессором и внешними микросхемами памяти.

Сетевой сопроцессор повышает эффективность работы процессора в составе различного рода телекоммуникационных устройств, реализуя аппаратно типовые для данной сферы задачи обработки данных. В основе работы сопроцессора лежат акселератор пакетной передачи данных (Packet Accelerator) и акселератор защиты информации (Security Accelerator). В спецификации на процессор перечислен набор протоколов и стандартов, поддерживаемых данными акселераторами.

Периферийные устройства включают:

  • Serial RapidIO (SRIO) версии 2.1 – обеспечивает скорость передачи данных до 5 GBaud на линию при числе линий (каналов) – до 4;
  • PCI Express (PCIe) версии Gen2 – обеспечивает скорость передачи данных до 5 GBaud на линию при числе линий (каналов) – до 2;
  • HyperLink – интерфейс внутренней шины, позволяющий коммутировать процессоры, построенные по архитектуре KeyStone, напрямую друг с другом и осуществлять обмен на внутрикристальной скорости; скорость передачи данных – до 50 Gbaud;
  • Gigabit Ethernet (GbE) обеспечивает скорости передачи: 10/100/1000 Mbps и поддерживается аппаратным акселератором сетевых коммуникаций (сетевым сопроцессором);
  • EMIF DDR3 – интерфейс внешней памяти типа DDR3; имеет разрядность шины 64 бита, обеспечивающую адресуемое пространство памяти до 8 Гбайт;
  • EMIF – интерфейс внешней памяти общего назначения; имеет разрядность шины 16 бит и может использоваться для подключения 256MB NAND Flash или 16MB NOR Flash;
  • TSIP (Telecom Serial Ports) – телекоммуникационный последовательный порт; обеспечивает скорости передачи до 8 Mбит/с на одну линию при числе линий – до 8;
  • UART – универсальный асинхронный последовательный порт;
  • I2C – шина внутренней связи;
  • GPIO – ввод-вывод общего назначения – 16 выводов;
  • SPI – универсальный последовательной интерфейс;
  • Таймеры (Timers) – используются для генерации периодических событий.
Служебные аппаратные модули включают в себя:
  • модуль отладки и трассировки (Debug and Trace) – позволяет получать отладочным инструментальным средствам доступ к внутренним ресурсам работающего процессора;
  • загрузочное ПЗУ (boot ROM) – хранит программу начальной загрузки;
  • аппаратный семафор (semaphore) – служит для аппаратной поддержки организации совместного доступа параллельных процессов к общим ресурсам процессора;
  • модуль управления питанием – реализует динамическое управление режимами питания компонентов процессора с целью минимизации энергозатрат в моменты, когда процессор работает не в полную мощь;
  • схема ФАПЧ – формирует внутренние тактовые частоты процессора из внешнего опорного тактирующего сигнала;
  • контроллер прямого доступа в память (EDMA) – управляет процессом пересылки данных, разгружая операционные ядра ЦСП и являясь альтернативой Multicore Navigator.
Контроллер внутренних пересылок (Multicore Navigator) представляет собой мощный и эффективный аппаратный модуль, отвечающий за арбитраж передачи данных между различными компонентами процессора. Многоядерные системы на кристалле TMS320C66xx являются весьма сложными устройствами и, чтобы организовать обмен информацией между всеми компонентами такого устройства, необходим специальный аппаратный блок. Multicore Navigator позволяет ядрам, периферийным устройствам, хост-устройствам не брать на себя функции управления обменом данными. Когда какому-либо компоненту процессора необходимо переслать массив данных на другой компонент, он просто указывает контроллеру, что и куда нужно передать. Все функции по самой пересылке и синхронизации отправителя и получателя берет на себя Multicore Navigator.

Основой функционирования многоядерного процессора TMS320C66xх с позиции высокоскоростного обмена данными между всеми многочисленными компонентами процессора, а также внешними модулями, служит внутренняя шина TeraNet.

В следующей статье будет подробно рассмотрена архитектура операционного ядра C66x.

1. Multicore Programming Guide / SPRAB27B - August 2012;
2. TMS320C6678 Multicore Fixed and Floating-Point Digital Signal Processor Data Manual / SPRS691C - February 2012.

Что такое DSP?

Цифровые сигнальные процессоры (DSP, Digital Signal Processors) принимают на вход предварительно оцифрованные физические сигналы, например, звук, видеоизображение, показания температуры, давления и положения, и производят над ними математические манипуляции. Внутренняя структура цифровых сигнальных процессоров специально разрабатывается таким образом, чтобы они могли очень быстро выполнять такие математические функции, как “сложение”, “вычитание”, “умножение” и “деление”.

Сигналы необходимо обработать так, чтобы информация, которую они содержат, могла быть отображена графически, проанализирована или преобразована в полезный сигнал иного типа. В реальном мире обнаружение сигналов, соответствующих физическим явлениям, таким как звук, свет, температура или давление, и манипуляции ими осуществляется аналоговыми компонентами. Затем, аналого-цифровой преобразователь берет реальный сигнал и преобразовывает его в цифровой формат в виде последовательности нулей и единиц. На данном этапе в процесс вступает цифровой сигнальный процессор, который осуществляет сбор оцифрованной информации и ее обработку. Далее он выдает оцифрованную информацию обратно в реальный мир для дальнейшего использования. Выдача информации осуществляется одним из двух способов - в цифровом или в аналоговом формате. Во втором случае оцифрованный сигнал пропускается через цифро-аналоговый преобразователь. Все эти действия выполняются на очень высокой скорости.

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

Информация, формируемая цифровым сигнальным процессором, может быть использована компьютером, например, для управления системами безопасности, телефонами, домашними кинотеатрами или сжатием видеоизображений. Сигналы могут подвергаться сжатию (компрессии) для более быстрой и эффективной передачи из одного места в другое (например, в системах телеконференций для передачи речи и видеоизображений по телефонным линиям). Сигналы также могут подвергаться дополнительной обработке для повышения их качества или предоставления информации, которая изначально недоступна для восприятия человеком (например, в задачах эхокомпенсации в мобильных телефонах или компьютерного улучшения качества изображений). Физические сигналы могут обрабатываться и в аналоговой форме, однако цифровая обработка обеспечивает повышенное качество и быстродействие.

Поскольку цифровой сигнальный процессор является программируемым, он может быть использован в самых разнообразных задачах. При создании проекта вы можете написать собственное программное обеспечение или использовать программное обеспечение, обеспечиваемое компанией Analog Devices или сторонними компаниями.

Более подробную информацию о преимуществах применения цифровых сигнальных процессоров при обработке сигналов реального мира вы можете найти, прочитав первую часть статьи Цифровая обработка сигналов 101 - Вводный курс в проектирование систем цифровой обработки сигналов, которая называется “Зачем нужен цифровой сигнальный процессор?”


Что находится внутри цифрового сигнального процессора (DSP)?

Цифровой сигнальный процессор включает в себя следующие ключевые компоненты:

  • Память программ: Содержит программы, которые цифровой сигнальный процессор использует для обработки данных
  • Память данных: Содержит информацию, которую необходимо обрабатывать
  • Вычислительное ядро: Выполняет математическую обработку, обращаясь к программе, содержащейся в памяти программ, и данным, содержащимся в памяти данных
  • Подсистема ввода/вывода: Осуществляет спектр функций для интерфейса с внешним миром

Для получения подробной информации о процессорах и прецизионных аналоговых микроконтроллерах компании Analog Devices мы предлагаем вам ознакомиться со следующими ресурсами:

Цифровая обработка сигналов - это сложный предмет, и он способен ошеломить даже наиболее опытных профессионалов в области цифровых сигнальных процессоров. Здесь мы дали лишь краткий обзор, но компания Analog Devices также предлагает дополнительные ресурсы, содержащие более подробную информацию о цифровой обработке сигналов:

  • - обзор технологий и вопросы практического применения
  • Серия статей в журнале Analog Dialogue: (на англ.яз.)
    • Часть 1: Зачем нужен цифровой сигнальный процессор? Архитектуры цифровых сигнальных процессоров и преимущества цифровой обработки сигналов перед традиционными аналоговыми схемами
    • Часть 2: Узнайте больше о цифровых фильтрах
    • Часть 3: Реализация алгоритмов на аппаратной платформе
    • Часть 4: Вопросы программирования для поддержки ввода/вывода в реальном времени
  • : Часто используемые слова и их значение

Практические занятия по цифровым сигнальным процессорам являются быстрым и эффективным способом ознакомиться с применением цифровых сигнальных процессоров компании Analog Devices. Они позволят вам овладеть уверенными практическими навыками работы с цифровыми сигнальными процессорами Analog Devices через курс лекций и практических упражнений. Расписание и информацию о регистрации вы можете найти на странице Обучение и разработка.

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

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

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

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

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

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

Таблица 1. Основные производители DSP и принадлежащие им доли рынка

Компании-лидеры рынка Company Name Доля рынка DSP
1 Texas Instruments 54,3%
2 Freescale Semiconductor 14,1%
3 Analog Devices 8,0%
4 Philips Semiconductors 7,5%
5 Agere Systems 7,3%
6 Toshiba 4,9%
7 DSP Group 2,2%
8 NEC Electronics 0,6%
9 Fujitsu 0,4%
10 Intersil 0,3%
Other Companies 0,5%
Total 100,0%

Следует помнить, что производители DSP, проектируя новые микросхемы, достаточно четко позиционируют их для использования в тех или иных приложениях. Это оказывает влияние и на их архитектуру, и на быстродействие, и на оснащение процессора тем или иным набором периферийных модулей. В таблице 2 показано позиционирование DSP с точки зрения их создателей.

Таблица 2. Области применения семейств сигнальных процессоров разных производителей

Обработка видео, видеонаблюдение, цифровые камеры, 3D графика TMS320DM64x/DaVinci, TMS320C64xx, TMS320C62xx (TI), PNX1300, PNX1500, PNX1700 (Philips) , MPC52xx (Freescale)
Обработка аудио, распознавание речи, синтез звука TMS320C62xx, TMS320C67xx (TI), SHARC (Analog Devices)
Портативные медиа устройства TMS320C54xx, TMS320C55xx (TI), Blackfin (Analog Devices)
Беспроводная связь, телекоммуникации, модемы, сетевые устройства TMS320C64xx, TMS320C54xx, TMS320C55xx (TI), MPC7xxx, MPC86xx, MPC8xx PowerQUICC I, MPC82xx PowerQUICC II, MPC83xx PowerQUICC II Pro, MPC85xx PowerQUICC III (Freescale), Blackfin, TigerSHARC (Analog Devices), PNX1300 (Philips)
Управление приводами, преобразование мощности, автомобильная электроника, предметы домашнего обихода, офисное оборудование TMS320C28xx, TMS320C24xx (TI), ADSP-21xx (Analog Devices), MPC55xx, MPC55xx (Freescale)
Медицина, биометрия, измерительные системы TMS320C62xx, TMS320C67xx, TMS320C55xx, TMS320C28xx (TI), TigerSHARC, SHARC (Analog Devices)

Формат данных и разрядность

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

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

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

Конечно, можно эмулировать операции с плавающей точкой и на процессоре с целочисленной арифметикой или перейти к обработке чисел удвоенной разрядности, однако это также значительно усложняет программу и значительно снижает быстродействие.

Несмотря на все ограничения, большинство встроенных приложений используют процессоры с фиксированной точкой из-за меньшей цены и энергопотребления. Увеличение количества разрядов повышает стоимость, размер кристалла и число необходимых выводов процессора, а также необходимый объем внешней памяти. Поэтому разработчики стремятся использовать кристалл с минимально возможной разрядностью.

Стоит заметить, что разрядность данных и разрядность команд процессоров не всегда эквивалентны.

Скорость

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

Однако проблема сравнения скорости различных DSP состоит в том, что процессоры имеют различные системы команд, и для выполнения одного и того же алгоритма разными процессорами требуется разное число этих команд. Кроме того, иногда для выполнения различных команд одним процессором требуется различное количество тактов синхронизации. В результате процессор со скоростью 1000 MIPS вполне может оказаться в разы медленнее процессора со скоростью 300 MIPS, особенно при различной их разрядности.

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

Наиболее точной является оценка скорости исполнения определенных алгоритмов - например, КИХ- и БИХ-фильтрации, однако это требует разработки соответствующих программ и тщательного анализа результатов тестирования.

Существуют компании, занимающиеся анализом и сравнением процессоров по основным характеристикам, в том числе и по скорости. Лидером среди таких компаний является BDTI - Berkeley Design Technology, Inc. (www.bdti.com). В качестве примера на рисунке 1 показано сравнение по скорости современных DSP разных производителей.

Рис. 1. Пример сравнения быстродействия различных DSP с фиксированной точкой

Организация памяти

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

Необходимый объем памяти определяется приложением. Необходимо учитывать, что встроенная в процессор память обычно имеет значительно большую скорость работы, чем внешняя, однако увеличение ее объема увеличивает стоимость и энергопотребление DSP, а ограниченный объем памяти программ не позволяет хранить сложные алгоритмы. В то же время при достаточности этого объема для ваших целей наличие встроенной памяти позволяет значительно упростить конструкцию в целом и понизить ее размеры, энергопотребление и стоимость.

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

В то же время DSP с плавающей точкой обычно предполагают работу с большими массивами данных и сложными алгоритмами и имеют либо встроенную память большого объема, либо большую разрядность адресных шин для подключение внешней памяти (а иногда и то, и другое). Еще раз подчеркнем - выбор типа и объема памяти должен быть результатом тщательного анализа приложения, в котором используется DSP.

Удобство разработки приложений

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

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

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

Наилучшие результаты получаются при компиляции программ на ЯВУ для VLIW-процессоров (процессорах со сверхдлинным словом команды) с простой ортогональной RISC-системой команд и большими регистровыми файлами. Однако даже для этих процессоров генерируемый компилятором код получается более медленным по сравнению с оптимизированным вручную ассемблерным. С другой стороны, возможность сначала смоделировать процесс обработки сигнала в программе типа MathLab с дальнейшей автоматической трансляцией его в программу для DSP позволяет избавиться от множества серьезных ошибок еще на начальном этапе разработки.

Отладку готовых программ можно производить либо на аппаратном эмуляторе готовой системы, либо на программном симуляторе. Обычно отладка на симуляторе несколько проще с точки зрения используемой аппаратуры, однако она не позволяет выявить все возможные ошибки. Почти все производители обеспечивают разработчиков и симуляторами, и эмуляторами своих DSP. Почти все современные DSP поддерживают внутрисхемную эмуляцию в соответствии со стандартом IEEE 1149.1 JTAG. При использовании технологии JTAG мы переходим от эмуляции процессора внешним устройством к непосредственному контролю над процессором при выполнении программы, что позволяет значительно увеличить степень соответствия макета реальному устройству и, следовательно, повысить надежность процесса отладки.

Помимо эмуляторов, производители предлагают широкий набор так называемых «стартер-китов» и «оценочных модулей», с помощью которых можно сразу приступить к разработке приложения, не дожидаясь изготовления макета разрабатываемого устройства. Кроме этого, в некоторых приложениях эти средства разработки можно использовать как конечные устройства.

Энергопотребление

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

Оценка потребления мощности является не простой задачей, так как эта величина варьируется в зависимости от выполняемых процессором задач. К сожалению, большинство производителей публикуют только «типичное» и «максимальное» потребление, а что понимается под этими определениями, не всегда ясно. Исключением является компания Texas Instruments, которая указывает потребление мощности в зависимости от типа команды и конфигурации процессора.

Стоимость

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

Методология выбора процессора

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

Например, для реализации приложения для нас в первую очередь важны скорость, цена, эффективность работы памяти и энергопотребление. Мы определили основных претендентов, среди которых DSP с ядром C64x и C64x+ от Texas Instruments и TigerSHARC от Analog Devices. На рисунке 2 показан граф сравнительных характеристик этих процессоров по критериям скорости, стоимости, энергопотребления и удобству средств разработки.


Рис. 2. Диаграмма для выбора DSP

Теперь приоритеты. Если нам в первую очередь необходима высокая скорость и низкая цена, мы выбираем Texas Instruments. Если мы конструируем мобильное устройство и нам нужно низкое энергопотребление, причем мы готовы пожертвовать скоростью, берем Analog Devices. Не исключена вероятность того, что выбранные процессоры окажутся очень близки по ключевым параметрам. В этом случае выбор будет определяться некритичными характеристиками: доступностью средств отладки, предыдущим опытом разработчика, доступностью компонентов и т.д.

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

Литература

  1. Jeff Bier, Choosing a Processor: Benchmarks and Beyond (S043), Berkeley, California: Berkeley Design Technology, Inc., USA, 2006.
  2. Choosing a DSP Processor, Berkeley, California: Berkeley Design Technology, Inc., USA, 2000.

Сегодня уже забылись популярные в середине восьмидесятых годов среди электронщиков разговоры о степени отставания советской электроники от западной. Тогда судили о степени развития электроники по развитию процессоров к персональным компьютерам. "Железный занавес" делал свое дело, мы тогда даже не могли представить, что советская электроника отстала от западной не на год или два, а навсегда.

Простые советские инженеры, не допущенные на крупнейшие мировые профессиональные семинары по электронике и не посвященные в тайны, разведанные КГБ, могли судить о развитии электроники по программе "Время" и по голливудским фильмам десятилетней давности. После восторгов об электронных штучках Джеймсов Бондов делалось заключение, что: все это спецэффекты кинематографа; все создано на специализированных микропроцессорах (никогда не уточнялось, на каких); и что "у нас, где надо и у кого надо есть вещи и покруче". После таких глубокомысленных выводов советские инженеры с новым творческим порывом в своих НИИ продолжали создавать шедевры на 155-х ТТЛ-микросхемах, или, самые приближенные к военно-промышленному комплексу, на 133-й серии.

К своему стыду, должен признаться, что я также, примерно до середины девяностых годов, подразумевал, что специализированные процессоры - нечто совершенно сложное и невообразимое. Но, к счастью, времена изменились, и первыми специализированными процессорами, с которыми мне довелось познакомиться, стали процессоры цифровой обработки сигналов или сигнальные процессоры (ЦСП, DSP - Digital Signal Processor).

Сигнальные процессоры появились как следствие развития цифровых технологий, которые все шире внедрялись в традиционные "аналоговые" приложения: радио- и проводная связь, видео- и аудиотехника, измерительные и бытовые приборы. Создания специализированных процессоров для обработки сигналов требовали и чисто цифровые устройства: модемы, дисковые накопители, системы обработки данных и т.д. Главная отличительная черта ЦСП от обычных микропроцессоров - максимальная приспособленность к решению задач цифровой обработки сигналов. Это именно "специализированные" контроллеры, специализация которых заключается в такой архитектуре и системе команд, которые позволяли бы оптимально выполнять операции преобразования и фильтрации сигналов в режиме реального времени. У обычных микроконтроллеров команды, выполняющие такие операции, или вообще не предусмотрены, или их работа весьма медленна, что не дает возможности их использования в критичных по скорости процессах. Поэтому применение традиционных микропроцессоров вело, с одной стороны, к неоправданному усложнению и удорожанию схемного решения устройства, с другой - к неэффективному, однобокому использованию возможностей контроллера. ЦСП были призваны решить это противоречие и прекрасно со своей задачей справились.

Сигнальные процессоры появились в начале 80-х годов. Первым широко известным сигнальным процессором стал выпущенный в 1982 году фирмой Texas Instruments ЦСП TMS32010, с производительностью в несколько MIPS (миллионов инструкций в секунду), созданный по 1,2 мкм технологии. Вслед за Texas Instruments ЦСП стали выпускать и другие фирмы. В настоящее время Texas Instruments является лидером по производству ЦСП, ей принадлежит около половины рынка этих контроллеров. Вторым по величине производителем ЦСП является компания Lucent Technologies, которая производит около трети этих устройств. Замыкают четверку лидеров Analog Devices и Motorola, имеющие примерно равную долю рынка и выпускающие вместе примерно четверть всех ЦСП. На долю остальных производителей, хотя среди них находятся такие известные фирмы, как Samsung, Zilog, Atmel и другие, приходятся оставшиеся 5-6 процентов рынка сигнальных процессоров.

Понятно, что законодателями мод среди производителей являются компании-лидеры в этой области и, в первую очередь Texas Instruments. Политика компаний лидеров при производстве и продвижении сигнальных процессоров существенно разнится.

Texas Instruments ставит задачу производства максимально широкого ассортимента, способного перекрыть все возможные применения процессоров при все большей производительности. В настоящее время производительность сигнальных процессоров достигает до 8800 MIPS, и производятся они по технологии от 0,65 мкм до 0,1 мкм. Тактовая частота достигает 1,1 ГГц.

Lucent Technologies ориентируется на крупных производителей конечного оборудования и предлагает свою продукцию через дистрибьюторскую сеть, не прибегая к широкой рекламной компании. Фирма специализируется на ЦСП для телекоммуникационного оборудования, в частности, в таком перспективном в настоящее время направлении, как создание станций сотовой связи.

Analog Devices, напротив, ведет активную маркетинговую политику и рекламную компанию, о чем свидетельствует хотя бы аббревиатура в названии ЦСП этой фирмы SHARK и Tiger SHARK (акула и тигровая акула). В технической области процессоры этой фирмы оптимизированы по энергопотреблению и для построения многопроцессорных систем.

Motorola распространяет свои процессоры, широко используя собственную разветвленную дистрибьюторскую сеть. В архитектуре ЦСП Motorola первой пошла по пути создания на одном кристалле одновременно сигнального процессора и классического микроконтроллера, которые работают как одна система, что значительно облегчает жизнь разработчикам оборудования, упрощая схемное решение.

Архитектура и технологии изготовления ЦСП уже разработаны достаточно хорошо, однако требования устойчивости работы и точности вычислений ЦСП приводят к тому, что не удается избавиться от высокой сложности функциональных устройств, выполняющих обработку данных (особенно в формате с плавающей точкой), что не позволяет существенно снизить издержки при производстве процессоров. Стоимость ЦСП может колебаться от 2 до 180 и более долларов за единицу.

Характеристики ЦСП-процессоров

Отличительными особенностями характеристик сигнальных процессоров являются высокоскоростная арифметика, передача и получение данных в реальном времени и архитектура памяти с множественным доступом.

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

Главным достоинством и отличием между ЦСП и универсальными микропроцессорами является то, что процессор взаимодействует со многими источниками данных в реальном мире. Процессор может получать и передавать данные в реальном времени, не прерывая при этом выполнение внутренних математических операций. Для этих целей непосредственно в чип встраивают аналогоцифровые и цифро-аналоговые преобразователи, генераторы, декодеры и другие устройства непосредственного "общения" с внешним миром.

Построение памяти с множественным доступом достигается, в основном, за счет применения Гарвардской архитектуры. Под Гарвардской архитектурой понимается такая архитектура, которая имеет две физически разделенные шины данных, что позволяет осуществить два доступа к памяти одновременно. Но для выполнения DSP-операций только этого недостаточно, особенно при использовании в команде двух операндов. Поэтому Гарвардская архитектура добавляется еще кэш-памятью, для хранения тех инструкций, которые будут использоваться вновь. При использовании кэш-памяти шина адреса и шина данных остаются свободными, что делает возможным выборку двух операндов. Такое расширение - Гарвардская архитектура плюс кэш - называют расширенной Гарвардской архитектурой или SHARC (Super Harvard ARChitecture).

Конкретные характеристики ЦСП рассмотрим на семействе DSP568xx компании Motorola, в которых совмещены особенности цифровых сигнальных процессоров и универсальных микроконтроллеров.

Ядро DSP56800 является программируемым 16-разрядным КМОП-процессором, предназначенным для выполнения цифровой обработки сигналов в реальном масштабе времени и решения вычислительных задач, и состоит из четырех функциональных устройств: управления, генерации адресов, АЛУ, обработки битов. Для увеличения производительности операции в устройствах выполняются параллельно. Каждое из устройств может функционировать независимо и одновременно с тремя другими, т.к. имеет свой набор регистров и логику управления. Ядро реализует одновременное выполнение нескольких действий: устройство управления выбирает первую команду, устройство генерации адресов формирует их адреса второй команды, а АЛУ выполняет умножение третьей команды. Широко используются совмещенные передачи и выполнение операций.

Встроенная память может содержать (для семейства):

Флэш-память программ до 60К

Флэш-память данных до 8К

ОЗУ-программ до 2К

ОЗУ-данных до 4К

Флэш-память программы загрузки 2К

На микрочипах семейства реализовано большое количество периферийных устройств: ШИМ-генераторы, 12-разрядные АЦП с одновременной выборкой, квадратурные декодеры, четырехканальные таймеры, контроллеры CAN-интерфейса, двухпроводные последовательные коммуникационные интерфейсы, последовательные интерфейсы, программируемый генератор с ФАПЧ для формирования тактовой частоты ядра DSP и др.

Общие характеристики

Производительность 40 MIPS при тактовой частоте 80 МГц и напряжении питания 2.7:3.6 В;

Однотактный параллельный 16х16 умножитель-сумматор;

Два 36-разрядных аккумулятора, включая биты расширения;

Однотактное 16-разрядное устройство циклического сдвига;

Аппаратная реализация команд DO и REP;

Три внутренние 16-разрядные шины данных и три 16-разрядные шины адреса;

Одна 16-разрядная шина внешнего интерфейса;

Стек подпрограмм и прерываний, не имеющий ограничения по глубине.

Микросхемы семейства DSP568хх предназначены для применения в недорогих устройствах, бытовой технике, для которой необходима низкая стоимость и не требуются сверхвысокие параметры: проводные и беспроводные модемы, системы беспроводной передачи цифровых сообщений, цифровые телефонные автоответчики, цифровые камеры, специализированные и многоцелевые контроллеры, устройства управления серводвигателями и электродвигателями переменного тока.

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

Насколько неожиданными могут быть применения сигнальных процессоров, мне пришлось не так давно убедиться именно на примере игрушки. Однажды ко мне обратился знакомый и попросил починить говорящую куклу, которую подарили его дочери немецкие знакомые. Кукла, и правда, была замечательной, по словам знакомого, она понимала до полусотни фраз и "сознательно" поддерживала разговор. В Германии стоила сто пятьдесят марок, что навело меня на размышления, что о поломке куклы более жалеют родители, чем их чадо. Дочурка и так любила куклу, тем более что до того как стать немой, та разговаривала на немецком языке. Без всякой надежды на успех взялся я за ремонт этой куклы. Напильником спилил эпоксидную смолу, которой была залита схема и, под толстым-толстым слоем эпоксидки, обнаружил полдесятка корпусов микросхем, центральным из которых был ЦСП к DSP56F... последние цифры, к сожалению, безвозвратно стерлись. Заставить куклу заговорить так и не удалось, и насколько добавлял ей интеллекта сигнальный процессор, я, увы, так и не определил. Как потом оказалось, старший сын моих знакомых, чтобы заставить куклу кричать погромче, вначале подсоединял к ней напряжение вместо 3 в, 4,5 вольта, что было еще не "смертельно", и игрушка хоть и хрипела, но орала, ну а после 220в... . Отсюда первый вывод - высокие технологии хороши, но не всегда и не везде. Вывод второй - вскоре, возможно, ЦСП мы сможем увидеть в кухонной посуде, обуви и одежде, по крайней мере, технических препятствий к тому нет.