While IoT devices are embedded systems, not all embedded systems are IoT devices. At least, not yet.
ARM's sale to Japan's SouthBank Group is now final, and ARM has disappeared from the stock market to become just another division of the telecom giant. SouthBank's intent is to position itself to address the paradigm shift in communications and computing known as the Internet of Things. This positioning may have great significance for embedded developers.
There's an important distinction arising. Devices that belong to the Internet of Things (IoT) are clearly embedded systems—there are processor chips in them gathering information and responding algorithmically to control the system's behaviour. But two key characteristics of IoT devices–network connectivity and essentially autonomous operation–are not necessarily present in an embedded system. In fact, traditionally they have been absent from most embedded systems, which were designed for stand-alone operation. So, while IoT devices are embedded systems, not all embedded systems are IoT devices.
While ARM is not a chip manufacturer, most of the processor manufacturers–including fabless ones – have licensed the ARM architecture and offer ARM-based chips. According to ARM's estimates, about 25% of embedded processors use the ARM architecture. For ARM to now be part of a company aiming to focus on connected systems implies that traditional, non-connected embedded projects may find themselves starting to become marginalised as the architecture evolves toward meeting IoT needs.
Reinforcing this trend is the movement of other processor vendors toward an emphasis on the IoT. Intel, for instance, has been sharpening its focus on the IoT as well as server applications, recently dropping some of its other businesses to free resources. Similarly, Atmel, NXP (Freescale), and TI are pouring millions of dollars into development related to addressing the needs of IoT designs.
This magnitude of investment means there is less effort going into addressing traditional embedded needs. The IoT-related development does provide some benefit to the traditional embedded developer. One of the most significant is reduced power consumption. Many IoT applications aim at battery-powered operation, but the development that goes into reducing processor power benefits nearly every embedded application.
But the connectivity inherent in IoT designs brings with it a host of requirements not present (or at least not as significant) in traditional embedded. Adding network connectivity to an embedded system involves much more than simply attaching a radio chip to the embedded processor. With a connection to the network the embedded system becomes exposed to the entire world, with all the associated risks. So, development of IoT-targeted processors must spend considerable energy to add and improve security.
Take, for example, the recently released ARC SEM processor cores from Synopsys. They are designed to scramble addresses during execution, have flattened instruction timing to foil side-channel attacks, and have the ability to encrypt and decrypt data on the fly so that the contents of external memory are protected. Most IoT designs will need such features, but probably not most traditional embedded designs. The resources spent on developing these features, though, are not available to refine traditional microcontrollers. So the traditional developer is beginning to lose ground to a related, but diverging, set of market needs.
At the same time, many traditional embedded applications are beginning to take note of the advantages connectivity brings. An industrial control system becomes much more valuable to the end user if the information it collects while doing its job can also be subjected to in-depth analysis or massively archived. Providing these capabilities requires a massive design upgrade in a stand-alone design, but the addition of connectivity provides virtually unlimited resources for analysis and storage at a much lower cost. Applications that were not practical with traditional embedded design become almost simple with connectivity–and the cloud resources it brings to bear–added into the mix.
So what does all this mean to the traditional embedded developer? Two things, in my opinion. One is that stand-alone embedded system designs are going to decline both in market and performance, while connected embedded systems (i.e., IoT designs) are going to become dominant. The applications where including connectivity isn't cost-effective are going to become fewer and further between. The other implication is a consequence of the first. Embedded developers need to embrace connectivity and learn to deal with its challenges, or find themselves increasingly marginalised.