Тарифы Услуги Сим-карты

Что такое dsp процессор. Основы выбора цифровых сигнальных процессоров. Адресация и виртуальная память

В статье рассмотрены основные параметры цифровых сигнальных процессоров (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.

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

Цифровая фильтрация сигналов,

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

Спектральный анализ сигналов,

Кодирование и декодирование информации,

Распознавание и синтез речи, синтез и обработка музыки,

Обработка изображений,

Компьютерная графика, синтез изображений,

Измерительная техника.

Главной отличительной особенностью ЦСП является большой объем вычислений, выполняемый в реальном времени. Это определяет следующие отличительные особенности ЦСП:

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

Короткие команды, реализуемые в конвейерных устройствах, обуславливают RISC архитектуру ЦСП,

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

Наличие специальных команд обработки сигналов. Например, в семействе процессоров TMS320 фирмы Texas Instruments имеется команда dmov, которая добавляет новый отсчет сигнала к выборке, сдвигая остальные отсчеты на один квант времени, команда LTD загружает множимое в регистр умножителя, осуществляет сдвиг отсчетов сигнала и складывает результат предыдущего умножения с содержимым аккумулятора.

За свою историю развития с начала 80-х годов прошлого века сменилось несколько поколений ЦСП, но ряд ЦСП предыдущих поколений в современном исполнении продолжают выпускаться из-за удачной архитектуры. ЦСП первого поколения TMS32010 разработан фирмой Texas Instruments в 1982 году. Это 16-разрядный микропроцессор с производительностью 5 миллионов команд в секунду (MIPS) имел внутреннее ОЗУ 144-256 слов, ПЗУ 1,5 - 4К слов. АЛУ и аккумулятор 32 разрядные, аппаратный умножитель 16х16 – результат 32 разряда, имелись порты ввода – вывода.



ЦСП второго поколения появились в середине 80-х годов. Это TMS32020, КМОП микропроцессор TMS320C25 с производительностью 10 MIPS. Наиболее интересны ЦСП DSP56000 и DSP56001 производительностью 10 и 25 MIPS соответственно. Их разработала фирма Motorola. Это единственные 24-разрядные ЦСП. Модификации ЦСП такой архитектуры до сих пор выпускаются. Архитектура DSP56001 показана на рис. 7.1. Процессор имеет расширенную гарвардскую архитектуру. ОЗУ данных X и Y имеют отдельные шины адреса YA, XA и данных XD, YD. Кроме того, отдельная шина адреса PA применена для адресации ПЗУ загрузки и ОЗУ программ, имеющих и отдельную шину данных PD. Шина данных GD используется для загрузки программ из host-компьютера по синхронному последовательному интерфейсу. Кроме того, GD используется для обслуживания прерываний от программируемого контроллера прерываний. Блоки коммутации могут передавать данные и адреса между этими шинами, а блоки коммутации внешних шин позволяют выводить из кристалла любую из шин. Генератор управляющих сигналов формирует внешние сигналы управления. К тактовому генератору подключается внешний кварц и он тактирует всю схему.

Рис. 7.1. Архитектура DSP56001

В ПЗУ X и Y записаны отсчеты синуса и косинуса, что позволяет проводить квадратурный прием и обработку. В настоящее время такой ЦСП наиболее часто используется при обработке и синтезе звука.

ЦСП третьего поколения появились на рубеже 80 – 90 годов. Это TMS320C30 - TI, DSP96002 – Motorola, DSP32C AT&T Microelectronics. Особенности этих процессоров – они 32 разрядные, в одном АЛУ могут выполнять целочисленные вычисления и с плавающей точкой, имеют расширенную гарвардскую архитектуру, наличие таймеров и портов ввода – вывода. Модификация ЦСП TMS320C30 выпускается и до настоящего времени – это TMS320VC33-120 и -150. Производительность TMS320VC33-150 150 миллионов операций с плавающей точкой в секунду (MFLOPS).

Его основные параметры:

ОЗУ 34K 32 разрядных слов с двумя параллельными шинами доступа,

Тактовый генератор с возможностью умножения внутренней частоты,

32 разрядное ядро плавающей точки,

4 строба выборки внешних устройств,

Контроллер прерываний,

Начальный загрузчик,

8 40-разрядных регистров повышенной точности,

Один последовательный порт,

Два таймера,

сопроцессор прямого доступа к памяти (ПДП),

144 выводный корпус LQFP.

ЦСП четвертого поколения разрабатывались в 90 –е годы. Здесь произошло разделение ЦСП на относительно дешевые 16-разрядные ЦСП с фиксированной точкой и дорогие производительные 32- 40 разрядные ЦСП с плавающей точкой. ЦСП с фиксированной точкой стали использоваться в связной аппаратуре, модемах, звуковых мультимедийных устройствах, обработке сигналов, среди фирм разработчиков таких ЦСП известны семейства фирмы Analog Devices ADSP. ЦСП с плавающей точкой – для обработки широкополосных сигналов, изображений, в компьютерной графике. Типичным представителем ЦСП с плавающей точкой является TMS320C40 – TI. Архитектура этого ЦСП показана на рис. 7.2. Производительность этого процессора 275 MIPS. Главной особенностью его архитектуры является наличие шины ввода – вывода по прямому доступу в память с сопроцессором. Она предназначена для скоростного обмена через коммуникационные порты 0 – 5 с другими процессорами, образующими MIMD архитектуру. Каждый порт имеет 8 бит данных и 4 сопровождающих сигнала с пропускной способностью 20 Мб/с.


Рис. 7.2. Архитектура TMS320C40

На рис. 7.3 показан вариант топологии связей процессоров.

Рис. 7.3. Топология связей ЦСП

ЦСП пятого и шестого поколений разрабатывались в начале 21 века. Здесь следует отметить разработки фирмы TI – процессоры семейств С5000 и С6000. Семейство С5000 представляет собой семейство дешевых ЦСП с фиксированной точкой, высоким быстродействием и пониженным потреблением 0,9 В, а С6000 – ЦСП с фиксированной и плавающей точкой с производительностью до 1200 MFLOPS.. Некоторые параметры семейства TMS320C55x:

Потребление 0,05 мВ/MIPS,

Производительность 140 – 800 MIPS, включая операции умножения,

Переменная длина команд 8 – 48 бит,

2 умножителя, 2 АЛУ, 4 аккумулятора,

4 регистра данных,

Выборка команд – по 32 разряда.

В настоящее время ЦСП применяются совместно с программируемой логикой. Средства отладки аппаратуры на основе ЦСП и программируемой логики подразделяются на две категории:

Программная поддержка для формирования и отладки машинного кода обработки сигналов в ЦСП (средства генерации кода),

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

Эти два вида отладки обычно выполняются разными разработчиками с перекрытием по времени, что ускоряет процесс проектирования и изготовления аппаратуры. На рис. 7.4 приведена структура процесса отладки аппаратуры с ЦСП и программируемой логикой.

Рис. 7.4. Процесс разработки аппаратуры на ЦСП и ПЛИС

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

Каковы особенности развития аппаратуры на основе ЦСП и программируемой логики?

1. Развитие различных параллельных архитектур обработки как в ЦСП, так и в программируемой логике.

2. Развитие соответствующих отладочных средств на основе эмуляторов, симуляторов и интерфейсов тестирования, подобных JTAG.

3. Комбинирование внутри одного кристалла ЦСП и программируемой логики, например в TMS320C54x.

4. Развитие эффективности оптимизирующих компиляторов языков высокого уровня типа С до уровня, чтобы не требовалось ассемблерных вставок в программы.

5. Развитие гетерогенных аппаратных систем на одном кристалле, включающих в себя различные типы микропроцессоров, включая и ЦСП, и оснащение их параллельными многопроцессорными операционными системами реального времени.


Список литературы

1. Супер ЭВМ. Аппаратная и программная организация/ Под ред. С. Фернбаха: Пер. с англ. – М.: Радио и связь, 1991.

2. Хокни Р., Джессоуп К. Параллельные ЭВМ. Архитектура, программирование и алгоритмы: Пер. с англ.-М.: Радио и связь, 1986.

3. Коуги П.М. Архитектура конвейерных ЭВМ: Пер. с англ.-М.: Радио и связь, 1985.

4. Параллельные вычисления/ Под ред. Г.Родрига: Пер. с англ.-М.: Наука, 1986.

5. Пухальский Г.И., Новосельцева Т.Я. Проектирование дискретных устройств на интегральных микросхемах: Справочник. – М.: Радио и связь, 1990.

6. Стешенко В.Б. ПЛИС фирмы ALTERA: проектирование устройств обработки сигналов. - М: ДОДЭКА, 2000.

7. КнышевД.А. ПЛИС фирмы “XILINX ”: описание структуры основных семейств. - М: ДОДЭКА-XXI, 2001.

8. Сикарев А.А., Лебедев О.Н. Микроэлектронные устройства формирования и обработки сложных сигналов. - М.: Радио и связь, 1983.

Процессор цифровой обработки сигналов (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. Раздельные внутренние шины команд, данных и адресов способствуют резкому повышению пропускной способности вычислительной системы. Наличие вторичной шины данных позволяет арифметическому устройству считать два значения, перемножить их и выполнить операцию накопления результата за один такт процессора.

Digital Signal Processor

DSP (D igital S ignal P rocessor) (в переводе с английского языка, означает цифровой сигнальный процессор (ЦСП) или, его еще называют, как сигнальный микропроцессор (СМП) с его архитектурой, оптимизированной для оперативных потребностей цифровой обработки сигналов) - специализированный микропроцессор, особенностью работы которого является поточный характер обработки больших объемов данных в реальном масштабе времени и, обычно, с интенсивным обменом данных с другими внешними устройствами. (Нужен для преобразования сигналов, представленных в виде цифр, как правило, в режиме реального времени).

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

Описание

Цель DSP

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

Типичная система цифровой обработки

Цифровая обработка

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

Преимущества DSP

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

Архитектура

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

Архитектура и ее особенности

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

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

  1. "Умножение с накоплением"(как правило, реализована аппаратно и выполняется за один машинный цикл) (M = M + X × Y), где M, X и Y - элементы действительных массивов с автоматическим расчетом адресов элементов массивов. (MAC)
  2. Аппаратная реализация многократного повторения заданного набора команд.
  3. Использование нескольких портов обращения к памяти DSP для одновременного(за один машинный такт) выбора команд и двух аргументов операции для быстрого выполнения умножения с накоплением.
  4. Способность к векторно-конвейерной обработки при помощи генераторов адресных последовательностей.

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

Архитектура программного обеспечения

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

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

Аппаратная архитектура

Архитектура памяти

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

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

Адресация и виртуальная память

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

  • Аппаратные средства адресации по модулю
    • Разрешает реализацию круговых буферов, без необходимости тестировать на упаковку
  • Бит-реверсная адресация, специальный способ адресации
    • Полезно для вычисления быстрого преобразования Фурье
  • Исключение блока управления памятью
  • Модуль вычисления адреса памяти

Примеры : TMS320Cхххх, ADSP-21XX

Рис. 1. Архитектура процессоров семейства ADSP-218x

Особенности ЦСП

Характерные особенности ЦСП (DSP):

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

Основные параметры ЦСП

Основные параметры ЦСП:

  1. Тип арифметики(с фиксированной/плавающей точкой).
  2. Разрядность данных(для фиксированной/плавающей - 16/32 бита, соответственно).
  3. Быстродействие.
  4. Тактовая частота(внутренняя и/или внешняя) и Время командного цикла(время выполнения одного этапа команды).
  5. Количество выполняемых команд за единицу времени.
  6. Количество выполняемых операций за единицу времени (MIPS).
  7. Количество выполняемых операций с плавающей точкой за единицу времени.
  8. Количество выполняемых операций умножения с накоплением за единицу времени.
  9. Виды (RAM и флэш-память) и объём внутренней памяти(сколько данных ЦСП может обработать без обращения к внешней памяти).
  10. Адресуемый объём памяти.
  11. Количество и параметры портов ввода-вывода.
  12. Состав внутренних дополнительных устройств(таймеры, компрессоры и тд).
  13. Напряжение питания и потребляемая мощность.
  14. Состав и функциональность средств разработки и поддержки.
  15. Перечень языков программирования, для которых есть компиляторы под данную систему;
  16. Наличие и возможности средств отладки готовых программ;
  17. Доступность документации и технической поддержки;
  18. Наличие библиотек стандартных подпрограмм и математических функций;
  19. Наличие, доступность и возможности совместимых устройств - АЦП , ЦАП , контроллеры питания и т. д.
  20. Допустимые параметры окружающей среды.
  21. Другие, в зависимости от назначения.

Сферы применения

Выделяют достаточно много сфер применения ЦСП.

Сферы применения DSP:

  1. Коммуникации (Кодирование информации и/или уплотнение каналов(спектральное))
  2. Распознавание чего-либо
  3. Анализатор спектра (прибор для наблюдения и измерения относительного распределения энергии электрических (электромагнитных) колебаний в полосе частот) и т.д.

Зачастую, это сферы, где необходима быстродействующая обработка каких либо сигналов (информации).

История

До того, как появились микросхемы DSP, множество приложений DSP были реализованы, используя секционные микропроцессоры. BS Chip(разрядно-модульный кристалл) AMD 2901 со своим набором компонентов пользовался популярностью. AMD также создавала аналогичные модели, однако, очень часто обнаруживались характерные особенности конкретной разработки. Эти секционные архитектуры временами содержали периферийную микросхему множителя. Примерами этих множителей был ряд от TRW, включая TDC1008 и TDC1010, некоторые из которых включали аккумулятор, обеспечивая необходимую функцию умножения с накоплением (MAC) .

В 1976г. году Ричард Уиггинс предложил концепцию "Speak & Spell" Полу Бредлову, Ларри Брантингхаму, и Джину Францу в научно-исследовательском центре Texas Instruments (Даллас). Два года спустя, в 1978г., они создали первую "Speak & Spell" с технологической главной центральной частью, являющейся TMS5100, как первый цифровой сигнальный процессор отрасли. Это также влекло другие этапы, будучи первой микросхемой, для использования кодирования с линейным предсказанием, чтобы выполнить речевой синтез.

В свою очередь, Intel 1978г. производил "процессор аналогового сигнала"-2920. Он включал конвертер из аналогового сигнала в цифровой и обратно, на микросхеме с встроенным внутрь сигнальным процессором, но он не обладал аппаратным множителем и не пользовался спросом на рынке. В 1979г. AMI выпускал периферийный прибор обработки данных-S2811. Он создавался, как связующее устройство микропроцессора, со способностью настройки владельцем. S2811, аналогично, не пользовался спросом на рынке.

В 1980г. реализован первый автономный процессор: DSP – NEC µPD7720 и AT&T DSP1 – были представлены на МК(Международной Конференци) Твердотельных схем "80. Эти два процессора вдохновили исследование в телекоммуникациях PSTN.

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

TMS32010 - еще один ЦСП, произведенный Texas Instruments (TI), и представленный в 1983г., обладал большим успехом. Он основывался на Гарвардской архитектуре, и так содержал индивидуальную инструкцию и память данных. Он обладал специальной системой команд с инструкциями: загрузка с накоплением или умножение с накоплением. Он умел работать над 16-ти разрядными числами и для умножения на это требовалось 390 нс. TI - теперь лидер рынка в ЦСП общего назначения.

Что такое 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 через курс лекций и практических упражнений. Расписание и информацию о регистрации вы можете найти на странице Обучение и разработка.