Сайт о телевидении

Сайт о телевидении

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

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

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

27 июня 2017 в 12:27

Многоядерный DSP TMS320C6678. Обзор архитектуры процессора

  • Программирование микроконтроллеров

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

Пока все прогрессивное (читай — зависящее от ПК) человечество замерло в затянувшемся ожидании Merced и прочих диковинных, обещающих невиданные доселе показатели производительности процессоров, малочисленная, но чрезмерно любопытная часть несознательных индивидуумов настойчиво ищет возможности получения сверхпроизводительности компьютеров уже сегодня. Индивидуализм этого "партизанского движения", естественно, подразумевает весьма скромные объемы финансирования, что исключает популярность в "партизанской среде" еще не окончательно родившегося, но уже слишком дорогого Merced. Страсти "по мощи" подогреваются запаздыванием с выходом на рынок многообещающей Sony Playstation II, тотальным снижением цен на клоновые RISC-процессоры 64-битового семейства MIPS и, наконец, ставшим уже отчетливым кризисом архитектуры ПК IBM PC. В этой ситуации более чем странной кажется малозаметность расположившегося отдельно в процессорной "табели о рангах" обширного семейства недорогих высокопроизводительных микропроцессоров, именуемого DSP. Представители "DSP-клана" в области процессорной архитектуры концентрируют лучшие (ожидающиеся в далеком будущем в "настольных" CPU) решения, а по соотношению "потребляемая мощность/производительность" (милливатт/MIPS) вообще кажутся настоящими "инопланетянами".

DSP и DSP — понятия разные

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

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

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

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

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

"Так ведь это же любой обычный микропроцессор можно назвать ЦСП" — скажете вы. Не совсем так. Несоизмеримость временных "шкал" реального мира (на который и рассчитаны ЦСП) и человеческого терпения или реакции (в самых исключительных случаях она меньше 0,05 с, что "развязывает руки" конструкторам универсальных микропроцессоров и операционных систем) — такой "маленький" нюанс приводит к громадному "отрыву" в архитектурах, показателях производительности и областях применения представителей двух параллельных миров DSP/CPU.

А причем здесь ПК?

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

Но времена меняются — компьютеры становятся все меньше и меньше, они уже умещаются на ладони. Пусть сегодня они только игрушки — все эти не очень удобные записные книжки для "деловых людей" и уж совсем неудобные (точнее, неуклюжие) текстовые редакторы с перьевым вводом — но игрушки уже НОСИМЫЕ! Мы привыкаем к ним, перестаем замечать и, несмотря на все неудобства, используем их возможности в повседневной жизни. Иными словами, мы уже готовы к тотально-бытовой "мелкой" компьютеризации, а вот компьютеры — пока нет (отсюда и все неудобства палм-топов и PDA). Неготовность компьютеров не связана ни с низкой степенью интеграции используемых в них микросхем, ни с невысокой производительностью, ни с большой потребляемой мощностью. Основная причина этой неготовности — так называемая "ошибка верхнего уровня", накрепко укоренившаяся в головах разработчиков: почему-то все забыли о том, что носимый компьютер становится "частью" своего носителя и "живет" вместе с ним в РЕАЛЬНОМ ОКРУЖАЮЩЕМ МИРЕ! Теперь, очевидно, сам собой напрашивается один единственный вывод, который и является ответом на вопрос о "причастности ПК": раз DSP ориентированы на обработку сигналов реального мира и носимые персональные компьютеры как раз "живут" в реальном мире, значит… Правильно! Настоящие ПЕРСОНАЛЬНЫЕ (по признаку принадлежности к "персоне", а не как разновидность собственности) компьютеры должны основываться на DSP, а не на универсальном процессоре.

Не может быть

"…потому что специализированные процессоры не соответствуют требованиям, предъявляемым современным программным обеспечением", — процитируете вы кого-нибудь. Вполне возможно, что современное программное обеспечение до сих пор требует усилий для мирного сосуществования программ защищенного (32-битового) режима и 16-битовой BIOS (базовой системы ввода/вывода) ПК архитектуры IBM PC, и именно из-за этих самых требований существует реальная несовместимость между "совместимыми" процессорами (вспомните о всевозможных расширениях системы команд от Intel и AMD), и, наконец, из-за "современности" крепко забыта такая мелочь, как мобильность ПО, что замыкает порочный круг: "несовершенство платформы — платформенная зависимость ПО — совершенствование платформы до нового уровня несовершенства — еще большая платформенная зависисмость ПО — …".

