Решение... Советы... Windows 10

Встроенный dsp. Процессоры цифровой обработки сигналов. Ростех "огражданивается" и покушается на лавры Samsung и General Electric

Нечаянно наткнулся на видео с "Чип и Дип" #1 Цифровая обработка звука ADAU1701 | Открытый проект | Начало
И тут "накрыло" всякими воспоминаниями по поводу этой темы. Решил проверить, что творится в наше время на этом фронте, нашёл что много хорошего и интересного.

Качество обработки значительно выросло, цена значительно упала и звуковые DSP (Digital Signal Processing) уже стучатся к нам в дом! :)
В данном видео рассматривается чип SigmaDSP ADAU1701 и я решил посмотреть что можно с ним сотворить и был сильно впечатлён возможностями.
на русском можно о них почитать (). Для меня данный DSP позволяет построить нормальную акустическую систему с внешним кроссовером. Возможностей у системы невообразимо больше, чем мои потуги. Она позволяет запрограммировать себя полному новичку в программировании, но понимающему звуковые компоненты и как они работают: фильтры; кроссоверы; эквалайзеры и т.д. и т.п. Эти знания нужны, чтобы всё это настраивать
Вот так выглядит пример проекта в программе обслуживающей и программирующей DSP:

Как видите почти никаких "цифровых значений", а всё обзывается "по-звуковому".
Конечно его АЦП и ЦАП"ы далеко не Hi-End, а средний Hi-Fi, но для дома этого качества достаточно, а возможности очень велики. Очень хорошо, что DSP имеет двойную точность вычислений (56-бит) и она установлена по умолчанию.
Нуу... маленькие/неполные дифирамбы пропели, теперь реальность.

Плата есть в разных исполнениях:
Вариант 1
. Полная тестовая плата от производителя стоит ~12-15 тыщ рублей и позволяет вытворять всё что угодно. ИМХО самое большое преимущество перед остальными - это полный SPDIF, т.е. и цифровой вход и цифровой выход результатов. Также позволяет делать отладку алгоритмов "на лету". Заказывать "за бугром" с сайта производителя.
Вариант 2 . Это слегка обрубленный макет от МастерКит - набор BM2114dsp . У него все входы/выходы аналоговые, но отладка всё также "на лету".
Стоимость 4900 руб .
Вариант 3 . Это максимально упрощённый вариант использования DSP от "Чип и Дип" их лаборотории "Электронный войска".
Комплект называется Digital Signal Processors RDC2-0027v1, Модуль цифровой обработки звука на SigmaDSP ADAU1701, SigmaStudio
Это вариант с отсутствием программирования "на лету". Создаёшь бинарник, конвертируешь и "заливаешь" с помощью "свистка" в ERROM платы. Отнимает это немного времени, но отнимает, и требует понимания процесса. :)
Стоимость платы 950 рубликов .

Да, уточню, плата после программирования работает как независисмое устройство!!! Т.е. ПК вечно не нужен! И к плате можно подключать "крутилки" (энкодеры); кнопочки и т.д., т.е. внешних методов регулировки достаточно, не обязательно на каждый чих лезть в код DSP.
Выбор за вами...

Теперь касаемо моих хотелок из прошлого. Одна из больших проблем пассивных фильтров - это фазовые искажения и чем больше крутизна спада фильтров, тем больше фазовые искажения. Из-за них возникает множество призвуков от которых чрезвычайно сложно избавится и трудно согласовывать разные частотные диапазоны.
Данные цифровые фильтры этим не страдают и позволяют вытворять многое для согласования полос среза. Но возникает необходимость использовать вместо одного усилителя - три, по одному на каждый частотный диапазон (раз колонка 3-х полосная, то полос 3 и усилителей получается 3). Конечно, их можно оптимизировать по мощности (допустим в моём случае выйдет НЧ - 30Вт; СЧ - 20Вт; ВЧ - 10Вт), но тут на возможности и любителя, думаю унификация победит. :)

Под конец множество видео

