What does a faster filter buy on Arm’s Cortex-M42?

Illustrative Cortex-M3 die micrograph. ZeptoBars / Wikimedia Commons · CC BY 3.0
Arm has added Cortex-M42 to its Flexible Access and Total Access licensing programmes, aiming it at MCU designs that would otherwise use a Cortex-M4 or Cortex-M33. It combines Armv8.1-M and Helium vector instructions with a compact AHB interface. Helium is already available on Cortex-M52, M55 and M85, so the addition is about where Arm is offering vector processing in its MCU range. It hasn’t announced an M42 microcontroller.
The useful comparison starts with the code that is already on the chip. A Cortex-M33 with the DSP extension can already do packed arithmetic, so a fair comparison for an industrial sensor is its optimised filter on the M33 against the equivalent Helium build, with the same sample format and block size. Arm’s CMSIS-DSP library has vector versions of many kernels, but how much they help depends on what the rest of the firmware is doing. If the filter occupies a quarter of a 1 ms processing cycle, even a threefold speed-up in that filter alone saves about 167 µs, or 17% of the cycle. If the CPU was already waiting on new samples, the application might finish no sooner. That is an illustrative timing budget, not a Cortex-M42 benchmark.
Arm claims up to three times the vector compute capability and twice the vector power efficiency of Cortex-M33. Neither figure tells you the energy needed to capture and process a block of samples on a finished MCU, where memory traffic and the time spent waiting for peripherals also count. If the filter runs on the same core as a time-sensitive control task, the revealing measurement is how much time the slowest processing cycle leaves before the next deadline. The answer can change if the filter and the rest of the firmware are competing for the same memory.
Sources: Arm announcement; Arm Cortex-M33 processor; Arm CMSIS-DSP library and vector kernel notes