На самом деле современные DSP приспособлены и к работе под управлением мультизадачных операционных систем реального времени, и для создания могучих 3D-акселераторов, и для обработки в реальном времени аудио/видеоинформации, и вообще Бог знает для чего. Судите сами: 32-битовые ЦСП Texas Instruments семейства TMS320C6700 могут "молотить" цифровое представление сигналов (или просто перемножать матрицы 4 x 4 в задачах трехмерной визуализации) со скоростью 1 GFLOPS при более чем скромных тактовой частоте в 167 MHz и цене в небольших партиях до $250, а замечательный и дешевый DSP SHARC (Analog Devices) при стоимости $10 (в больших партиях) "берет планку" 150 MFLOPS, потребляя всего… 0,3 В.

Цифры, факты, история

Еще раз попытаюсь защититься от возможных упреков в "выпячивании" достоинств никого не интересующей узкоспециализированной технологии. Состояние рынка полупроводников — лучший показатель перспективности той или иной технологии — свидетельствует о постоянно растущей популярности DSP: так, в 1998 г. на фоне общего десятипроцентного спада объемов продаж всего, попадающего в категорию "semiconductor", рынок универсальных программируемых DSP вырос на 9% (до уровня 4 млрд. долл.), а узкоспециализированных — на 15% (5,3 млрд. соответственно). Следовательно, факт популярности DSP можно считать доказанным. Заодно, учитывая особенности DSP, также уверенно можно говорить и о явном проявлении наконец-то "здоровой" тенденции в компьютинге: активное внедрение в реальный окружающий мир (а иначе зачем DSP?).

Если о состоянии рынков информации более чем достаточно, то история DSP — предмет, достойный отдельного исследования. Кое-что, впрочем, отыскать в дебрях Internet можно: титула одного из самых дальних предков современных DSP по праву заслуживает канувший в Лету микропроцессор 8×300, разработанный компанией SMS (впоследствии продавшей 8×300 другой, более известной компании Signetics). Появившийся в 1978 г. 8×300 был почти сразу забыт, и на смену ему в 1979 г. к "DSP-играм" решила подключиться Intel. Для своего времени ЦПС Intel 2920 был удивительным устройством, объединяющим на одном кристалле и аналого-цифровой преобразователь (АЦП), и специализированный микропроцессор, и ЦАП (цифро-аналоговый преобразователь). По сути, с точки зрения инженера-разработчика, 2920 выглядел неким аналоговым устройством с произвольно задаваемыми свойствами. ЦПС был бы очень удачным, если бы не одно "но": DSP от Intel получился слишком медленным (на выполнение самых "быстрых" команд при максимальной тактовой частоте 2920 требовалось 0,9 мкс, что фактически исключало возможность его применения в каких-либо реальных задачах). Крайне низкая производительность привела к тому, что 2920 "умер, еще не родившись", и этот печальный опыт заставил корпорацию Intel надолго забыть о DSP-разработках.

Вслед за Intel на DSP-рынок устремились Lucent Technologies и NEC, представившие в 1980 г. первый программируемый DSP. На этом историческом фоне малозаметным кажется факт, что Texas Instruments еще в 1978 г. производила в больших партиях чипы для игрушек "Speak & Spell" ("говори и слушай"). При более детальном рассмотрении оказывается: Texas Instruments опередила всех, начав масштабное серийное производство первых специализированных DSP. Впоследствии, в 1982 г., Texas Instruments (TI) анонсировала свой первый универсальный программируемый DSP TMS32010, архитектура которого стала абсолютным законодателем мод на рынке цифровой обработки сигналов, а сама компания TI — аналогом Intel в мире процессоров для ПК. Сегодня перечень имен производителей самых разных DSP трудно перечислить, специалисты насчитывают более 300 (!) уникальных архитектур, реализованных "в кремнии", и даже надолго забывшая о DSP-рынке Intel объявила о планах совместной разработки с Analog Devices ЦПС нового поколения.