Пример, как самому сварганить работу по "цифре"

Парень собирает монстра на двух DSP

65 нанометров - следующая цель зеленоградского завода «Ангстрем-Т», которая будет стоить 300-350 миллионов евро. Заявку на получение льготного кредита под модернизацию технологий производства предприятие уже подало во Внешэкономбанк (ВЭБ), сообщили на этой неделе «Ведомости» со ссылкой на председателя совета директоров завода Леонида Реймана. Сейчас «Ангстрем-Т» готовится запустить линию производства микросхем с топологией 90нм. Выплаты по прошлому кредиту ВЭБа, на который она приобреталась, начнутся в середине 2017 года.

Пекин обвалил Уолл-стрит

Ключевые американские индексы отметили первые дни Нового года рекордным падением, миллиардер Джордж Сорос уже предупредил о том, что мир ждет повторение кризиса 2008 года.

Первый российский потребительский процесор Baikal-T1 ценой $60 запускают в массовое производство

Компания «Байкал Электроникс» в начале 2016 года обещает запустить в промышленное производство российский процессор Baikal-T1 стоимостью около $60. Устройства будут пользоваться спросом, если этот спрос создаст государство, говорят участники рынка.

МТС и Ericsson будут вместе разрабатывать и внедрять 5G в России

ПАО "Мобильные ТелеСистемы" и компания Ericsson заключили соглашения о сотрудничестве в области разработки и внедрения технологии 5G в России. В пилотных проектах, в том числе во время ЧМ-2018, МТС намерен протестировать разработки шведского вендора. В начале следующего года оператор начнет диалог с Минкомсвязи по вопросам сформирования технических требований к пятому поколению мобильной связи.

Сергей Чемезов: Ростех уже входит в десятку крупнейших машиностроительных корпораций мира

Глава Ростеха Сергей Чемезов в интервью РБК ответил на острые вопросы: о системе «Платон», проблемах и перспективах АВТОВАЗа, интересах Госкорпорации в фармбизнесе, рассказал о международном сотрудничестве в условиях санкционного давления, импортозамещении, реорганизации, стратегии развития и новых возможностях в сложное время.

Ростех "огражданивается" и покушается на лавры Samsung и General Electric

Набсовет Ростеха утвердил "Стратегию развития до 2025 года". Основные задачи – увеличить долю высокотехнологичной гражданской продукции и догнать General Electric и Samsung по ключевым финансовым показателям.

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

Цифровая обработка сигналов DSP (digital signal processor)

Особенности DSP

DSP представляют собой специализированные процессоры для приложений, требующих интенсивных вычислений.
Если ближе рассмотреть, к примеру, процесс операции умножения двух чисел с сохранением результата в традиционных микропроцессо­рах, то можно увидеть как расходуется машинное время: сначала про­исходит выборка команды (адрес команды выставляется на шину адре­са), затем первого операнда (адрес операнда выставляется на шину адреса), затем операнд переносится в аккумулятор, далее происходит выборка второго операнда и т.д. Ускорение этого процесса в процес­соре общего назначения невозможна из-за наличия единственной шины адреса и единственной шины данных, а также единственного банка данных. Ввиду этого все операции по извлечению операндов из памя­ти, выборки команды и сохранения операнда производится последова­тельно с использованием одной и той же шины данных и шины адреса. Кроме того, если рассмотреть операцию циклического суммирования арифметического ряда, то можно видеть что здесь непроизводительные затраты времени связаны с запоминанием адреса первой команды цик­ла, с проверкой условия цикла (счетчика) и возвратом к первой ко­манде. Также большие непроизводительные затраты существуют при операциях перехода к подпрограмме и возврата (запись и восстанов­ление значений регистров из стека) и при многих других операциях. Если при этом учесть огромное количество математических операций при выполнении цифровой обработки сигналов, то станет ясно, что неизбежны весьма чувствительные потери в точности вычисления при округлениях, которые не могут не сказаться на общем результате. Это происходит по причине одинаковой разрядности всех регистров процессоров общего назначения.
При цифровой обработке сигналов все эти затраты недопустимы. С целью преодоления этого недостатка про­цессоров общего назначения и были разработаны процессоры цифровых сигналов (DSP - Digital Signal Processor).

