IoT architects face a dilemma in partitioning the compute power of their systems between the cloud and the edge. The cloud offers large storage and heavy duty compute power, making it an attractive place to perform the computation needed for IoT tasks. However, moving large amounts of data from the edge to the cloud servers, can easily swamp the available bandwidth. Plus, moving data can be power intensive, in and of itself. In addition, many IoT applications need lower latency than can be achieved by relying on cloud compute resources for executive actions.
Originally, IoT end point devices sported small MCU’s like the ATMEL AVR series, but the demands on these devices quickly swamped their capabilities. As a result, a new class of processors was spawned, most notable of which is the Cortex M family. The Cortex-M0 is an energy sipping processor ideally suited for low power IoT applications. Just the same, sensor fusion and increasing complexity have created the need for significantly more powerful processors. The Cortex M family now spans from the M0, to the M7 – a formidable processor with very advanced features.
The M7 was introduced in 2014, and many foresaw that it would bring extremely high performance and security, with low power draw. One of its major features is a superscalar architecture with a 6 stage dual issue pipeline which provides faster instruction execution – almost 2X the M4. It offers more options for memory configuration and can run at higher speed than its predecessors.
The fulfillment of the promise of a core delivered by ARM depends heavily on the specific implementation. ST has embraced the ARM Cortex M series with its STM32 family of microprocessors. Their first one was the STM32 F1 in 2007. Over the years they added many more. One of these was a Cortex-M7 implementation – the STM32 F7, but they just added a new high performance processor to their lineup.
I had a chance to visit the ST booth at the ARM 2016 Techcon in Santa Clara, where ST was demonstrating their new STM32 H7, which is their Cortex M7 implemented at 40nm. This node was chosen for its Flash memory process and higher speeds relative to the previous 90nm F7. The results are impressive.
Just looking at the processor, we can see that it achieves a very high score of 2010 on the CoreMark benchmark. This is double what the STM32 F7 delivers. Even more impressive is that the chip only requires 278uA/MHz, half of the F7 consumes. This is important because the STM32 H7 now makes more complex computation possible in edge devices, while also permitting longer battery life.
But processor speed and efficiency are only part of the picture. ST has designed the H7 with three power domains to allow flexibility in power management. Unused domains can be shutdown to save power. The 40nm process node offers dynamic voltage scaling. Below is a diagram that shows the power domain partitioning.
The STM32 H7 is not lacking in security features either. Edge nodes in the IoT present a higher potential security vulnerability than physically secure sever and hub devices. To deal with this, secure boot and code security are necessary. Also software updates need secure validation to deter malware and tampering. The STM32 H7 is designed to deal with eavesdropping, server spoofing, and fake devices.
ST has included secure memory for the system and application usage. There are embedded and protected cyptographic keys. To facilitate secure communications, the H7 adds a cryptographic HW accelerator, a hashing accelerator and a true random number generator. For code security there is flash memory read and write access protection, a memory protection unit and tamper protection.
At ARM Techcon I was able to watch the demo they provide with the development boards. On a small LCD touch screen they were running 4 concurrent videos using hardware acceleration. They also showed me another impressive demo that highlights their double precision FPU capabilities.
The smaller of the development boards looks something like an Arduino board with the standard Arduino IO pins. The larger board has a large number of interface options including video, networking and much more. The device is pin compatible with its predecessor. The software development ecosystem of development tools and libraries is comprehensive. Many high level interfaces are available for peripherals to make development easier and more efficient. Below is an overview of the ecosystem
There is a lot more about the STM32 H7 that makes it very compelling for IoT developers besides its high performance. I’ve not even touched on the extensive device and protocol support built in to the device. I’d encourage you to dig deeper by looking at the ST website.