With its widely varied smart devices, the Internet of Things (IoT) is creating a demand for microcontrollers made application specific by software instead of dedicated system on chip (SoC) designs. "The Internet of Things for us is about the sale of microcontrollers,” said ARM Ltd. CEO Warren East.  “We think it is likely to follow a similar path to mobile phones." He estimated that 8 billion MCUs shipped per year across all applications. Last year 15% of MCU shipments were based on the ARM architecture. With MCUs, one silicon device can address a wide range of applications simply by changing the program code, thus reducing the design cycle time and cost to build an SoC for individual market opportunities.
Yet another reason for MCUs instead of SoCs in IoT applications is government agency certification. “Electronics are proliferating in safety-critical applications and designers need simplified system certification and development,” wrote MCU Designline editor Colin Holland.  “Sectors being looked at include industrial, medical, automotive, mil/aero, and solar energy.” This argues for a common CPU and operating system not only to eliminate an SoC design cycle but also to shorten the regulatory review process.
This renewed interest in building microcontroller devices to power the devices comprising the IoT has cast a critical eye at the memory architecture used to contain the program code of these devices. The most common solutions currently include ROM, embedded flash, and a combination of an external serial EEPROM and on-chip shadow SRAM. The serial EEPROM provides permanent program storage during sleep or when power is removed, while the shadow SRAM provides the memory that the CPU uses to execute the microcontroller’s program.
Although these approaches serve the purpose, they also have drawbacks. Antifuse nonvolatile memory (NVM) provides an alternative. This article takes a look at the technology and recent advances that make it a good solution for IoT MCUs.
Security and design requirements of IoT microcontrollers
Because the IoT is based on machines communicating with one another without operator intervention, one of the fundamental requirements for being designed into these devices is protection from hacking.  For high security, the main control program of an IoT device within an embedded system should be locked in non-changeable NVM to prevent unauthorized changes by hackers. Another secure area of memory hidden from passive physical attacks is needed for authentication. Finally, a small section of few-time programmable memory is needed to accommodate secure updates.
Beyond security, IoT devices have the additional requirement of operating off battery power or harvesting energy for months or years (see table 1). Another design consideration is program storage capacity. The sophistication expected of IoT devices can result in code size of as much as 8 Mb. Performance is another major demand of an IoT device’s memory subsystem. The microcontroller needs a memory bus bandwidth on the order of 400 MB/s. Finally, because the microcontroller must fit into a small form factor IoT device, it requires a silicon area of under 4 mm2.
Table 1 shows the active and standby power an IoT device will require.