Трехшинная Гарвардская архитектура

Ее особенность состоит прежде всего в том, что в отличии от привычных нам двух шин: шины адреса и шины данных, а также одного банка памяти, DSP имеет как минимум 6-7 различных шин и 2-3 банка памяти. Эта особенность име­ет своей целью максимально ускорить выполнение операции умножения с сохранением результата, которая, несомненно, является наиболее употребляемой и ресурсоемкой при цифровой обработке сигналов. Ар­хитектура DSP позволяет за один машинный цикл произвести:

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

Таким образом, трехшинная Гарвардская архитектура позволяет выполнить практически любую операцию за один машинный цикл.
B качестве примера эффективности использования DSP при реали­зации алгоритмов цифровой обработки сигналов можно привести следу­ющий факт: время выполнения комплексного 1024-точечного преобразо­вания Фурье составляет 20 мс для 486DX2 66 МГц (32-разрядный) и 3.23 mc для 24-разрядного 33 МГц DSP56001 фирмы Motorola или 3.1 мс для 32- разрядного 33 МГц DSP TMS320C30 с плавающей арифметикой фирмы Texas Instruments.
Однако, как уже упоминалось, процессоры цифровой обработки сигнала имеют отличием не только высокую производительность, изме­ряемую в быстроте выполнения операций умножения/аккумуляции (MIPS - миллионы команд в секунду), но и такие характеристики, как после­довательность выполнения программ, арифметических операций и адре­сации памяти, позволяющие сократить до минимума непроизводительные затраты времени. В целом DSP отличается от других типов микропро­цессоров и микроконтроллеров по следующим пяти основным признакам:

  • Быстрая арифметика.

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

  • Расширенный динамический объем для операции умножения/ак­кумуляции.

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

  • Выборка двух операндов за один цикл.

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

  • Наличие аппаратно реализованных циклических буферов(встро­енных и внешних).

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

  • Организация циклов и ветвлений без потери в производитель­ности.

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

DSP фирмы Motorola

