DSP-процессоры: назначение и особенности
DSP-процессоры: назначение и особенности
Большинство из нас в повседневной жизни постоянно сталкивается с различными компьютерными системами: процессорами общего назначения (general-purpose, в основном x86) в ноутбуках и рабочих станциях, их мощными многоядерными версиями в датацентрах, мобильными процессорами в телефонах, многочисленными контроллерами в бытовой технике и на транспорте. Но помимо всех упомянутых вариантов есть ещё одно важное, хотя и редко упоминаемое семейство: цифровые сигнальные процессоры, чаще именуемые Digital Signal Processors или просто DSP.
Именно DSP решают задачи обработки больших объёмов информации в реальном времени, возникающие при передаче данных (звонков и мобильного Интернета) в мобильных сетях, обработке фотографий и восстановлению звука. Даже в топовых телефонах вся эта работа выполняется не на мощных ARM-ядрах, а на специализированных DSP.
В этой статье будет кратко изложена история DSP, их отличие от процессоров общего назначения, особенности их архитектуры, а также будет подробно рассказано о способах оптимизации кода.
История
Первые DSP появились в 1970-х годах. Эти процессоры стали логичным развитием специализированных аналогово-цифровых устройств, предназначенных для обработки речи, прежде всего её кодирования и фильтрации (прорыв в соответствующих научно-технических отраслях стал возможен благодаря спросу на эти технологии в годы Второй Мировой войны). Трудоемкость и сложность разработки устройств под каждую возникающую задачу, а также успехи в развитии электронной базы (широкое распространение технологии MOSFET) и математических алгоритмов (БПФ, цифровая фильтрация) привели к возможности создания универсальных, т.е. программируемых, цифровых процессоров, которые могли быть с помощью программ адаптированы для широкого класса задач. Адаптируемость на практике означала снижение стоимости разработок, сокращение времени выхода на рынок (time-to-market), возможность послепродажного обновления алгоритма для устранения ошибок, возможность поддержки новых требований пользователей. Во многих случаях эти возможности с лихвой компенсировали ухудшение производительности по сравнению со специальными ускорителями.
Рис. 1 Первый крупный успех DSP: планшет Speak&Spell (Texas Instruments, 1978)
Рис. 2 С момента появления стандарта GSM DSP являются обязательным компонентом мобильных сетей
Рис. 3 Обработка изображений в камерах (дебайеризация, удаление шумов, фильтрация) также выполняются на DSP (источник: https://snapshot.canon-asia.com/india/article/en/5-things-made-possible-with-digic-image-processor)
Из-за необходимости обработки в реальном времени и экономии электроэнергии DSP сильно отличались от процессоров общего назначения. В каком-то смысле они были первым примером программируемых вычислительных ускорителей, т.е. процессоров, максимально эффективно решающих определённый класс задач.
Преимущества DSP
Чем же именно отличаются DSP от обычных мощных процессоров общего назначения, особенно таких мощных как Intel Xeon или Cortex-A, и почему процессоры общего назначения не используют для обработки сигналов? Чтобы ответить на этот вопрос посмотрим на топологию современного процессора от Intel.
Рис. 4 Intel Skylake (источник: https://en.wikichip.org/wiki/intel/microarchitectures/skylake_(client) )
Из рисунка мы видим, что значительная часть площади кристалла отводится не под вычислительные ресурсы, а под сложную логику определения зависимостей, спекулятивного исполнения (out-of-order speculative execution) и составления расписания (scheduling). В сумме накладные расходы приводят к тому, что “КПД” процессора, т.е. энергия, затрачиваемая на выполнение реальных вычислений, составляет менее 1%:
While a simple arithmetic operation requires around 0.5–20 pJ, modern cores spend about 2000 pJ to schedule it.
Conventional multicore processors consume 157–707 times more energy than customized hardware designs.
(из статьи “Rise and Fall of Dark Silicon”, приведённой в списке литературы).
Чтобы сделать сравнение более конкретным, возьмём мощный процессор общего назначения от Intel и мощный DSP фирмы Texas Instruments (например Skylake Xeon Platinum 8180M и TMS320C6713BZDP300):
Как DSP-процессор улучшает звук
Необходима некоторая пост-обработка, которая полирует и совершенствует каждый отдельный сигнал микрофона, а затем объединяет их в сбалансированный, гармоничный микс. В старые времена для этого требовался рэк, полная коробок с ручками, лампами и счётчиками, которые должны были тщательно настраиваться опытным звукорежиссером для одновременной работы.
К счастью, больше не нужно погружаться в тёмное искусство звуковой инженерии, чтобы выполнить свою работу; теперь все важные процессы могут быть выполнены одним устройством, называемым процессором цифровой обработки сигналов (англ. DSP – Digital Signal Processing). DSP-процессор может быть автономным аппаратным устройством или частью приложения, работающего на ПК, но не каждый DSP-процессор подходит для рабочих мест или университетов. DSP-процессор для видеоконференций имеет дело с видео, управлением вызовами и другими задачами; аудио – это только один из пунктов в списке дел.
В недавнем опросе 80% специалистов назвали проблемы со звуком главными источниками разочарования при проведении виртуальных встреч. Большинство видеоконференций страдают от одного и того же набора хронических проблем. Каждый из инструментов или «блоков обработки» в вашем DSP-процессоре имеет определённую цель и решает одну из следующих проблем:
Проблема №1: Слишком громко или слишком тихо
Одной из самых распространённых проблем со звуком во время видеоконференций является обычное рассогласование по уровням. Иногда люди на одной стороне звонка недостаточно громкие, а иногда они слишком громкие. Решением является автоматическая регулировка усиления (АРУ), которая регулирует уровень каждого канала микрофона (или входного сигнала с удалённой стороны) для обеспечения постоянной громкости. Как хороший звукорежиссер, АРУ немного усиливает голоса тихих спикеров и немного понижает громких. Это идеальный подход для конференц-залов, где расстояние между говорящим и микрофоном различается, поскольку в помещении выступают разные люди.
Проблема №2: Звук как из бочки
Проблема №3: Эхо, эхо, эхо.
Во время видеоконференции звук, выходящий из динамика, может быть захвачен микрофоном и повторно передан обратно на дальнюю сторону, что вызывает раздражающее эхо. Акустическое эхоподавление (англ. AEC – Acoustic Echo Canceller) в цифровом виде удаляет входной сигнал удалённой стороны из выходного сигнала, чтобы предотвратить это. Большинство приложений для проведения видеоконференций (например, Microsoft Teams, Zoom или Skype for Business) имеют одноканальный встроенный AEC, который лучше всего подходит, когда вы присоединяетесь к одному из этих собраний с ноутбука. Но для больших переговорных комнат и аудиторий с несколькими участниками и микрофонами для хорошего качества звука требуется внешний DSP-процессор, который выделяет отдельный блок AEC для каждого канала микрофона.
Проблема №4: Отвлекающий шум
В большинстве переговорных комнат присутствует некоторый фоновый шум, вызванный проекторами или компьютерами, системами отопления, вентиляции и кондиционирования воздуха, гулом в здании или окружающим шумом, проникающим извне. Люди в комнате могут не заметить этого, но микрофоны их улавливают. Эквализация может отрегулировать большую часть гула и шипения на низких и высоких частотах, но электронное шумоподавление в цифровом виде удаляет шум, который перекрывает речевой диапазон, поэтому он не слышен участникам собрания. Эффективность DSP-процессора с хорошим шумоподавлением может быть просто удивительной.
Проблема №5: А сейчас слышно?
Чем больше шума и реверберации в аудиосигнале, тем сложнее кодеку видео-конференц-связи (будь то приложение на ПК или отдельное устройство) обеспечить естественную интерактивность. Если проблемы со звуком не будут решены до того, как сигнал достигнет кодека, вам может быть затруднительно прервать другую сторону или им прервать вас. Это замедляет общение и вызывает раздражающие помехи.
Проблема №6: Звук не синхронизирован с видео
Видео обрабатывается немного дольше чем аудио при передаче по обычному Интернет-соединению. Аудиосигнал поступает на дальнюю сторону раньше, чем видео, поэтому вы слышите, как кто-то говорит, прежде чем его губы начнут двигаться. Регулируемая задержка в DSP-процессорах позволяет синхронизировать подачу звука с изображением во время онлайн-конференции.
DSP-процессор для аудио-конференц-связи должен быть расположен там, где это наиболее целесообразно для вашего использования. В малых помещениях микрофон со встроенным DSP-процессором (например, Microflex Advance MXA710 или MXA910) исключает необходимость использования внешнего оборудования и упрощает настройку. В комнатах среднего и большого размера с несколькими микрофонами и другими источниками сигнала DSP-процессор в виде отдельного устройства (например, IntelliMix P300) обеспечивает большую мощность, гибкость и возможности подключения как к аппаратным, так и программным кодекам. Кроме того, Shure также предлагает программное решение DSP, IntelliMix Room, которое может работать на ПК в помещении или на устройстве для проведения видеоконференций, что упрощает развёртывание и обеспечивает централизованное обслуживание сотрудниками IT-службы. Независимо от форм-фактора, высокопроизводительный DSP-процессор обеспечивает естественный звук, который облегчает общение без лишних усилий и максимизирует отдачу от ваших инвестиций в оборудование и технологии.
Подробнее о цифровой обработке сигнала читайте здесь.
Национальная библиотека им. Н. Э. Баумана
Bauman National Library
Персональные инструменты
DSP (Digital Signal Processor)
Реальный масштаб времени (реальное время работы, Real Time Scale) – это такой режим работы устройства, при котором регистрация и арифметическая обработка (а при необходимости и анализ, визуализация, сохранение, систематизация, синтез и передача по каналам связи) данных производится без потерь информации, поступающей от ее источника
Содержание
Описание
Цель DSP
Цель DSP состоит в том, чтобы обычно измерять, фильтровать и/или сжимать непрерывные реальные аналоговые сигналы. Большинство микропроцессоров общего назначения могут также успешно выполнить алгоритмы цифровой обработки сигналов, но у выделенного DSP обычно есть лучшая степень эффективности, таким образом, они более подходят в портативных устройствах, таких как мобильные телефоны, из-за ограничений потребляемой мощности. DSP часто использует специальную архитектуру памяти, которая в состоянии выбрать многократные данные и/или инструкции одновременно.
Цифровая обработка
Алгоритмы цифровой обработки сигналов обычно требуют быстрое выполнение большого количество математических операций и неоднократность на ряде выборок данных. Сигналы (возможно, от аудио или видео) постоянно преобразовываются из аналогового в цифровой сигнал, используются в цифровой форме, и затем преобразовываются назад в аналоговую форму. У многих приложений DSP есть ограничения на задержку; т.е. для системы, чтобы функционировать, операция DSP должна быть завершена в некотором установленном времени и задержана, обработка не жизнеспособна.
Преимущества DSP
Большинство микропроцессоров общего назначения и операционных систем могут успешно выполнить алгоритмы DSP, но не подходят для использования в портативных устройствах, таких как мобильные телефоны из-за ограничений эффективности питания. А специализированный, цифровой сигнальный процессор, однако, имеет тенденцию предоставлять решение меньшей стоимости, с лучшей производительностью, более низкой задержкой и без необходимости специализированного охлаждения или больших батарей.
Архитектура
Архитектура и ее особенности
Архитектура ЦСП имеет ряд особенностей, в отличии от микропроцессоров общего применения. Она заключается в максимальном ускорении выполнения однотипных задач по цифровой обработке сигналов (поиск сигналов, преобразование Фурье и т.п.). В математике такие задачи приводятся к более простым по правилу «разделяй и властвуй». В нашем случае таким типом подзадач является поэлементное произведение элементов многокомпонентных векторов действительных чисел(это числа, которые могут быть записаны в виде конечной или бесконечной (периодической или непериодической) десятичной дроби.) и последующему суммированию результатов произведения.
Исходя из этого, процессоры специально оптимизируют под определенные операции(в нашем случае под перемножение и суммирование). В следствии чего растет производительность и быстродействие. Первоочередно ЦСП направлены на многократное умножение с очень быстрым расчетом адресов перемножаемых элементов массивов:
Однако архитектура изменялась из-за ограниченности аппаратных ресурсов первых ЦСП. Память делилась на независимые сегменты, детерминированная работа команд(время выполнения известно) дала начало планированию работы в реальном времени, из-за маленького конвейера несанкционированные переходы происходят гораздо быстрее чем в универсальных, редкий набор регистров и инструкций.
Архитектура программного обеспечения
Цифровые сигнальные процессоры иногда используют жестко фиксированное по времени кодирование, чтобы упростить аппаратные средства и эффективность кодирования умножения. Многократные арифметические модули могут потребовать, чтобы архитектура памяти поддерживала несколько выполнений за командный цикл. Специальные средства управления циклом, такие как архитектурная поддержка выполнения нескольких командных слов в очень трудном цикле, без издержек для вызовов команды или тестирования выхода.
Аппаратная архитектура
Архитектура памяти
DSP обычно оптимизируется под потоковую передачу данных и использует специальную архитектуру памяти, которая в состоянии выбрать многократные данные и/или инструкции одновременно, такие как Гарвардская архитектура или измененная архитектура фон Неймана, которые используют отдельную программу и памяти данных (иногда даже параллельный доступ на многократных шинах данных).
Адресация и виртуальная память
DSPS часто использует многозадачные операционные системы, но не имеет никакой поддержки виртуальной памяти или защиты. Операционные системы, которые используют виртуальную память, требуют большего количества времени для переключения среди процессов, которое увеличивает задержку.
Примеры: TMS320Cхххх, ADSP-21XX
Особенности ЦСП
Характерные особенности ЦСП (DSP):
Основные параметры ЦСП
Основные параметры ЦСП:
Сферы применения
Выделяют достаточно много сфер применения ЦСП.
Сферы применения DSP:
Зачастую, это сферы, где необходима быстродействующая обработка каких либо сигналов (информации).
История
В 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.
Около пяти лет назад начало распространяться 2-е поколение ЦСП. У них было 3-и памяти для хранения 2-х операндов в одно и то же время, и включали аппаратные средства, для ускорения сложных циклов, а также существовал наименьший адресуемый элемент, способный к адресации цикла. Какие-то из них управляются на 24-х-разрядных переменных и похожей модели, но для MAC затратилось 21 нс. Это такие устройства, как: AT&T DSP16A, Motorola 56000.
Четвертое поколение лучше всего характеризуется изменениями в системе команд и кодировании/декодировании инструкции. Были добавлены расширения SIMD, VLIW и появились суперскалярная архитектура. Как всегда, тактовые частоты увеличились, MAC потребовал 3 нс.
Процессор цифровой обработки сигналов
Определение
Процессор цифровой обработки сигналов (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)
В свете этого заинтересовала возможность использовать такие DSP как:
1. Активный кроссовер для АС.
2. Инструмент рум-корекции.
Ответы
Ну вот я в процессе решения этого вопроса пришел к тому, что в отдельном устройстве для стерео нет решительно никакого смысла. Mac Mini + Dirac Live лучшее решение в DSP для дома на сегодняшний день. Для многоканального кино можно взять miniDSP или ресивер дружественной компании.
P.S. По моему мнению ключевую роль здесь играет программное обеспечение.
Хотя да, тут скрей инфо для размышления.
Я не совсем это имел в виду.
И в помянутой выше ветке и в случае с Dirac Live имеется в виду обработка средствами софта, установленного на стандартный PC или Mac. Тут вопросов нет, благо можно легко найти «народную версию» ARC System от IK Multimedia, недорогой измерительный микрофон Behringer ecm8000 и софтовый плеер с поддержкой vst-плагинов. Эта связка рабочая, проверенная (в т.ч. мной) и показала очень неплохие результаты.
И вообще все это касаемо только рум-коррекции, а я упомянул еще об использовании в качестве кроссовера с гибкой настройкой и минимальным влиянием на фазу. На основе этого возможно изготовление активной АС например такого типа.
хотелось избавиться от ПК в любом виде
miniDSP DDRC-22D, DSPeaker Anti-Mode 2.0, Emotiva XMC-1?
На основе этого возможно изготовление активной АС
Я думал над активным кроссовером некоторое время, но это надо с головой прыгать и все делать самому. Или как вариант можно использовать автомобильные решения, там как раз это вариант по умолчанию. Например, как с активным кроссовером предварительное усиление планируете делать? Для коррекции в цифровом виде без преобразования АЦП-ЦАП (тут можно воспользоваться моделью с парой выходов) я для себя ответов не нашел.
miniDSP DDRC-22D, DSPeaker Anti-Mode 2.0, Emotiva XMC-1 и т.д.
Да, но 800$, 1400$, 2500$ и т.д.
spdif-входом и 8 аналоговыми выходами
Выбор и реализация ЦАП’ля на таких платах обычно оставляет желать лучшего. Не вижу смысла пытаться лезть в бескомпромиссный звук за счет активной фильтрации и сразу же загонять себя в тупик копеечным ЦАП’лем. Тут уж если идти, то ва-банк.
Выбор и реализация ЦАП’ля на таких платах обычно оставляет желать лучшего
Соглашусь, вот это больше всего и напрягает. Но вроде как есть полностью цифровые варианты.
В общем спасибо, есть о чем подумать.
ДСП, которые умеют делать обработку звука на приходящей частоте и имеют процессор на 64 бита с плавающей запятой (как тот же Trinnov например) уже значительно дороже
Только авторизованные пользователи могут отвечать на вопросы, пожалуйста, войдите или зарегистрируйтесь.






