RadioRadar - Радиоэлектроника, даташиты, схемы

https://www.radioradar.net/articles/scientific_technical/cos.html

Цифровые сигнальные процессоры:Основы выбора

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

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

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

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

Компании-лидеры рынкаCompany NameДоля рынка DSP
1Texas Instruments54,3%
2Freescale Semiconductor14,1%
3Analog Devices8,0%
4Philips Semiconductors7,5%
5Agere Systems7,3%
6Toshiba4,9%
7DSP Group2,2%
8NEC Electronics0,6%
9Fujitsu0,4%
10Intersil0,3%

Other Companies0,5%

Total100,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.

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

   Одна из основных характеристик цифровых сигнальных процессоров - формат обрабатываемых данных.

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

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

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

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

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

Скорость

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

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

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

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

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

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

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

   Существуют компании, занимающиеся анализом и сравнением процессоров по основным характеристикам, в том числе и по скорости. Лидером среди таких компаний является BDTI - Berkeley Design Technology, Inc. (www.bdti.com). В качестве примера на рисунке 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 Граф сравнительных характеристик процессоров по критериям скорости, стоимости, энергопотребления и удобству средств разработки

   Теперь приоритеты. Если нам в первую очередь необходима высокая скорость и низкая цена, мы выбираем 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.

Автор: Алексей Пантелейчук, инженер, 000 "КОМПЭЛ"