Фирмой Motorola в настоящее время выпускается три семейства Цифровых Процессоров Сигналов. Это серии DSP56100, DSP56000 и DSP96000. Все микросхемы приведенных серий основываются на архитектуре DSP56000 и различаются разрядностью (16, 24, 32 бит соответственно) и некоторыми встроен­ными устройствами. Таким образом достигается совместимость микрос­хем всех трех семейств снизу вверх. Все DSP фирмы Motorola постро­ены по идентичной трехшинной Гарвардской архитектуре, описанной ранее, с большим количеством составных частей, портов, контролле­ров, банков памяти и шин, работающих параллельно с целью достиже­ния максимального быстродействия.
Передача данных происходит по двунаправленным шинам данных (одной для DSP56100 (XDB) и двум для DSP56000 и DSP96000 (XDB и YDB)), шине данных программ (PDB) и общей шине данных (GDB). Кроме того, у DSP96000 присутствует отдельная шина прямого доступа к памяти (DDB). Передача данных между шинами про­исходит через внутреннее устройство управления шинами.
Адресация осуществляется по двум однонаправленным шинам: шине адреса данных и шине адреса программ.
Блок манипуляции битами позволяет гибко управлять состоянием любого бита в регистрах и ячейках памяти. Наличие такой возможнос­ти является преимуществом по отношению к DSP других пользователей.
Арифметико-логическое устройство (АЛУ) выполняет все арифме­тические и логические операции и имеет в своем составе входные ре­гистры, аккумуляторы, регистры расширения аккумуляторов (8-битные, допускающие 256 переполнений без потери точности), параллельный одноцикловой блок умножения с сохранением (МАС), а так же сдвиго­вые регистры.Гибкая система команд позволяет выполнить АЛУ за один цикл команды умножения, умножения с сохранением результата, сумми­рования, вычитания, сдвига и логические операции. Характерной осо­бенностью DSP фирмы Motorola является возможность сдваивания вход­ных регистров АЛУ и увеличения таким образом разрядности обрабаты­ваемых чисел. Еще одной важной особенностью является наличие опе­рации деления, зачастую отсутствующей у других производителей и заменяемой операцией умножения на обратное число, что приводит к потере точности.
Блок формирования адреса выполняет все вычисления, связанные с определением адресов в памяти. Этот блок работает независимо от остальных блоков процессора. За один цикл могут производиться две операции считывания из памяти или одна операция записи. DSP фирмы Motorola обладают чрезвычайно мощной мощной системой адресации, позволяющей производить практически любые манипуляции с данными за одну команду. Это важная особенность выгодно отличает DSP, выпус­каемые фирмой, от аналогов. Адресация по модулю удобна для органи­зации кольцевых буферов без проверки выхода за границу, что позво­ляет избегать непроизводительных затрат времени. Возможность адре­сации с инверсией значащих битов облегчает реализацию БПФ.
Блок управления выполнением программ содержит 6 регистров, среди которых Указатель адреса цикла и Счетчика циклов , позволяю­щие организовать аппаратную поддержку организации циклов в DSP фирмы Motorola, при которой не тратятся дополнительные машинные циклы на проверку условия выхода из цикла и изменения счетчика цикла. В команде организации цикла DO явно указывается количество повторений.
Системный стек представляет из себя отдельную часть из 15 слов ОЗУ, и может хранить информацию о 15 прерываниях, 7 циклах или 15 выходах в подпрограмму. Данные из стека читаются за один цикл уменьшая таким образом непроизводительные затраты времени процессора.
Главной отличительной особенностью DSP фирмы Motorola являет­ся наличие у всех микросхем внутрикристального эмулятора , позволяющие производить отладку программ без ис­пользования дополнительных аппаратных средств. Таким образом нет необходимости в покупке дорогостоящих отладочных средств. Эмулятор позволяет производить запись/считывание регистров и ячеек памяти, установку точек останова, пошаговое выполнение программ и дру­гие действия посредством подачи команд по 4- проводной шине.
Для снижения потребления энергии в моменты, когда не произво­дится вычисления, предусмотрены два режима с пониженным энергопот­реблением: STOP и WAIT.
Для работы совместно с другими процессорами и каналами прямо­го доступа к памяти предусмотрен встроенный HOST-интерфейс.
Обладая всеми вышеперечисленными свойствами, необходимыми для цифровой обработки сигналов, DSP фирмы Motorola имеют чрезвычайно мощную и гибкую систему команд, позволяющую пользователю удобно и эффективно работать с процессорами.

Семейство DSP96000

Семейство DSP DSP96000 имеет 32-битную архитектуру и поддер­живает операции с плавающей точкой. Микросхемы семейства предназ­начены для компьютерных систем Multimedia. DSP этой серии могут работать и как самостоятельные микросхемы, и через два независи­мых 32-битных порта могут последовательно обмениваться данными с другими процессорами.
Микросхемы семейства имеют в своем составе 6 банков памяти, 8 шин и 4 автономных вычислительных блока: АЛУ, блок управления программой, двойной блок генерации адреса и встроенный двухка­нальный контроллер прямого доступа к памяти.
Характеристики микросхем семейства DSP96000:

  • 49.5 MIPS при 40 МГц
  • 60 MFLOPS при 40 МГц, цикл 50 нс
  • 32-битная организация
  • 2 банка памяти данных ОЗУ 512х32 бит
  • 2 банка памяти данных ПЗУ 512х32 бит
  • ОЗУ программ 1024х32 бит
  • загрузочное ПЗУ объемом 56 байт
  • адресуемая внешняя память 2х232 32-битных слов памяти дан­ных и программ
  • встроенный эмулятор
  • 2 канала прямого доступа к памяти
  • 2 канала обмена с внешними процессорами
  • корпус с 223 выводами в корпусе PGA или QFP