Архитектурная эволюция

Обилие архитектур DSP способно охладить любую настойчивость, но… Все ЦПС должны, в силу своей специфики, отвечать одним и тем же требованиям. Характерные для задач обработки сигналов свойства процессоров назвать уникальными трудно: здесь необходимы очень быстрая арифметика (а где она не нужна?), высокая скорость обмена процессора с внешними устройствами, преобразующими сигналы из окружающего мира в электрическое представление, и, наконец, высокая пропускная способность подсистемы памяти. Так что на самом деле данные требования не слишком специфичны — именно всего этого мы хотим от наших ПК, повышая частоту системной шины, совершенствуя периферийные интерфейсы (например, переходом от PCI к PCI 2) и устанавливая модули памяти SDRAM.

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

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

Для ускорения арифметических вычислений в DSP используют несколько арифметико-логических устройств (АЛУ), работающих "в параллель", что в случае "хитро" устроенной внутренней регистровой памяти позволяет вводить в систему команд ЦПС очень интересные инструкции, в переводе на человеческий язык означающие приблизительно следующее: "умножить содержимое регистра 1 с содержимым регистра 2 и сложить результат умножения с содержимым регистра 3". И все это — одна команда, выполняющаяся за один такт. Восхищаться пока рано: операция умножения с накоплением (именно так называется подобный перечень действий) — классика цифровой обработки сигналов, а реализующие ее аппаратные средства постепенно проникают в еще недавно считавшиеся универсальными процессоры, в первую очередь RISC-архитектуры, в частности во многие клоны MIPS.

Эффективная реализация операции задержки требует, чтобы у хорошего DSP было много внутренних регистров (в принципе, чем больше, тем лучше), в этом случае легко найти одну из незанятых регистровых ячеек для "припрятывания" данных. Кроме того, высокая скорость выполнения этой операции может быть достигнута только путем хороших архитектурных решений, например удачной логической организацией регистрового массива DSP. В нашем контексте это свойство ЦСП также кажется весьма привлекательным — обилие внутренних регистров и их логическая организация существенно упрощают разработку компиляторов с языков высокого уровня (что, к слову, подтверждается практикой — на ftp-сайте Texas Instruments можно найти очень удачные модификации известного компилятора C gcc, генерирующего код для ЦСП семейств TMS).

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

Если вспомнить повышенные требования DSP к скорости обмена с внешними устройствами, то в любом конкретном процессоре вы найдете результаты серьезных конструкторских усилий. В первую очередь, это высокоскоростные последовательные каналы ввода/вывода. Несмотря на их простоту, низкая стоимость интерфейсов в сочетании с достаточной для реальных приложений пропускной способностью (например, 40 Mbps) удовлетворяет практически всем потенциальным потребностям разработчиков. Для расширения возможностей конкретных процессоров используются как синхронные (трехпроводные: тактовая частота, данные и синхронизирующие импульсы), так и асинхронные (двухпроводные, синхронизирующие импульсы "замаскированы" в поток данных) последовательные каналы.

Самые интересные и неожиданные архитектурные находки сконцентрированы в подсистемах памяти DSP. Насущная необходимость включения в систему команд однотактных инструкций умножения с накоплением привела к тому, что ничего общего со "стандартными" универсальными CPU у ЦПС не осталось. Действительно, за один такт невозможно одновременно прочитать или записать данные, адресуемые по одной единственной адресной шине, — для этого необходимо столько адресных шин, сколько единиц данных выступают в качестве операндов команды. Самое интересное, что разработчики DSP нашли совершенно нетривиальное и изящное решение этой проблемы даже в случае использования привычной фон-Неймановской архитектуры памяти (единая физическая память для программы и данных). "Зачем вообще использовать фон-Неймановскую архитектуру?" — спросите вы. Ведь существует и реализована в очень многих процессорах Гарвардская архитектура (раздельные физические память программ и данных с, соответственно, раздельными шинами), но… Универсальный DSP должен уметь работать с внешней оперативной памятью — многие программы обработки сигналов очень сложны, для хранения реализующего их кода и промежуточных данных требуется существенная емкость ОЗУ (большинство современных DSP имеют встроенные механизмы управления дешевой и быстрой SDRAM емкостью от 16 до 64 MB). Для реализации настоящей Гарвардской архитектуры требуются по две шины адреса и данных, что при 32-разрядном процессоре выливается в 128 выводов — это слишком дорого и слишком неудобно. В таком балансировании между производительностью и ценой DSP-архитекторы таки нашли неожиданно "равновесное положение": Гарвардская внутренняя и модифицированная фон-Неймановская внешняя архитектуры одновременно. Мы уже привыкли к тому факту, что процессоры работают на более высокой тактовой частоте, чем, например, шины памяти, поэтому DSP-модификация "неймана" покажется несколько странной: шина памяти работает на повышенной (обычно в 4 раза) по отношению к внутренней процессорной частоте. Это позволяет за один период (такт) процессора произвести несколько обращений к памяти — просто и эффективно, а заодно сэкономить на целой куче лишних выводов.

