Ключевые соображения при разработке пользовательских Dsp-процессоров для нишевых приложений
Почему пользовательские DSP-процессоры необходимы для нишевых приложений
Во многих специализированных областях, таких как медицинская визуализация, промышленная автоматизация, аэрокосмическая телеметрия или высококачественное аудио, требования к обработке сигналов выходят далеко за рамки того, что могут эффективно доставлять универсальные цифровые сигнальные процессоры (DSP) или программируемые на полевых условиях массивы затворов (FPGA). Готовые компоненты предназначены для широких рынков и часто заставляют инженеров идти на компромисс по энергопотреблению, задержке или точности. Пользовательский процессор DSP, адаптированный к одному приложению, может достигать улучшений производительности на ватт, детерминированного времени и интеграции функций. Однако разработка такого процессора требует навигации по сложному набору дизайнерских решений, которые охватывают алгоритмы, аппаратную архитектуру и проверку. В этой статье рассматриваются критические факторы, которые определяют успех при создании пользовательских процессоров DSP для нишевых приложений.
Deep Dive в требованиях к приложениям
Перед написанием одной строки языка описания аппаратного обеспечения инженерная команда должна установить полное понимание задействованных сигналов и ограничений целевой среды. Это выходит за рамки простого указания «нам нужно обрабатывать аудио» или «мы обрабатываем данные радара». Инженеры должны количественно оценить такие параметры, как скорость выборки, длина слова (битовая глубина), динамический диапазон и максимально допустимая задержка от ввода до вывода. Например, датчик лидара для автономных транспортных средств может потребовать задержки обработки в течение нескольких миллисекунд, в то время как медицинская ультразвуковая система может терпеть несколько миллисекунд, но требует массивной пропускной способности данных. Анализ требований также должен учитывать факторы окружающей среды: диапазон температур, вибрация, электромагнитные помехи и доступное охлаждение. Процессор, предназначенный для полезной нагрузки спутника, будет иметь очень разные потребности в надежности и радиационной жесткости, чем тот, который используется в студийной смесительной консоли. Создание подробного документа требований, в идеале с входом от экспертов домена и конечных пользователей, предотвращает дорогостоящие редизайны позже в проекте.
Характеристики сигналов и точность
Характер входных сигналов диктует множество архитектурных вариантов. Для узкополосных аудиоприложений может быть достаточно 16-битной арифметики с фиксированной точкой, но для сжатия или спектроскопии радиолокационных импульсов становятся необходимыми 32-битные представления с плавающей точкой или даже пользовательские представления с плавающей точкой. Аналогичным образом требования к соотношению сигнал-шум (SNR) приводят к принятию решений по выбору аналого-цифрового преобразователя и внутреннему шумовому бюджетированию. При проектировании пользовательского DSP инженеры могут определить индивидуальный формат номера, который точно соответствует потребностям динамического диапазона алгоритма, уменьшая площадь аппаратного обеспечения и мощность за счет устранения неиспользованных битов.
Ограничения в реальном времени
Обработка в реальном времени является отличительной чертой приложений DSP. Процессор должен гарантировать, что каждый образец или кадр обрабатывается в фиксированном временном окне, или система выходит из строя. Пользовательское оборудование здесь превосходит, потому что оно устраняет непредсказуемые опасности кэширования и трубопроводов процессоров общего назначения. Однако компромисс заключается в том, что любая неверная оценка времени выполнения в худшем случае может привести к сбою системы. Поэтому необходим тщательный анализ путей передачи данных, пропускной способности памяти и одновременных операций. Инженеры часто используют циклоточные симуляторы для проверки того, что пользовательский дизайн отвечает временным ограничениям при всех допустимых шаблонах ввода.
Hardware Architecture Design Выбор
После того, как требования ясны, следующим важным шагом является определение микроархитектуры процессора. Архитектура должна балансировать гибкость, производительность, мощность и стоимость. Следующие подразделы описывают основные соображения.
Тип процессора: Fixed vs. Programmable
Фундаментальное решение заключается в том, будет ли пользовательский DSP использовать аппаратные блоки с фиксированной функцией или программируемые ядра (или гибридные). Пути передачи данных с фиксированной функцией чрезвычайно эффективны для конкретного алгоритма — например, FIR-фильтр, построенный из выделенных многократно накапливаемых блоков и задержек, — но они не могут быть перепрофилированы. Программируемые ядра, такие как пользовательский RISC-V с расширениями DSP, предлагают гибкость для обновления алгоритмов после развертывания. Многие нишевые приложения получают выгоду от гетерогенной архитектуры: одно программируемое ядро контроллера для конфигурации и секвенирования и несколько выделенных блоков ускорителя для наиболее вычислительных ядер. Например, пользовательский процессор для программно-определяемых радиостанций может включать программируемое ядро для логики модуляции / демодуляции и фиксированных функциональных фильтров FIR и ускорителей FFT.
Дизайн иерархии памяти
Часто пропускная способность памяти является узким местом в системах DSP. Настраиваемая конструкция позволяет инженерам точно адаптировать иерархию памяти к потоку данных. Ключевые решения включают количество и размер банков SRAM на чипе, использовать ли многопортовые воспоминания для одновременного чтения / записи и включение воспоминаний с нуля для временных результатов. Для потоковых приложений часто используется двойное буферирование (буферы пинг-понга), чтобы один буфер был заполнен через DMA, в то время как процессор работает на другом. Внешний интерфейс памяти также заслуживает внимания: контроллер SDRAM, настроенный на шаблоны доступа приложения, может значительно улучшить пропускную способность. Каши с низкой задержкой редко используются в пользовательских DSP, потому что их поведение менее предсказуемо; вместо этого инженеры предпочитают статически распределенные воспоминания на чипе.
Периферическая интеграция
Пользовательский DSP часто должен взаимодействовать непосредственно с датчиками, исполнительными механизмами или преобразователями данных. Интеграция периферийных устройств, таких как SPI, I2C, I2S или высокоскоростные приемопередатчики LVDS непосредственно на чипе, уменьшает количество компонентов, пространство на плате и задержку. В нишевых приложениях стандартным периферийным устройствам может потребоваться настройка - например, многоканальный аудиоинтерфейс, который поддерживает именно требуемые скорости выборки и количество каналов, а не общий аудиокодек. Инженеры также должны рассмотреть использование выделенных контроллеров DMA, которые могут перемещать данные между периферийными устройствами и памятью без вмешательства процессора, освобождая вычислительные ресурсы для выполнения алгоритма.
Техники управления электроэнергией
Потребление энергии является критическим ограничением, особенно для управляемых батареей или термически ограниченных систем. Пользовательские процессоры могут включать в себя расширенные функции управления питанием: множественные области напряжения и частоты, стрелки часов для неиспользуемых блоков и режимы снижения мощности на основе данных. На архитектурном уровне снижение активности переключения посредством непрозрачной изоляции операнда и использование арифметики с фиксированной точкой вместо плавающей точки может сократить мощность наполовину или более. Например, пользовательский DSP для слышимого устройства может работать на очень низкой тактовой частоте и использовать транзисторы с напряжением около порога, достигая мощности на уровне милливатта для обработки звука в реальном времени. Команда разработчиков должна выполнить анализ мощности на ранней стадии архитектуры, используя инструменты, которые оценивают динамическую и статическую мощность на основе факторов активности.
Алгоритм оптимизации для реализации аппаратного обеспечения
Написание алгоритма в C или MATLAB и затем «портирование» его на аппаратное обеспечение редко бывает эффективным. Вместо этого алгоритм и архитектура должны быть кооптимизированы. В этом разделе обсуждаются общие методы преобразования.
Фиксированная арифметика и оптимизация длины слова
Арифметика с плавающей точкой дорогая в области аппаратного обеспечения, мощности и задержки. Большинство пользовательских DSP используют представления с фиксированной точкой с тщательно подобранными длинами слов для каждой переменной. Инженеры должны анализировать динамический диапазон алгоритма и шум квантования, чтобы определить минимальный необходимый целочисленный и дробный биты. Для многоступенчатых алгоритмов могут использоваться разные длины слов для разных этапов - например, 24-битные промежуточные данные в фильтре, но 16-бит на выходе. Это снижает стоимость аппаратного обеспечения при сохранении качества сигнала. Расширенные методы, такие как плавающая точка (где блок данных разделяет общий показатель), могут приблизиться к динамическому диапазону с плавающей точкой с эффективностью фиксированной точки.
Параллелизм и пипелинизм
Нишевые приложения часто требуют высокой пропускной способности. Пользовательские DSP могут использовать несколько уровней параллелизма. Параллелизм на уровне инструкций может быть достигнут через архитектуры VLIW (очень длинное слово инструкции), которые выдают несколько операций за цикл. Чаще параллелизм на уровне данных используется путем репликации функциональных блоков: например, банк многофазного фильтра может использовать 8 параллельных многофазных накопительных блоков, работающих на разных фазах одновременно. Пипелининг делит обработку на этапы, чтобы каждый этап мог работать на разных участках данных одновременно. Ключ заключается в разработке трубопровода, который уравновешивает этапы и избегает опасностей. Развертывание цикла и программная пиплайнинг являются методами, используемыми в программируемых пользовательских процессорах, в то время как ускорители фиксированной функции могут быть глубоко проложены для достижения одного образца на пропускную способность цикла.
Алгоритмические трансформации
Иногда сам алгоритм может быть реструктурирован в соответствии с аппаратным обеспечением. Например, преобразование свёртки временной области в метод частотной области с использованием FFT может уменьшить операции для длинных фильтров. Аналогично, использование распределенной арифметики для фильтров FIR заменяет множители таблицами поиска и аддиторами, которые могут быть более эффективными в пользовательских конструкциях на основе FPGA. Для адаптивных фильтров алгоритмы, такие как наименее средний квадрат (LMS), могут быть модифицированы для использования обновления на основе знака для устранения множителей. Эти преобразования должны быть проверены, чтобы гарантировать, что они соответствуют требованиям точности и стабильности приложения.
Инструменты и языки разработки
Создание пользовательского процессора DSP требует надежного потока разработки. В то время как в статье первоначально упоминались VHDL или Verilog, многие команды теперь используют SystemVerilog или даже синтез высокого уровня (HLS) с использованием C++ или SystemC. HLS позволяет разработчикам алгоритмов писать на более высоком уровне абстракции, но инженеры должны тесно направлять инструмент синтеза для достижения желаемой микроархитектуры. Для проверки универсальная методология проверки (UVM) является стандартной для сложных конструкций. Ко-симуляция с алгоритмическими моделями (например, Python или MATLAB) помогает обеспечить, чтобы аппаратное обеспечение вело себя точно так, как предсказывает системная модель. Кроме того, прототип FPGA может работать с уменьшенной тактовой частотой (часто 10-20% от конечной скорости ASIC), но позволяет проводить тестирование в реальном мире с фактическими датчиками и интерфейсами задолго до того, как чип будет изготовлен.
Внешний ресурс: Для глубокого погружения в архитектуры обработки цифровых сигналов см. Обзор архитектуры DSP компании ScienceDirect.
Стратегии проверки, проверки и тестирования
Поскольку пользовательский DSP часто является сердцем системы, имеющей критическое значение для безопасности или высокой ценности, исчерпывающая проверка является обязательной. План проверки должен охватывать функциональную корректность, закрытие времени и целостность мощности. Формальные инструменты проверки могут доказать, что RTL соответствует предполагаемому поведению для всех возможных входов - мощная техника для логики управления. Для блоков DSP с ограниченным случайным охватом используются ограниченные случайные испытательные стенды с группами покрытия. Точные тесты сравнивают выход RTL-симуляции с выходом золотой эталонной модели (например, модель с плавающей точкой C) с использованием идентичных стимулов ввода. Эмуляция (с использованием эмуляторов на основе FPGA) может запускать миллиарды циклов, выявляя ошибки, которые появляются только после нескольких часов времени выполнения.
Тестирование на углах температуры и напряжения
Нишевые приложения часто работают в экстремальных условиях. Настраиваемый чип должен быть охарактеризован по всем углам процессов, напряжения и температуры. Проектные команды должны интегрировать встроенные самотесты (BIST) для памяти и логики, а также сканировать цепочки для производственных испытаний. Для критически важных приложений, таких как авионика, процессору может потребоваться соответствовать уровням гарантии проектирования DO-254, требующим строгой прослеживаемости от требований к тестам.
Интеграция, развертывание и долгосрочная поддержка
Окончательные задачи включают интеграцию пользовательского DSP в большую систему и поддержание ее в течение ее жизненного цикла. Управление тепловой энергией является основной проблемой: процессор, который рассеивает 10 Вт в небольшом пакете, требует подробного теплового моделирования и, возможно, тепловых поглотителей или принудительного воздуха. Секвенирование и отсоединение мощности должны быть тщательно разработаны, чтобы избежать защелки или падения напряжения. На стороне программного обеспечения программируемый пользовательский DSP нуждается в комплекте разработки программного обеспечения (SDK) с компилятором, ассемблером, отладчиком и библиотеками. Даже для ускорителя с фиксированной функцией необходима модель программирования и драйверы регистрового уровня. Документация должна быть тщательной, охватывая не только спецификацию оборудования, но и предполагаемые модели использования и известные ограничения.
Внешний ресурс: Книга Цифровая обработка сигналов во встроенных системах даёт практические рекомендации по проблемам интеграции.
Тематические исследования: пользовательский DSP на работе
Медицинский ультразвуковой луч
Стартап, разрабатывающий портативный ультразвуковой зонд, разработал пользовательский DSP, который выполнял 64-канальное динамическое формирование луча на чипе. Благодаря интеграции аналогового управления фронтальным лучом, вычислению задержки луча и обнаружению оболочки в одном процессоре, они сократили площадь платы на 80% и энергопотребление до 1,5 Вт, что позволило работать от батареи. Ключевым выбором дизайна была архитектура систолического массива, которая обрабатывала все каналы параллельно без внешних узких мест памяти.
Мониторинг промышленных вибраций
Предприятию по автоматизации производства нужен был процессор для предиктивного обслуживания, который мог бы анализировать вибрационные сигналы от десятков датчиков одновременно, выполняя FFT и обнаружение аномалий в реальном времени. Готовые решения были либо слишком медленными, либо потребляли слишком много энергии. Они разработали индивидуальный многоядерный DSP, где каждое ядро обрабатывало набор датчиков с общей памятью для межядерной сигнализации. Результатом стало улучшение пропускной способности на ватт в 20 раз по сравнению с альтернативой на основе FPGA.
Внешний ресурс: Подробнее о заказном дизайне DSP для промышленных приложений см. Эта статья на Embedded.com о промышленном дизайне IoT DSP .
Обычные подводные камни и как их избежать
- Если смотреть на узкие места в памяти: Даже самые быстрые арифметические единицы бесполезны, если данные не могут быть доставлены. Всегда моделируйте подсистему памяти с реалистичными шаблонами трафика на ранней стадии.
- Недостаточная проверка угловых случаев: Алгоритмы DSP могут проявлять неожиданное поведение на границах сигнала (например, переполнение в IIR-фильтрах). Создавать тестовые случаи, которые подчеркивают крайности амплитуды, частоты и комбинированных сигналов.
- Недооценка энергопотребления: Динамические шкалы мощности с квадратом напряжения; небольшое увеличение рабочего напряжения для соответствия времени может вызвать значительное увеличение мощности.Использовать энергоосознанный синтез и проанализировать падение напряжения в плане пола чипа.
- Игнорирование усилий программного обеспечения: Программируемый пользовательский DSP полезен только в том случае, если у него есть приличная инструментальная цепочка. Выделите бюджет для портирования компилятора или, по крайней мере, надежную библиотеку C общих функций DSP.
- Перенастройка: Добавление слишком большого количества специальных функций может сделать процессор сложным для проверки и документирования. Используйте правило 80/20: реализуйте функции, которые дают наибольшую выгоду за счет стоимости.
Заключение
Разработка пользовательского процессора DSP для нишевого приложения является сложной, но полезной инженерной задачей. Она требует глубокого понимания сигналов и ограничений приложения, тщательного совместного проектирования алгоритмов и архитектуры и дисциплинированного подхода к проверке и тестированию. Сосредоточив внимание на ключевых соображениях - анализе требований, архитектурном выборе, оптимизации алгоритма и тщательной проверке - инженеры могут предоставить процессор, который намного превосходит производительность, мощность и уровень интеграции любой готовой альтернативы. Авансовые инвестиции выплачивают дивиденды в продуктах, которые меньше, более эффективны и уникально оптимизированы для их миссии.