EdigE
← ЛЕНТА

STM32U3 получил отдельный мозг для сигналов и простых CNN

У датчика на моторе есть короткий шанс заметить дефект: подшипник начинает звучать иначе, вибрация получает новую гармонику, жест оставляет знакомый рисунок на акселерометре. До сих пор такой узел часто сводился к выбору между долгой работой Cortex-M33 над потоком отсчётов и передачей сырых данных наружу. В STM32U3B5 и STM32U3C5 компания ST добавила для этой сцены отдельный Hardware Signal Processor, HSP.

Сопроцессор со своей памятью и DMA

Внутри HSP работает Signal Processor Engine с собственными CROM, CRAM, DROM, DRAM и BRAM, контроллером событий, STREAM-интерфейсом и HSPDMA. Это аппаратный исполнитель вычислительных ядер, подключённый к памяти и периферии микроконтроллера. Cortex-M33 с частотой до 96 МГц остаётся управляющим ядром, однако ему уже не обязательно пошагово вести каждый фильтр и преобразование.

HSP умеет работать в accelerator mode, где программа вызывает одну операцию прямой командой. Второй режим, sequencer mode, хранит заранее подготовленный processing list и запускает его по событию. Такой список может включать FIR, IIR, FFT и векторную математику. Поток от АЦП, MEMS-датчика или аудиотракта получает шанс пройти заранее собранную цепочку без участия основного кода на каждом её звене.

Конвейер можно запустить событием

DSP-часть исполняет операции с float32. Нейросетевой участок гораздо уже: доступны 8-битные quantized point-wise и depth-wise свёртки, Conv2D, dense и 2D pooling. Этого хватает для типичной компактной сети после извлечения признаков, например распознавания активности по IMU или keyword spotting, однако архитектуру модели придётся подстраивать под перечень поддерживаемых слоёв. HSP рассчитан на конкретные вычислительные графы, а не на произвольную CNN из фреймворка.

Для спектральных задач даташит заявляет real FFT до 4096 точек и complex FFT до 2048 точек. ST также публикует внутренние сравнения, где отдельные FFT получают ускорение до 13 раз относительно Cortex-M33. Эти цифры описывают выбранные ядра и форматы данных, поэтому они не предсказывают время полного приложения с захватом данных, обменом по шине и логикой принятия решения.

Открытый пример даёт 3.13× на распознавании движений

Гораздо ближе к реальной прошивке открытый пример Human Activity Recognition. На плате NUCLEO-U3C5ZI-Q с модулем датчиков одна и та же int8-модель cnn_model_fft_ss7_quantized выполнила inference за 52.27 мс на обычном пути и за 16.70 мс с HSP. Получается 3.13-кратное ускорение для воспроизводимой связки модели, платы и конфигурации. Исходники позволяют проверить, какая часть выигрыша приходит от FFT и какая — от CNN-слоёв.

Граница проходит по памяти и графу модели

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

Красота HSP в другом масштабе задачи: маломощный MCU получает возможность держать сигнал рядом с датчиком до того момента, пока в нём не появится смысл. Это интереснее очередного «AI на микроконтроллере»: акселерометр, микрофон или токовый шунт могут выдавать ядру уже событие, класс или набор признаков. Тогда пробуждение Cortex-M33 становится частью решения, а не неизбежной ценой каждого отсчёта.