Цифровые процессоры обработки сигналов (Лекция). Процессор цифровой обработки сигналов

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

Любой современный компьютер оснащен центральным процессором и только немногие - процессором цифровой обработки сигналов (DSP - digital signal processor). Центральный процессор, очевидно, представляет собой цифровую систему и обрабатывает цифровые данные, поэтому на первый взгляд неясна разница между цифровыми данными и цифровыми сигналами, то есть теми сигналами, которые обрабатывает DSP-процессор.

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

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

Вариации на тему

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

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

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

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

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

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

Зачем нужны DSP-процессоры?

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

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

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

Внутри DSP

Приведенная здесь диаграмма иллюстрирует строение ядра процессора Motorola DSP 5680x. Раздельные внутренние шины команд, данных и адресов способствуют резкому повышению пропускной способности вычислительной системы. Наличие вторичной шины данных позволяет арифметическому устройству считать два значения, перемножить их и выполнить операцию накопления результата за один такт процессора.

Данная статья открывает серию публикаций, посвященных многоядерным цифровым сигнальным процессорам 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.

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

В начало

Цифровые процессоры обработки сигналов (Лекция)

ПЛАН ЛЕКЦИИ

1. Общая структура цифровой обработки сигналов

2. Структура процессоров цифровой обработки сигналов

3. Основные показатели процессоров цифровой обработки сигналов

4. Основные производители сигнальных процессоров

5. Аппаратная реализация

1. Общая структура цифровой обработки сигналов

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

Схема цифровой обработки аналоговых сигналов.

Кодер формирует последовательность чисел, соответствующую обрабатываемому аналоговому сигналу.

Декодер по принятому сигналу формирует аналоговый сигнал, то есть производит преобразования, обратные происходившим в кодере.

На вход системы поступает ограниченный по длительности сигнал x (t ). В силу конечной длительности сигнала его спектр бесконечен.

Аналого-цифровое преобразование осуществляется в два этапа: дискретизации по времени и квантования по уровню.

Дискретизация – это процедура взятия мгновенных значений сигнала x (t ) через равные промежутки времени Т. Мгновенные значения x (n Т) называются выборками, время Т – период дискретизации, а n - указывает порядковый номер отсчета. Чем чаще брать отсчеты, тем меньше период дискретизации Т, тем точнее последовательность отсчетов x (n Т) будет изображать исходный сигнал x (t ).

Период дискретизации Т определяет частоту дискретизации:

f д =;Т =

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

Однако существует ограничениена минимальное значение f д : для полного восстановления сигнала по его отсчетам x (n Т) нужно, чтобы частота дискретизации f д была, как минимум, в два раза больше наивысшей частоты F в в спектре передаваемого сигнала x (t ).

f д 2F в; Т ≤

Отсюда следует, что при бесконечном спектре, когда F → ∞, дискретизация невозможна.

Тем не менее, в спектре любого конечного сигнала есть такие высшие составляющие, которые, начиная с некоторой верхней частоты f в, имеют незначительные амплитуды, и потому ими можно пренебречь без заметного искажения самого сигнала. Значение f в определяется конкретным типом сигнала и решаемой задачей. Например: для стандартного телефонного сигнала f в = 3,4 кГц, минимальная стандартная частота его дискретизации f д = 8 кГц. Ограничение спектра до частоты F = f в осуществляется фильтром нижних частот ФНЧ.

Квантование отсчетов по уровням (квантование) – производится с целью формирования последовательности чисел: весь диапазон изменения величины отсчетов разбивается на некоторое количество дискретных уровней, и каждому отсчету по определенному правилу присваивается значение одного из двух ближайших уровней квантования, между которыми оказывается данный отсчет. В результате получается последовательность чисел x (n Т) = x (n ), представляемых в двоичном коде. Количество уровней определяется разрядностью АЦП. Например: Если разрядность АЦП = 3, то всего можно иметь к = 2 3 = 8 уровней квантования, а минимальное значение отсчета равно 0 (000), а максимальное значение отсчета равно 7 (111). Ясно, что квантованный отсчет отличается от выборки x (n Т). Это отличие выражается ошибкой квантования:

,

которая тем больше, чем меньше разрядность АЦП.

После АЦП последовательность x (n Т) = x (n ) поступает на сигнальный процессор (СП), который по заданному алгоритму каждому отсчету x (n ) ставит в однозначное соответствие выходной отсчет y (n Т) = y (n ).

