Процессоры цифровой обработки сигналов. Цифровые процессоры обработки сигналов Процессоры dsp digital signal processing

Some cookies are required for secure log-ins but others are optional for functional activities. Our data collection is used to improve our products and services. We recommend you accept our cookies to ensure you’re receiving the best performance and functionality our site can provide. For additional information you may view the . Read more about our .

The cookies we use can be categorized as follows:

Strictly Necessary Cookies: These are cookies that are required for the operation of analog.com or specific functionality offered. They either serve the sole purpose of carrying out network transmissions or are strictly necessary to provide an online service explicitly requested by you. Analytics/Performance Cookies: These cookies allow us to carry out web analytics or other forms of audience measuring such as recognizing and counting the number of visitors and seeing how visitors move around our website. This helps us to improve the way the website works, for example, by ensuring that users are easily finding what they are looking for. Functionality Cookies: These cookies are used to recognize you when you return to our website. This enables us to personalize our content for you, greet you by name and remember your preferences (for example, your choice of language or region). Loss of the information in these cookies may make our services less functional, but would not prevent the website from working. Targeting/Profiling Cookies: These cookies record your visit to our website and/or your use of the services, the pages you have visited and the links you have followed. We will use this information to make the website and the advertising displayed on it more relevant to your interests. We may also share this information with third parties for this purpose.

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

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

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

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

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

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

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

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

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

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

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

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

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

DSP процессоры.doc

DSP процессоры

Digital Signal Processing (DSP) - Цифровая Обработка Сигналов (ЦОС) - используется во многих приложениях.

Сначала необходимо пояснить значение слов, составляющих данное понятие:


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

  • Signal изменяющийся параметр, посредством которого информация передается по электрической цепи

  • Processing выполнение операций над данными согласно программным инструкциям

  • Digital Signal Processing изменение или анализ информации, которая измеряется дискретными последовательностями чисел
Необходимо отметить две уникальные особенности Цифровой Обработки Сигналов:

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

  • сигналы дискретные - что означает потерю информации между дискретными выборками
Преимущества DSP являются общими для многих цифровых систем и включают в себя:

Универсальность:


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

  • цифровые системы могут быть перенесены на различную аппаратуру

Воспроизводимость:


  • цифровые системы могут быть легко удвоены

  • цифровые системы не зависят от точных допусков компонентов

  • характеристики цифровых систем не варьируют с температурой

Простота:


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

В каждом приложении DSP процессоры характеризуются общими свойствами:


  • они используют большой объем математических вычислений

  • они имеют дело с сигналами из реального мира

  • исследование сигнала длится конечное время

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

Типичные DSP операции требуют выполнения множества простых сложений и умножений.

Сложение и умножение требуют:


  • произвести выборку двух операндов

  • выполнить сложение или умножение (обычно и то и другое)

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

  • Гарвардская архитектура

  • модифицированная архитектура фон Неймана

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

Гарвардская архитектура требует наличия двух шин памяти. Это значительно повышает стоимость производства чипа. Так, например, DSP процессор работающий с 32-битными словами и в 32-битном адресном пространстве требует наличия, по крайней мере, 64 выводов для каждой шины памяти, а в сумме получается 128 выводов. Это приводит к увеличению размеров чипа и к трудностям при проектировании схемы.

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

Архитектура фон Неймана использует только одну шину памяти:

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

Эффект наложения


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

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

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

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

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

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

^ Интерфейс ввода-вывода

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


  • входные и выходные сигналы

  • взаимодействие с различными контроллерами системы

  • взаимодействие с подобными DSP процессорами

^

Преобразование аналоговых сигналов


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

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


  • погрешностей в измерениях

  • неточностей в синхронизации

  • ограничений на продолжительность измерений
Эти явления называются ошибками дискретизации.

Перед выборкой непрерывный аналоговый сигнал должен быть предварительно сохранен. С другой стороны, при измерении сигнала будет происходить его изменение.

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

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

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

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

^ Ошибки дискретизации

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

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

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

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

Ошибки вносимые синхронизацией также являются нелинейными и зависят от сигнала.

Реальные DSP системы подвержены воздействию от трех источников ошибок:


  • ограничение при цифровом преобразовании сигнала его точности конечной длиной машинного слова

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

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

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

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