Arm’s partnership-based technology model works because it’s built on shared success. The more we can do to enable our partners to succeed, the more we win because of the traction their products gain. And because our fortunes are so closely tied, it’s essential that one of our biggest skills is listening to our partners. This skill has now led us to do something that hasn’t been possible before: Allow custom instructions alongside standard Armv8-M instructions.
The Arm Custom Instructions approach, announced today by CEO Simon Segars at Arm TechCon 2019, is a significant technical evolution for Arm. It will allow designers to add custom instructions to Arm Cortex-M processors (CPUs) that address application specific tasks in embedded devices. The result will be greater differentiation, more performance and higher efficiency.
Custom instructions are not new to CPU architecture, but there has always been a trade-off between design complexity and software and tools compatibility. Custom instructions can lead to expensive engineering costs as well as a fragmented software ecosystem. We think that we have provided a solution that offers the best of both worlds – customization whilst minimizing cost and risk and maintaining a coherent software ecosystem.
Driven by the Fifth Wave of Computing
The big driver for the enablement of custom instructions on Arm is the rapid convergence of AI, IoT and 5G – the core elements of the Fifth Wave of Computing.
We asked ourselves, what is the best way to allow designers to create unique Fifth Wave of Computing products that can tap into all three capabilities? Our answer was built on the fact that the industry needed a mix of standardized features, security, efficiency, software compatibility across generations, as well as the ability to turn up certain specific abilities depending on a product’s purpose.
Arm Custom Instructions is part of a portfolio of technologies that helps get us to our goal and can be a model for a wide variety of diversified devices.
Building on the past
Workload-specific optimization has been part of the Arm story forever, whether in the CPU instruction set or in dedicated coprocessors, such as GPUs (graphics processing units) and NPUs (neural processing units, also known as AI accelerators). A coprocessor interface has been part of several Arm CPU designs, enabling partners to introduce their own accelerators. These are essentially parallel computing engines external to the CPU. They address many use cases, but there are those that would be better-served by a finer-grained level of integration, with custom logic interleaved with standard CPU operation.
This is exactly what Arm Custom Instructions achieves: Establishing the Arm CPU as a chassis that our partners can use to differentiate with their own technology.
Coming to the Arm Cortex-M33 first
The first core to benefit from Arm Custom Instructions will be the Arm Cortex-M33 CPU, a versatile Arm-v8 core with DSP, Arm Trustzone technology for security and Memory Protection for task isolation. Following that, all future Cortex-M CPUs will get the same functionality.
We’re focusing on Cortex-M cores because they comprise more than half of all shipping Arm CPUs and because they are optimized for low power. Adding specific compute firepower for features that may not be used is always going to be a trade-off. By reserving space for custom instructions, designers have the choice to add instructions to solve application-specific, repetitive algorithmic tasks. If they do opt for greater customization, they can then finely balance their power and capability requirements.
As I stated previously, custom instructions are not a new concept. However, achieving the balance between risk and reward has confined this approach to niche applications. As we address Fifth Wave of Computing opportunities, we need new ways to enable our partners to find solutions for a world of trillions of AI + 5G-enabled IoT devices.
So, for all the reasons I’ve set out, I think we have found the ‘third way’ through Arm custom instructions. We have balanced partner needs for the ability to add more customization, while ensuring we don’t break the architecture governance uniting all Arm cores and causing headaches for the software ecosystem.
We coined the phrase ‘customization without fragmentation’, and I think that is the trick we’ve just pulled off.
Discover how Arm Custom Instructions enable you to go further than ever before with the Arm ecosystem.