Arm just dropped a big announcement at Arm TechCon: Support for custom instructions is headed to its Armv8-M CPUs and possibly more Arm product ranges in the near future. Arm sees this as having huge applications in the IoT, 5G, and machine learning spaces in particular. For consumers, it means more power-efficient hardware, with an exciting range of new applications. Think smaller VR headsets, improved security, better cryptography, and smaller devices.
Arm is the company responsible for designing the processors that most likely live in your mobile devices and smart home appliances. By allowing OEMs to have a hand in designing their own instruction sets, those devices will potentially get significantly more powerful and efficient for the given function.
In conjunction with this news, the company will also adopt a governance model for its MBed OS (a free, open-source IoT platform). The future of MBed will be at least partly influenced by direct feedback from hardware partners. “Product Working Group” discussions will provide a clear, structured framework for this discussion. Arm is keen to point out that it is already working on suggestions from partners in the form of low-power battery optimizations.
What does this mean for me?
This move makes a lot of sense for IoT applications, but also industry 4.0, AR/VR, and more. And Arm hasn’t ruled out bringing this to its Cortex-A range either, meaning it could end up in your phone.
But for now, the focus is on IoT and other smaller applications. Here, high levels of efficiency are required in order to offer reasonable performance in a very small form factor. Arm representatives suggest that we might start to see smaller and more powerful VR headsets for example.
We're one step closer to a world where everything is connected.
What’s more, IoT opens up the sheer variety of different possible devices to an unprecedented extent. It makes less and less sense to use the same design for processors across the board, when they’re powering things as diverse as “smart pens” and “smart slippers.” This is Arm’s way of preparing for the “trillion connected devices” that pundits within the company believe are around the corner.
It means we’re one step closer to a world where everything is connected, for better or for worse.
While the technology isn’t currently being developed with smartphones in mind, there are potential future applications for devices with additional sensors, or AI smarts. The challenge here for Arm and partners will be to avoid fragmentation as a result. Android developers, for example, need to know that when they write code for one phone, it will work on most others!
How does it work?
Processors work by receiving instructions from memory and then carrying them out, roughly sequentially. The faster the clock speed, the faster the processor can get through a series of instructions.
But — as Gary explains — clock speed is not the be-all-and-end-all. Smart processor design employs all kinds of tricks to eek out more performance, such as instruction-level parallelism that allows certain instructions to be carried out simultaneously.
Moreover, customization also allows for greater performance. Because Arm chips need to serve a huge number of different products, the “standard” instructions are therefore relatively generic (though versatile). Developers therefore need to use multiple simple instructions in order to carry out some of the more complex actions they wish to accomplish. Where the hardware is specifically tailored for the device in question however, those instructions can be far more efficient at executing specific tasks. It effectively removes a layer of abstraction. This is why a GPU is so much better at performing graphics-related tasks versus a generalized CPU, even where the clock speed and transistor count may be lower.
Interleaving these custom instruction sets rather than using a co-processor should allow for even greater integration, and greater flexibility. It could even replace the need for co-processing in certain applications.
It could even replace the need for co-processing in certain applications.
Custom instructions are nothing new and have been around in other hardware for years. Typically though, they require painstaking integration between hardware and software components, custom compilers and debug tools, and more. Arm aims to make this process elegant and simple for developers, while leaving the standard instruction set intact. This solution comes with out-of-the-box support for standard compilers and debuggers and runs the new instructions alongside the standard set.
This will be available for the Arm Cortex M33 in the first half of 2020, at no additional cost to licensees. Combined with the new MBed OS Partner Governance Model, this could result in some very interesting new possibilities.
It’s an exciting/eerie prospect to think that Arm is now catering to the specific requirements of companies building connected cities and augmented reality devices. Indeed, it will be exciting to see what kinds of improvements in efficiency, security, and performance these changes yield.
Who knows, maybe it will open up some new hardware applications in smartphones too.