Количество операций (умножений, сложений и т.д.) для получения одного отсчета может исчисляться тысячами, поэтому сигнальный процессор должен работать на более высокой частоте F г, чтобы успеть произвести все необходимые действия до поступления очередного отсчета x (n ), то есть какой бы сложности не был алгоритм, время переработки t пер не должно превышать периода дискретизации T :

t пер ≤ T

Но это может быть обеспечено лишь в случае, когда тактовая частота f T вычислителя существенно превышает частоту дискретизации f д :

f д << f T

Именно при этих условиях возможна работа вычислителя в реальном времени, то есть в темпе поступления входных отсчетов.

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

Основные задачи (алгоритмы) сигнальных процессоров:

1.)Цифровая фильтрация

Цифровая фильтрация – это селекция по частоте, то есть какие то частоты пропускать, а какие то нет. За цифровой фильтрацией стоит Z- преобразование, свертка.

2.) Спектроскопи

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

3.) Идентификация сигналов

Идентификация сигналов – это выделение сигналов на фоне частот и помех для того, чтобы удостовериться, что это сигнал, а не помеха. Здесь производится корреляционный анализ.

Корреляция – это степень совпадения двух функций.

4.) Модуляция и демодуляция.

За модуляцией и демодуляцией стоит аппаратное, математическое преобразование Гильберта.

Пример: демодуляция однополосного сигнала, который получается выделением одной из боковых полос амплитудно-модулированного сигнала. Результатом демодуляции является низкочастотный сигнал, представляющий собой огибающую узкополосного сигнала. Демодулированный сигнал x (n ) можно представить в комплексном виде:

;;, где

Мнимый сигнал;

x ( n ) – вещественный сигнал;

s ( n ) – огибающая сигнала x (n ).

Из формул видно, что x (n ) инаходятся в квадратуре относительно друг друга, то есть их фазы отличаются на π /2. Следовательно, необходимо иметь фазовращатель на π /2. Такие сигналы называются сопряженными по Гильберту, а устройство, формирующее пару сопряженных сигналов, называется цифровым преобразователем Гильберта (ЦПГ), который позволяет организовать вычисление огибающей s (n ) сигнала x (n ).

5) Сжатие, растяжение, перенос спектра

За сжатием, растяжением, переносом спектра стоит то же самое преобразование Гильберта. Считаются одним из модификаций модуляции и демодуляции.

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

, где n = 0, 1, 2, … , N -1

x ( n ) – отсчеты воздействия;

y ( n ) – отсчеты реакции;

b к - вещественные коэффициенты, полностью определяющие свойства цифровых фильтров;

x ( n -к) - отсчеты воздействия, задержанные на к периодов дискретизации T .

Фильтр, описываемый данным выражением, называется нерекурсивным , или КИХ-фильтром (фильтром с конечной импульсной характеристикой).

Пример : Нужно сделать дискретизацию за определенное время, а не вообще. Пусть частота дискретизации f д = 48 кГц (округлим до 50 кГц). Нужно сделать дискретизацию за 20 мкс. Возьмем N = 5 и распишем формулу:

y 0 = b 0 x ( 0 - 0) + b 1 x (0 - 1) + b 2 x (0 - 2) + b 3 x (0 - 3) + b 4 x (0 - 4) = b 0 x 0 + b 1 x - 1 + b 2 x - 2 + b 3 x - 3 + b 4 x – 4

y 1 = b 0 x ( 1 - 0) + b 1 x (1 - 1) + b 2 x (1 - 2) + b 3 x (1 - 3) + b 4 x (1 - 4) = b 0 x 1 + b 1 x 0 + b 2 x - 1 + b 3 x - 2 + b 4 x – 3

y 2 = b 0 x ( 2 - 0) + b 1 x (2 - 1) + b 2 x (2 - 2) + b 3 x (2 - 3) + b 4 x (2 - 4) = b 0 x 2 + b 1 x 1 + b 2 x 0 + b 3 x - 1 + b 4 x – 2

y 3 = b 0 x ( 3 - 0) + b 1 x (3 - 1) + b 2 x (3 - 2) + b 3 x (3 - 3) + b 4 x (3 - 4) = b 0 x 3 + b 1 x 2 + b 2 x 1 + b 3 x 0 + b 4 x – 1

y 4 = b 0 x ( 4 - 0) + b 1 x (4 - 1) + b 2 x (4 - 2) + b 3 x (4 - 3) + b 4 x (4 - 4) = b 0 x 4 + b 1 x 3 + b 2 x 2 + b 3 x 1 + b 4 x 0