DSP фирмы Texas Instruments

DSP этой фирмы представлены следующими микропроцессорами: TMS 32010, TMS 320C20, TMS 320C25, TMS 320C30, TMS 320C40, TMS 320C50.

Особенности архитектуры ТMS320C25

Архитектура TMS320C2x основана на архитектуре TMS32010 - пер­вом члене микропроцессорного семейства DSP. Кроме того, набор его команд перекрывает набор команд микропроцессора TMS32010, что сохраняет программную совместимость снизу вверх.
Микропроцессор TMS320C2x имеет один аккумулятор и использует Гарвардскую архитектуру в которой память данных и память программ разнесены в разные адресные пространства. Это позволяет полностью перекрыть во времени вызов и выполнение команды. Система команд включает команды обмена данными между двумя областями памяти. Вне микропроцессора пространства памяти данных и программ объединены на одну и ту же шину для того, чтобы максимально увеличить диапа­зон адресов в обеих областях памяти и одновременно максимально уменьшить количество выводных контактов. Внутри микропроцессора пространства программ и данных выведены на разные шины, чтобы уве­личить мощность процессора и скорость выполнения программ.
Повышенная гибкость конструкции системы обеспечивается распо­ложенными на кристалле двумя большими блоками памяти RAM, один из которых может использоваться и как память программ и как память данных. Большинство команд процессора выполняются за один машинный цикл с использованием как внешней памяти программ с быстрой выбор­кой, так и с использованием внутренней памяти RAM. Гибкость мик­ропроцессора TMS320C2x предусматривает также подключение медленной внешней памяти или периферийных устройств, используя сигнал READY; но в этом случае команды выполняются за несколько машинных циклов.

Организация памяти

