Custom ARM Instructions

Brian Benchoff
Supplyframe
Published in
2 min readOct 14, 2019

The defense against RISC-V, or more JavaScript in silicon?

This week at ARM TechCon brought fantastic news for anyone who wants a custom processor. Developers will now be able to design custom instructions for ARM microcontrollers. Yes, custom operations. Custom vector operations, even. It might just be some microcode, but this is how ARM is reacting to a changing marketshare.

The Threat of RISC-V

For more than a decade, ARM has reigned supreme in the world of microcontrollers and price-to-performance per Watt. There’s a reason your phone runs on an ARM chip, and there’s a reason your thermostat runs on an ARM chip. It’s small, extensible, and power efficient. This has changed in recent years.

With the advent of RISC-V, ARM sees a threat. RISC-V is extremely power efficient, and it can be extended to a complete Linux desktop computer. One thing ARM has that RISC-V doesn’t is licensing fees and the ability to design custom chips with an Open Source instruction set. This is the challenge ARM faces, and while they can’t compete with free, ARM certainly can allow for custom instructions. It’s all microcode, anyway, right?

It Might Be Too Late For ARM

Sipeed MAix-I module, a custom RISC-V chip that has far too many functions.

Unfortunately for ARM, RISC-V has been around for years, and already there are chips on the market. SiFive has released a small microcontroller that’s just as fast as any comparable ARM chip, and companies in China are releasing RISC-V modules with some very advanced features.

The Sipeed MAix-I module, for example, includes a ‘Neural Network Processor’, a ‘Field Programmable I/O Array’, and an audio processor with support for eight microphones. It’s also got WiFi.

These capabilities aren’t a product of RISC-V itself; these features are added when the chip is designed. This is the benefit of an Open instruction set. If you want more instructions that do other things, you can just add them. ARM simply doesn’t have this benefit, the instructions are what the chip manufacturers want to put in, not what the customer wants.

Right now, ARM custom instructions will be available only in ARM Cortex-M33 processors, microcontrollers that are firmly on the smaller size of the embedded ecosystem. These processors are optimized for power and ostensibly ‘IoT devices’, where custom instructions see the most benefit. While there isn’t a Linux port for this chip, it is a quite capable processor with DSP and SIMD instructions.

Future developments will bring ARM custom instructions to other processors, but unfortunately JavaScript is in ARM64 chips forever.

--

--