Теперь, естественно, напрашивается вопрос: а как достигается такое высокое быстродействие DSP, если процессор работает на пониженной частоте? На сегодняшний день практически во всей DSP-индустрии есть несколько излюбленных приемов и архитектурных решений, играющих роль "структурного умножения тактовой частоты". Здесь берут не числом (не мегагерцами), а умением. Модные абстрактные термины типа VLIW (очень длинные машинные команды) давно и с успехом работают, например в процессорах Texas Instruments семейства TMS320C6xxx, 256-битовый код команды которых способен "инкапсулировать" до восьми 32-битовых операндов, представленных числами с плавающей и фиксированной точкой. Для "утилизации" подобных команд применяются несколько (в случае с TMS320C6xxx — шесть) арифметико-логических устройств и отдельных быстрых аппаратных умножителей. В несоизмеримо более дешевом SHARC от Analog Devices (модель ADSP-21065L, цена в больших партиях $10) применяются три отдельных АЛУ со скоростными умножителями (способные работать "в параллель"), отдельный аппаратный "сдвигатель" данных (shifter, обеспечивающий "сдвиг" битового содержимого на указанное в качестве операнда число битов N влево или вправо, что эквивалентно очень быстрому умножению или делению на 2**N), внутренняя Гарвардская и внешняя модифицированная фон-Неймановская архитектуры (тактовая частота шины оперативной памяти до 60 MHz), встроенная двухпортовая память (с возможностью одновременного доступа двумя подсистемами процессора) перестраиваемой конфигурации и, наконец, очень специфическая (но и крайне удобная) система команд. Ассемблер SHARC напоминает язык программирования достаточно высокого уровня, ориентированный на разработку математических приложений (скажу так: упрощенный параллельный FORTRAN). Несмотря на относительно "короткий" битовый формат команды (69 битов), на ассемблере 21065 можно записать, например, следующую однотактную команду:

IF MS MRF=0; F6=(F2+F3)/2;

(если выполняется условие "MRF равно 0", то вычислить полусумму регистров F2 и F3 с размещением результата в регистре F6).

В итоге десятидолларовый чип выполняет весьма ресурсоемкую программу 1024-точечного комплексного быстрого преобразования Фурье за… 304 мкс (для сравнения попробуйте эту задачку в качестве теста своего Pentium).

Возвращаясь к ПК

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

А что касается вопроса о ПК — давайте забудем на секунду обо всех этих PCI- и AGP-шинах, графических акселераторах, монстроидальных операционных системах. Попытаемся представить себе функционально многопроцессорный компьютер (один процессор — CPU, второй — графико-оконная подсистема, третий — умная подсистема ввода/вывода), для которого существуют стандарты только на языки программирования, системные вызовы CPU-модуля и команды, которыми обмениваются отдельные модули (например, упакованная в 32-разрядное слово команда "открыть окно размером 1024 x x 1024 пиксела" или "нарисовать линию из текущей позиции в точку с координатами X, Y"). Набравшись наглости, представим себе, что операционная система нашего ПК вообще не имеет понятия о всяких там накопителях: жестких дисках, CD-ROM и прочих, зато знает, что такое ftp (реализация подобной вещи существует и называется Andrew Filesystem), соответственно — модуль ввода/вывода представляет собой "тонкий" ftp-сервер.