На кристалле TMS32020 находится 544 16-разрядных слова памяти RAM, из которых 288 слова (блоки B1 и B2) всегда отведены под дан­ные, а 256 слов (блок B0) в разных конфигурациях процессора могут использоваться либо как память данных, либо как память программ. TMS320C25 кроме того обеспечен маскируемым ПЗУ (ROM), объемом 4К слов, а TMS320E25 - памятью 4К слов с ультрафиолетовым стиранием EPROM.
TMS320C2x обеспечен тремя разделенными адресными пространс­твами - для памяти программ, для памяти данных и для устройств ввода/вывода, как показано на рис. 6.5. Эти пространства вне крис­талла различаются при помощи сигналов -PS, -DS, -IS (для прост­ранств программы, данных, ввода/вывода соответственно). Блоки па­мяти B0, B1, B2, расположенные на кристалле, охватывают в сумме 544 слова памяти с произвольным доступом (RAM). RAM блок B0 (256 слов) располагается на 4 и 5 страницах памяти данных, если он от­веден под данные, или по адресам >FF00 - >FFFF, если он является частью памяти программ. Блок B1 (только для данных) располагается на 6 и 7 страницах, а блок B2 занимает старшие 32 слова 0 страни­цы. Отметим, что оставшуюся часть 0 страницы занимают 6 адресуемых регистров и резервная область; 1 - 3 страницы также представляют собой резервную область. Резервные области нельзя использовать для хранения информации, при чтении их содержимое не определено.
Внутренняя память программ (ROM), расположенная на кристалле процессора может быть использована в качестве младших 4К слов па­мяти программ. Для этого на контакт MP/*MC должен быть подан сиг­нал низкого уровня. Для запрещения использования внутренней облас­ти ROM на MP/*MC надо подать высокий уровень.

Внешняя память и интерфейс ввода/вывода

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

  • 16-ти разрядной шины данных (D0-D15);
  • 16-ти разрядной шины адреса (A0-A15);
  • адресных пространств данных, программ и ввода/вывода выбираемых сигналами (*DS, *PS и *IS);
  • различных сигналов управления системой.

Сигнал R/*W управляет направлением передачи, а сигнал *STRB управляет передачей.
Пространство ввода/вывода содержит 16 портов для вводы и 16 портов для вывода. Эти порты обеспечивают полный 16-разрядный ин­терфейс со внешними устройствами по шине данных. Одноразовый ввод/вывод с помощью команд IN и OUT выполняется за два командных цикла; однако использование счетчика повторений снижает время од­ного обращения к порту до 1-го цикла.
Использование ввода/вывода упрощается тем, что ввод/ вывод осуществляется также, как и обращение к памяти. Устройства вво­да/вывода отображаются в адресном пространстве ввода/вывода, ис­пользуя внешние адреса процессора и шину данных, таким же образом, как память. При адресации внутренней памяти шина данных находится в третьем состоянии, а управляющие сигналы в пассивном состоянии (высоком).
Взаимодействие c памятью и устройствами ввода/вывода на раз­личных скоростях сопровождается сигналом READY. При связи с мед­ленными устройствами, TMS320C2x ждет, пока устройство не завершит свою работу и просигнализирует процессору об этом через линию REA­DY, после чего процессор продолжит работу.

Центральное арифметико-логическое устройство

Центральное арифметическо-логическое устройство (CALU) содер­жит 16-разрядный масштабирующий регистр сдвига, 16 x 16 парал­лельный умножитель, 32-разрядное арифметическо-логическое устройс­тво (ALU), 32-разрядный аккумулятор и несколько дополнительных сдвиговых регистров, расположенных как на выходе из умножителя, так и на выходе из аккумулятора.
Любая операция ALU выполняется в следующей последовательнос­ти:

  1. данные захватываются из RAM на шину данных,
  2. данные проходят через масштабирующий сдвиговый регистр и через ALU, в котором выполняются арифметические опера­ции,
  3. результат передается в аккумулятор.

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

Конвейерные операции

Конвейер команд состоит из последовательности операций обра­щения ко внешней шине, которые возникают в течении выполнения ко­манд. Конвейер "предвыборка-декодирование-выполнение" обычно неза­метен для пользователя, за исключением некоторых случаев, когда конвейер должен быть прерван (например, при ветвлении). Во время работы конвейера предвыборка, декодирование и выполнение команд независимы друг от друга. Это позволяет командам перекрываться. Так в течении одного цикла две или три команды могут быть активны, каждая на разных этапах работы. Поэтому получается двухуровневый конвейер для TMS32020 и трехуровневый для TMS320C25.
Количество уровней конвейера не всегда влияет на скорость вы­полнения команд. Большинство команд выполняется за одно и то же количество циклов вне зависимости от того, из какой памяти выбира­ются команды: внешней, внутренней RAM или внутренней ROM.
Добавочные аппаратные средства, имеющиеся на процессоре TMS320C25, позволяют расширить количество уровней конвейера до трех, что повышает производительность процессора. К этим средствам относятся счетчик предзахватов (PFC), 16-разрядный стек микровызо­вов (MCS), регистр команд (IR), и регистр очереди команд (QIR).
При трехуровневом конвейере PFC содержит адрес следующей ко­манды, которая должна быть предзахвачена. Как только предзахват осуществлен, команда загружается в IR. Если же IR хранит команду, которая еще не выполнена, то предзахваченная команда помещается в QIR. После этого PFC увеличивается на 1. Как только текущая коман­да будет выполнена, команда из QIR будет перегружена в IR, для дальнейшего исполнения.
Счетчик команд (PC) содержит адрес команды, которая должна быть выполнена следующей, и не используется для операций захвата.
Но обычно PC используется в качестве указателя на текущую позицию в программе. Содержимое PC увеличивается после каждой выполненной команды. Когда возникает прерывание или вызов подпрограммы, содер­жимое PC помещается в стек, чтобы в дальнейшем можно было выпол­нить возврат в нужное место программы.
Циклы предзахвата, декодирования и выполнения конвейера неза­висимы друг от друга, это позволяет перекрываться исполняемым ко­мандам во времени. В течении любого цикла три команды могут быть одновременно активны, каждая на разных стадиях завершения.