y 5 = записывается как y 0.

Примечание: x 0 – это отсчет показания АЦП в данный момент времени. Если отсчет показания АЦП с отрицательным знаком, то это означает, что отсчет – предшествующий. Для вычисления y 0 нужно использовать текущее показание АЦП и четыре предшествующих ему показаний, а для вычисления y 1 нужно использовать x 1 и четыре предшествующих ему показаний и т.д.

2. Структура процессоров цифровой обработки сигналов

Базовой операцией цифровой обработки сигналов является операция умножения и добавление (накопление) результата умножения. Устройство комбинированного сложения и умножения часто обозначают при описаниях мнемоникой МАС (Multiplier-Adder Combination ).Для того чтобы работать с высокой производительностью, процессор должен выполнять операцию МАС за один цикл (такт) работы процессора. Это должно выполняться аппаратно, а не программно. Отсчеты сигнала, коэффициенты фильтра и команды программы хранятся в памяти. Для выполнения операции требуется произвести три выборки из памяти – команды и двух сомножителей. Следовательно, для работы с высокой производительностью эти три выборки необходимо произвести за один такт работы процессора. При этом подразумевается, что результат операции остается в устройстве выполнения операции (в центральном процессорном устройстве), а не помещается в память. В более общем случае, нужна еще операция записи результата в память, т.е. необходимы четыре обращения к памяти за цикл. Таким образом, производительность процессора, прежде всего, определяется возможностями обмена данными между центральным процессорным устройством и памятью процессора и организацией их взаимодействия.

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


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

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

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

В процессорах Motorola используется команда цикла DO ,которая работает с регистрами начала и конца цикла (LC и LA ).

Гарвардская архитектура автоматически открывает многоступенчатый конвейер (от 3 до 11 ступеней конвейера). В базовом варианте: три ступени конвейера.

Базовый вариант: Motorola DSP 56 000 = 560 = 56К, где К = 000


Номер Процессор

сериив этой серии


3. Основные показатели процессоров цифровой обработки сигналов

1.) Способ представления данных.

По этому показателю все процессоры цифровой обработки сигналов делятся на :

1.1. Процессоры с фиксированной запятой (ФЗ) или процессоры с фиксированной точкой (ФТ ).

1.2. Процессоры с плавающей запятой (ПЗ) или процессоры с плавающей точкой (ПТ).

Наиболее распространены процессоры с фиксированной запятой или процессоры с фиксированной точкой - они стоятво всех телефонах.

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

2.) Разрядность представления данных.

Для процессоров с фиксированной точкой разрядность равна 16 (у большинства сигнальных процессоров) или равна 24 (у фирмы Motorola).

Для процессоров с плавающей точкой разрядность равна 32 (из них порядок представляется8 разрядами, мантисса 23 разрядами, а знак 1 разрядом).

У процессоров с плавающей точкой большой диапазон представления чисел (мантиссу откидываем) с учетом знака: от 2 −128 до 2 127 .

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

Динамический диапазон (ДД):

ДД = |max значение | / |min значение ≠ 0 |

Динамический диапазон в децибелах равен:

20 lg (ДД ) = 20 lg (| max значение | / | min значение ≠ 0 |)

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

3) Производительность

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

Однако проблема сравнения скорости различных DSP состоит в том, что процессоры

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

Одно из решений этой проблемы - сравнивать процессоры по скорости выполнения

определенных операций, например, операции умножения с накоплением (MAC). Скорость

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

фильтрацию, корреляцию и преобразования Фурье. К сожалению, такая оценка также не

дает полной информации о реальном быстродействии процессора.

Наиболее точной является оценка скорости исполнения определенных алгоритмов -

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

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

4. Основные производители сигнальных процессоров

1.) Фирма Texas Instruments (TI ) занимает около 48 % рынка ПЦОС. Именно она выпустила в 1982 г . первый ПЦОС, который имел коммерческий успех. ПЦОС TMS32010 использовался в игре Speak and Spell ("Скажи и произнеси по буквам"), а также в говорящей кукле по имени Джули . Все процессоры цифровой обработки сигналов фирмы Texas Instruments идут под маркой: TMS3200xxx.

2.) Фирма Analog Devices (AD). Все процессоры цифровой обработки сигналов фирмы Analog Devices идут под маркой: ADSP21 xxx .

3.)Фирма Motorola. Серии: DSP560xx

DSP 561xx Процессоры с фиксированной точкой.