И наконец, соединим функциональные модули быстродействующим последовательным каналом (например, дешевым гигабитовым 1355, о котором я уже рассказывал). Если все получается (а оно именно получается), добавлю: все процессоры в этом ПК — DSP класса SHARC (или более мощные для производительных моделей). Получаем: открытую на уровне спецификации, развязывающую руки производителям (пусть конкурируют сколько угодно ВНУТРИ функциональных модулей, лишь бы не трогали НАРУЖНЫЕ межмодульные спецификации) архитектуру, изначально сетеориентированную (ftp-файловая система не делает различий между локальными и удаленными накопителями), очень производительную (даже при "скромных" вычислительных возможностях 21056L — вы не задумывались, сколько ресурсов "сжирают" выполняющиеся на одном процессоре ОС и графическая/оконная подсистема), дешевую, и, что главное, РЕАЛЬНО СПОСОБНУЮ СООТВЕТСТВОВАТЬ РАСТУЩИМ ТРЕБОВАНИЯМ МОБИЛЬНЫХ ПОЛЬЗОВАТЕЛЕЙ. Потому, что именно DSP "по зубам" такие задачки, как распознавание речи и визуальных образов, синтез речевых сообщений, быстрый поиск в базах данных, 3D-визуализация в реальном времени — почти все, на что способно наше сегодняшнее воображение.

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 - теперь лидер рынка в ЦСП общего назначения.

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


Рисунок 1. Классификация микропроцессоров

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

  1. суммирование нескольких сигналов;
  2. перенос спектра сигналов;
  3. фильтрация сигналов;
  4. вычисление спектра сигнала (быстрое преобразование Фурье);
  5. помехоустойчивое кодирование (подавление шума для аналоговых систем связи);
  6. формирование кадров (только для цифровых систем связи)
  7. скремблирование сигнала (формирование одинаковой вероятности передачи нулей и единиц)

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

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

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



Рисунок 2. Типовая схема цифрового фильтра

Из рисунка явно прослеживается последовательность одинаковых участков алгоритма. Многократно приходится умножать цифровой отсчет сигнала на коэфициент фильтра и суммировать результат с предыдущей суммой. При этом следует отметить такую особенность сумматора, как большая разрядность. Для 16-разрядного сигнального процессора разрядность чисел на выходе умножителя будет равна тридцатидвум разрядам. При суммировании нескольких чисел тоже увеличивается разрядность результата. При суммировании 256 одинаковых чисел значение результата увеличится в 256 раз, что соответствует увеличению разрядности числа на восемь разрядов (2 8 =256). Поэтому разрядность сумматора в 16-разрядном сигнальном процессоре будет равна сорока разрядам (32+8=40).

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

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

Еще одной важной особенностью микропроцессоров является способ организации циклического выполнения программы (операция умножения-накопления MAC при реализации цифрового фильтра или операция "бабочка" при реализации быстрого преобразования Фурье должны повторяться заданное количество раз). В вычислительном микропроцессоре для организации цикла используется особая переменная — параметр цикла. В конце цикла эта переменная сравнивается с заданным значением (обычно с нулем) и осуществляется переход на начало цикла. В результате алгоритм фильтрации будет выглядеть следующим образом:

  1. Сформировать адрес очередной ячейки линии задержки фильтра
  2. Считать очередной отсчет входного сигнала из линии задержки фильтра
  3. Сформировать адрес очередного коэффициента фильтра
  4. Считать очередной коэффициент фильтра
  5. Умножить отсчет входного сигнала из линии задержки на коэффициент фильтра (чаще всего за несколько машинных циклов)
  6. Просуммировать результат с уже накопленной суммой (сформировать очередной отсчет сигнала на выходе фильтра)
  7. Изменить значение переменной-параметра цикла
  8. Сравнить полученное значение с заданной величиной
  9. Перейти на начало цикла или выйти из него (обычно это длительная процедура, занимающая несколько машинных циклов)

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

  1. Наличие аккумулятора-накопителя MAC с 40-разрядным сумматором и аккумулятором
  2. Наличие аппаратного сдвигателя чисел
  3. Наличие аппаратной организации цикла
  4. Наличие двух формирователей адреса
  5. Трехшинная структура операционного блока микропроцессора

Литература:

Вместе со статьей "Особенности сигнальных процессоров" читают: