Arm’s Total Solution to the Hardware/Software Co-Design Challenge Continues to Evolve
May 25, 2022
Story
Everyone has had a conversation with that experienced engineer or tenured member of the technical staff who’s said, “IoT is nothing new. I’ve been doing that for [insert number of decades], we just called it [insert connected embedded/M2M/other term implying networked equipment].” It’s eye roll-inducing. And it’s wrong.
The IoT has redefined embedded systems engineering as we know it. It has ushered in an era where faster time to market and extended lifecycle support are expected from the same product development teams at the same time. It has forced organizations to abandon traditional development workflows and organizational structures in favor of agile practices and DevOps that can support those expectations.
The explosion of AI and machine learning technology, enabled by IoT infrastructure, has only accelerated these shifts.
The increased emphasis on design speed and flexibility driven by IoT projects has also renewed demand for hardware/software co-design solutions. Conceptually speaking, hardware-software co-design has been a part of electronics as long as chipmakers have been defining and implementing instruction set architectures. Only now, it has evolved to the system level through offerings like Arm Total Solutions for IoT that support accelerated application development, sophisticated AI model creation, and comprehensive IoT technology stacks.
On the Road to a Totally Virtual Development Experience
To understand where Arm is headed with its Total Solutions for IoT roadmap you have to consider where we started.
As mentioned, hardware/software co-design principles have been in place for decades. However, they’ve been largely unsuccessful in the embedded and IoT space because of the sheer amount and diversity of hardware solutions that are used. Creating virtual targets for all the components required to build even a relatively simple embedded or IoT device would require massive ecosystem partnerships and datacenters full of models to be effective. And even if those resources were to coalesce in some sort of universal virtual model library, the legions of cloud-native developers being introduced to IoT edge systems for the first time would be completely lost when presented with the heterogeneous spread of virtual hardware targets in need of integration.
At their 2021 DevSummit, Arm unveiled Total Solutions for IoT, an ecosystem of tools and IP constructed to reduce barriers to entry in IoT development. The heart of that iterations of the Total Solutions stack revolved around Arm Virtual Hardware (AVH) models of the Cortex-M55 CPU, Ethos-U55 microNPU, and other system and security IP that enabled software build and test before silicon availability.
Total Solutions for IoT also introduced a pre-integrated, pre-verified, and pre-validated IP subsystem called Corstone-300 based on the aforementenioned cores. While on the surface Corstone-300 served as an example subsystem for endpoint AI designs, the tools supplied around it implied much more. These included:
- Project Centauri APIs that link RTOS-based devices to the cloud
- Off-the-shelf keyword recognition machine learning models
- Application-specific reference code
For the first time, application developers had access to an end-to-end, silicon-less environment that Arm estimated would shrink development lifecycles by years.
Further Down the Road
When Arm first launched AVH there wasn’t any production silicon based on the Cortex-M55 CPU, Ethos-U55 microNPU, or Corstone-300 subsystem available anywhere. The only access software developers had to the IP was via freshly minted AVH models hosted in cloud-based virtual machines on the AWS Marketplace.
Although it was a small collection of IP, it laid the foundation for Arm to expand the Total Solutions for IoT ecosystem while giving cloud-native developers something they could digest and embedded applications engineers enough flexibility to achieve their specific design goals. This was demonstrated in the expansion of the Total Solutions portfolio this spring.
The new and improved Total Solutions for IoT ecosystem now includes seven additional virtual CPU models spanning the Cortex-M0 to Cortex-M33 families. It also adds a virtual version of the new Cortex-M85 CPU core, which exhibits performance improvements over the next-fastest Cortex-M-class device by 30 percent.
With these now part of the AVH environment, two new Corstone IP subsystems were also released. Similar to the Corstone-300, Corstone-310 swaps out the Cortex-M55 CPU core for the new -M85 core while still supporting an optional Ethos-U55 NPU. This makes it a great starting point for voice recognition designs like smart speakers, smart thermostats, and drones.
Figure 1. The Arm Corstone family of integrated IP subsystems contains all the building blocks required to develop an SoC for end use cases like voice recognition, cloud-native edge devices, and keyword spotting.
More groundbreaking advances can be found in the Corstone-1000 subsystem, which is intended as a reference for cloud-native edge devices. It’s based on a Cortex-A53 applications processor, Cortex-M CPU, and secure enclave, and packs enough performance to support rich OSs like Linux. Its integrated security features are also so robust that Arm has pre-certified the IP subsystem to PSA Level 2 out of the box.
But one of the most significant enhancements to the AVH portfolio, at least for those interested in specific hardware functionality, came from scaling up rather than scaling out. This was achieved through the inclusion of virtual models for the Raspberry Pi and NXP and STMicroelectronics development kits in the AVH library.
Virtual models of other boards from Arm silicon partners are expected to be added to AVH soon. And all of this virtual hardware – from the processor and security IP to the Corstone subsystems to the development kit targets – are available for free on the AWS Marketplace.
Virtual Hardware: It’s All About the Software
Of course, AVH on its own is not enough. To empower software engineers in their continuous integration and delivery efforts, AVH models must be compatible with the automation and development tools they use on a daily basis.
As part of this year’s Total Solutions update, Arm added integrations with the Keil Studio IDE, Jenkins automation servers, and Github for direct access to code repositories. Programmers working with AVH can also take advantage of improvements to Project Centauri that make it a true software reuse and programming framework. These include expanded support for CMSIS hardware abstraction layer features like Open-CMSIS-CDI and Open-CMSIS-Pack, which help define a common interface for microcontrollers and improve software manageability, respectively. Open IoT-SDK, a reference implementation of Open-CMSIS-CDI, is also a part of Project Centauri that brings example applications to the table that help fast-track the development of voice and keyword recognition solutions, for example.
“If you think about the way software is developed for the IoT today, it’s very tightly coupled to the hardware and every time you add a new piece of hardware you’ve got to kind of start over and port your software,” says Mohamed Awad, VP of IoT and Embedded at Arm. “The ROI is not nearly as great because you’re limited every time you write software to a smaller number of devices.
“By integrating Arm Virtual Hardware into their offerings, it becomes a natural part of the software design,” he continues. “The point is we’re going to where developers are.”
More and more it appears that “where developers are” is anywhere jumpers and cables aren’t next to a workstation. This makes it hard but to wonder if this foreshadows a not-too-distant future in which entire phases of what used to be the typical embedded engineering lifecycle cease to exist.
If that future becomes a reality, just promise you won’t tell colleagues that you remember when hardware-software co-design was called embedded engineering.