DSP 563xx

DSP 566xx

DSP 568xx

Фирма Intel раньше тоже входила в первую тройку производителей сигнальных процессоров, но сейчас её оттеснили.

В нашей стране также производятся сигнальные процессоры, правда они несколько уступают зарубежным аналогам, но они есть. Например: в настоящее время научно-исследовательский институт электронной техники («НИИЭТ») серийно выпускает 16-разрядные процессоры ЦОС с фиксированной запятой М1867ВМ x с производительностью 5 MIPS.

5. Аппаратная реализация


Процессор цифровой обработки сигналов разбивается на две части: операционный блок и блок управления.

Операционныйблок

Блок управления операцией.

На входные регистры x 0 , x 1 , y 0 , y 1 из памяти поступают данные и передаются на МАС или АЛУ, которые могут использоваться как отдельно, так и в паре. Если нужно использовать данные двойной длины, то, как правило, используют 16 разрядов. Результат выполнения операции из аккумулятора А или В передаётся в память данных через сдвигатель - выходной.

Распределение нагрузки между МАС и АЛУ: 62 команды в базовом варианте, из них: 61 - АЛУ и 1 - МАС.

МАС выполняется в 1000 раз чаще, чем все другие команды и, именно он определяет скорость быстродействия.

Рис. Схема блока МАС

В блоке МАС после умножения первое суммирование происходит с нулём, а далее после каждого умножения происходит суммирование с каждым значением аккумулятора. Аккумуляторов всегда два или более.

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

Если в процессорах фирмы Motorola (в базовом варианте Motorola DSP 560xx ) разрядность слова равна 24, то длина расширенного слова составляет: 24 + 24 + 8 = 56 битов, где 8 разрядов отводится на расширение данных.

Если в процессорах фирмы Motorola разрядность слова равна 16, то длина расширенного слова составляет: 16 + 16 + 8 = 40 битов, где 8 разрядов отводится на расширение данных.

Пример представления целых чисел в форматах двойное и расширенное слово аккумулятора длиной 56 битов в процессорах DSP560xx фирмы Motorola:


Примечание:

На рисунке расширение EXT заполнено нулями – значением 47-го знакового бита.

Представление целых чисел в формате с ФТ в форматах двойное и расширенное слово предполагает следующее функциональное распределение битов:

1.) Старший бит MSB старшего слова MSP используется:

· как знаковый при представлении целых чисел со знаком ; значение MSB = 0 соответствует положительному знаку, а MSB = 1 - отрицательному знаку; ноль считается положительным; остальные биты являются значащими;

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

2.) Все биты, кроме знакового, считаются значащими ; они выравниваются по правому краю формата, т.е. младший бит LSB соответствует младшему разряду целого двоичного числа.

3.) При представлении целых чисел со знаком в формате «расширенное слово» в расширении EXT происходит расширение знака ; это означает, что все биты EXT автоматически заполняются значением старшего знакового бита MSB слова MSP : LSP .

4.) При представлении целых беззнаковых чисел в формате «расширенное слово» все биты EXT обнуляются.


"Научно-технические статьи" - подборка научно-технических статей радиоэлектронной тематики: новинки электронных компонентов , научные разработки в области радиотехники и электроники , статьи по истории развития радиотехники и электроники , новые технологии и методы построения и разработки радиоэлектронных устройств, перспективные технологии будущего, аспекты и динамика развития всех направлений радиотехники и электроники , обзоры выставок радиоэлектронной тематики.

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

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

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

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

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

Кроме того, во многих случаях имеет смысл учитывать и место на рынке, занимаемое поставщиком процессора, т.к. далеко не все производители могут предоставить в ваше распоряжение спектр процессоров, покрывающих все ваши потребности. Сложившееся к настоящему времени распределение рынка между ведущими поставщиками (см. табл. 1) показывает, что 4 компании, стоящие в начале списка, поставляют более 80% всех используемых в мире DSP. Именно эти компании наиболее известны и на российском рынке, и их продукция часто упоминается в нашем журнале, например, основные характеристики DSP производства Texas Instruments ? Analog Devices рассматривались в №7 за 2005 г. и №1 за 2006 г.

Следует помнить, что производители 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). Скорость выполнения таких операций критична для алгоритмов, использующих цифровую фильтрацию, корреляцию и преобразования Фурье. К сожалению, такая оценка также не дает полной информации о реальном быстродействии процессора.

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

Рис. 1 Cравнение по скорости современных DSP разных производителей

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




Top