1 
How to Select Hardware 
forVolume IoT Deployment? 
Peter.Aldworth@arm.com
How to Select Hardware forVolume IoT Deployment 
 Very broad topic! 
 Let’s start by focusing on MCU selection: 8/16-bit vs ARM Cortex-M processors 
 We need to think beyond the processor HW 
2 
 Think at the IoT product level and consider complete BOM costs including sensors, radio and PSU 
 Consider tools/ecosystem too 
 I’m hoping that this presentation is a starting point for our conversation on this topic 
 Material presented here is preliminary/incomplete 
 Please ask questions 
 If there is interest I can run another presentation in the future to focus on your areas of interest
What Does Processor Selection Impact? 
 HWproduct BOM 
3 
 Direct cost of silicon area to implement 8/16-bit or 32-bit processor gives tiny contribution to BOM 
 Indirect costs more important: Code density, Clock speed needed to meet required 
performance/latency, power management features,MCU parts available with appropriate integrated 
features 
 Lifetime costs 
 Operation period between battery replacement/recharge 
 Ability to adapt to mid-life upgrade/update (firmware updates needing increased 
performance/memory) 
 Development and Deployment costs 
 Modern development tools, languages, ease of code reuse, availability of comprehensive debug/trace 
features
8/16-bit vs ARM Cortex-M:Aren’t 32-bit Instruction Bigger? 
 Most architectures have a range of 
instruction sizes 
 For Dhrystone:Average Cortex-M0 
instructions size is only 17-bits 
4 
 Application code density depends on 
richness of instruction set & CPU arch 
 Multi-transfer data operations 
 Rich set of addressing modes 
 Rich set of arithmetic operations 
 Size of internal register bank 
 Conditional execution 
 Combined compare and branch 
 Automated function entry/exit (stack) 
 Size of directly addressable memory 
 Example of Dhrystone code size in bytes 
 8051 3186 bytes vs M3  900 bytes
8/16-bit vs ARM Cortex-M:Aren’t 8/16-bit More Efficient? 
5 
 8/16-bit processors require more clock 
cycles to perform an equivalent operation 
 More cycles to fetch instructions 
 More instructions to perform an operation* 
 More cycles for multiplies, divides etc 
 More cycles to transfer data (narrower bus) 
 Using aARM Cortex-M core enables 
 Lower frequency (and lower voltage) 
 Higher (maximum) performance 
 Greater overall efficiency 
* Better code density
8/16-bit vs ARM Cortex-M: 32-bit MCUs are more expensive? 
 Quick survey on http://www.newark.com/ (electronics component distributer): 
6 
 Search for 8, 16, and ARM MCUs with 
◦ 128KB – 256 KB of “Program Memory” 
◦ 16KB – 32KB of “SRAM” 
◦ Results only show prices for low volume purchase so not representative of high volume BOM cost 
 22 results for 8-bit MCU: Price range $3.40 - $9 
 120 results for 16-bit MCU: Price range $3 - $40 
 370 results for ARM MCUs: Price range $1.80 - $19 
 If you compare MCUs with similar features ARM based designs are the same price or 
cheaper than 8/16-bit devices 
 Lowest IoT product BOM will use modern MCUs integrating radio etc.
8/16-bit vs Cortex-M:What About Power Consumption? 
7 
 Cortex-M processors have architecturally 
defined power modes 
 Complete operation then sleep 
 Code density saves power 
 NOR Flash reads are a large part of power 
budget 
 Better code density means fewer reads to 
execute application 
 Cortex-M + cache saves more power 
 Few cycles and shorter execution time 
means that MCU spends more time in low 
power state
ARM® Cortex®-M Product Line 
8 
Lowest cost 
Low power 
Lowest power 
Outstanding energy efficiency 
Performance efficiency 
Feature rich connectivity 
Digital Signal Control (DSC) 
Processor with DSP 
Accelerated SIMD 
Floating point (FP) 
Digital Signal Control application space 
‘16/32-bit’Traditional ‘8/16-bit’Traditional application space application space 
Low power implementation 
Sleep mode support 
Wake-up Interrupt Controller 
Increased intelligence at node 
Broad tools and OS support 
Binary compatible roadmap 
CMSIS support 
Pure C target 
32-bit RISC architecture 
High efficiency processor cores 
Integrated Interrupt Controller 
Thumb®-2 code density 
Area optimised designs 
CoreSight™ support
ARM® Cortex® Processor feature set comparison 
9 
Cortex-M0 Cortex-M0+ Cortex-M3 Cortex-M4 
Instruction set architecture Thumb, Thumb-2 System 
Instructions 
Thumb, Thumb-2 System 
Instructions 
Thumb + Thumb-2 Thumb + Thumb-2, 
DSP, SIMD, FP 
DMIPS/MHz 0.84-1.21 0.93-1.31 1.25-1.89 1.25-1.95 
CoreMark/MHz 2.33 2.42 3.32 3.40 
Bus interfaces 1 1 (+1 opt.) 3 3 
Integrated NVIC Yes Yes Yes Yes 
Number interrupts 1-32 + NMI 1-32 + NMI 1-240 + NMI 1-240 + NMI 
Interrupt priorities 4 4 8-256 8-256 
Breakpoints, Watchpoints 4-0, 2-0 4-0, 2-0 8/2/0, 4/1/0 8/2/0, 4/1/0 
Memory Protection Unit (MPU) No Yes (Option) Yes (Option) Yes (Option) 
Integrated trace option (ETM or MTB) No MTB (Option) ETM (Option) ETM (Option) 
Single Cycle Multiply Yes (Option) Yes (Option) Yes Yes 
Hardware Divide / Saturated Math No No Yes Yes 
WIC Support Yes Yes Yes Yes 
Bit banding support System option System option Yes (Option) Yes (Option) 
Single cycle DSP/SIMD No No No Yes 
Floating point hardware No No No Yes(Option) 
Bus protocol AHB Lite AHB Lite AHB Lite, APB AHB Lite, APB 
Systick Timer Option Option Yes Yes 
CMSIS Support Yes Yes Yes Yes
ARM® Cortex ® -MTools Ecosystem 
 ARM has an exceptionally broad ecosystem of 3rd parties supporting the Cortex-M 
profile processor family. 
 Real-time Operating Systems 
10 
 26+ of the world’s leading vendors 
 IDEs and C/C++ compilers 
 13+ of the world’s leading vendors 
 Debugger vendors 
 21+ of the world’s leading vendors 
 … and these numbers are growing all the time
RTOSs IDEs and Compilers 
 Cortex-M profile cores are supported by all of 
the world’s major Real-time Operating System 
vendors 
 Many of these have uITRON-compliant 
interfaces 
 Many certified to international standards 
 Many of these also sell software stacks covering 
USB,CAN,TCP/IP, File Systems, GUI… 
 Available at a variety of price points and 
business models: 
11 
 Free, open source 
 Royalty-free 
 Royalty per product family 
 Safety-certified, safety-critical 
 Cortex-M profile cores are supported by all of 
the world’s major vendors of IDEs, including 
C/C++ compilers, debuggers etc. 
 Variety of C and C++ compilers targeting and 
optimising for the Thumb-2 instruction set. 
 Some based on Eclipse IDE, some proprietary 
GUIs. 
 Available at a variety of price points and 
business models: 
 Low-cost, based on open source 
 Atollic, Code Red,CodeSourcery, Coocox, 
Crossware, Raisonance, Rowley Associates 
 Higher price, proprietary: 
 Altium, GreenHills, IAR, Keil, Mentor,Wind River
Debug and Trace 
 Cortex-M profile cores are supported by all of the world’s major debugger vendors 
 Most of these support low-cost solutions using 2-pin SerialWire Debug (SWD). 
 Many also support non-intrusive program trace using the EmbeddedTrace Macrocell 
(ETM). 
 All vendors support debugging of code compiled usingARM’s RealView compiler. 
 Fully supported by key debug vendors in Japan. 
 Wide variety of price points: 
12 
 Low-cost “wiggler” type devices 
 Mid-range full debug via JTAG 
 Full system debug and trace at higher price point
ARM® Cortex®-M Software interface standard specification 
 Abstraction layer for all Cortex-M processor based SoCs 
 Provide quick software enablement for your design 
13 
 with CMSIS compliant firmware, RTOS or stacks 
 easy debug support of customer IC in tool chains 
CMSIS-CORE 
Abstraction Layer 
CMSIS-DSP 
61 DSP functions 
CMSIS-RTOS 
Integration API 
CMSIS-SVD 
System Viewer 
CMSIS-DAP 
Std Debug IF 
Application/Firmware/Stacks 
DEBUG
ARM® Sensinode™ NanoStack 
http://www.sensinode.com/ 
 Field-proven communication stack for 
IP-based wireless sensor networks 
14 
Key Features 
 RF interface support 
 2.4 GHz (IEEE 802.15.4) 
 Sub-1GHz (IEEE 802.15.4g) 
 Supported IEEE and IETF standards 
 6LoWPAN (ND, HC, RPL), UDPv6, ICMPv6,TCP 
 Self-healing Mesh network 
 Self-configurable 
 Support for Multicast forwarding 
 128-bit AES security support 
 Network processor and library versions 
 Support for 6LoWPAN Bootstrap and link-local 
operation modes 
14
ARM® mbed™ - Accelerating IoT Deployment 
http://mbed.org/ 
15 
 Rapid, professional IoT device development 
 An open source platform and libraries for Cortex® -M 
microcontrollers 
 Modern C/C++ platform and ecosystem for developers 
 Consolidating fundamental embedded building blocks 
 Microcontrollers,Radios, Sensors, Software stacks 
 Bluetooth®, 802.15.4/6LoWPAN,WiFi,Cellular 
 Open Hardware reference designs 
 Enable transitioning from prototype form 
factor to custom product 
MCUs 
radios 
sensors
HW Prototyping Platforms for IoT Devices 
 NOTE:Cost of development systems is not representative of product costs! 
 Low costARM based boards are available (e.g. FRDM-KL25Z ~$13 low volume) 
 Increasing availability of MCU dev boards with integrated radio (e.g. Arch BLE ~$40) 
 Higher end development boards also available (e.g. SAM4C-EK, STK3700) 
 A good place to start: 
16 
 http://mbed.org/platforms/
2014 ARMTechCon – 10thYear! 
http://www.armtechcon.com/ 
 ExpectedAudience – 4500 people 
 Outstanding program agenda this year with more than 100 sessions 
 Keynotes: 
17 
 ChrisAnderson,CEO of 3D Robotics 
 Erica Kochi, founder of the Innovation Labs at UNICEF 
 ARM CEO Simon Segars 
 ARM CTO and co-founder Mike Muller 
 ARM EVP and President of Product Groups Pete Hutton 
 75 technical sessions 
 Software DevelopersWorkshop 
 ARMAccredited Engineer Program 
 ARM mbed Zone 
 Expo floor features more than 90 exhibiting companies
Questions and Next Steps 
 Why on earth would anyone want to develop IoT products with 8/16-bit MCUs? 
 I’m very happy to follow up in more detail and respond to your questions/issues 
 Please do come along to ARMTechCon 
19
20 
End

How to Select Hardware for Internet of Things Systems?

  • 1.
    1 How toSelect Hardware forVolume IoT Deployment? Peter.Aldworth@arm.com
  • 2.
    How to SelectHardware forVolume IoT Deployment  Very broad topic!  Let’s start by focusing on MCU selection: 8/16-bit vs ARM Cortex-M processors  We need to think beyond the processor HW 2  Think at the IoT product level and consider complete BOM costs including sensors, radio and PSU  Consider tools/ecosystem too  I’m hoping that this presentation is a starting point for our conversation on this topic  Material presented here is preliminary/incomplete  Please ask questions  If there is interest I can run another presentation in the future to focus on your areas of interest
  • 3.
    What Does ProcessorSelection Impact?  HWproduct BOM 3  Direct cost of silicon area to implement 8/16-bit or 32-bit processor gives tiny contribution to BOM  Indirect costs more important: Code density, Clock speed needed to meet required performance/latency, power management features,MCU parts available with appropriate integrated features  Lifetime costs  Operation period between battery replacement/recharge  Ability to adapt to mid-life upgrade/update (firmware updates needing increased performance/memory)  Development and Deployment costs  Modern development tools, languages, ease of code reuse, availability of comprehensive debug/trace features
  • 4.
    8/16-bit vs ARMCortex-M:Aren’t 32-bit Instruction Bigger?  Most architectures have a range of instruction sizes  For Dhrystone:Average Cortex-M0 instructions size is only 17-bits 4  Application code density depends on richness of instruction set & CPU arch  Multi-transfer data operations  Rich set of addressing modes  Rich set of arithmetic operations  Size of internal register bank  Conditional execution  Combined compare and branch  Automated function entry/exit (stack)  Size of directly addressable memory  Example of Dhrystone code size in bytes  8051 3186 bytes vs M3  900 bytes
  • 5.
    8/16-bit vs ARMCortex-M:Aren’t 8/16-bit More Efficient? 5  8/16-bit processors require more clock cycles to perform an equivalent operation  More cycles to fetch instructions  More instructions to perform an operation*  More cycles for multiplies, divides etc  More cycles to transfer data (narrower bus)  Using aARM Cortex-M core enables  Lower frequency (and lower voltage)  Higher (maximum) performance  Greater overall efficiency * Better code density
  • 6.
    8/16-bit vs ARMCortex-M: 32-bit MCUs are more expensive?  Quick survey on http://www.newark.com/ (electronics component distributer): 6  Search for 8, 16, and ARM MCUs with ◦ 128KB – 256 KB of “Program Memory” ◦ 16KB – 32KB of “SRAM” ◦ Results only show prices for low volume purchase so not representative of high volume BOM cost  22 results for 8-bit MCU: Price range $3.40 - $9  120 results for 16-bit MCU: Price range $3 - $40  370 results for ARM MCUs: Price range $1.80 - $19  If you compare MCUs with similar features ARM based designs are the same price or cheaper than 8/16-bit devices  Lowest IoT product BOM will use modern MCUs integrating radio etc.
  • 7.
    8/16-bit vs Cortex-M:WhatAbout Power Consumption? 7  Cortex-M processors have architecturally defined power modes  Complete operation then sleep  Code density saves power  NOR Flash reads are a large part of power budget  Better code density means fewer reads to execute application  Cortex-M + cache saves more power  Few cycles and shorter execution time means that MCU spends more time in low power state
  • 8.
    ARM® Cortex®-M ProductLine 8 Lowest cost Low power Lowest power Outstanding energy efficiency Performance efficiency Feature rich connectivity Digital Signal Control (DSC) Processor with DSP Accelerated SIMD Floating point (FP) Digital Signal Control application space ‘16/32-bit’Traditional ‘8/16-bit’Traditional application space application space Low power implementation Sleep mode support Wake-up Interrupt Controller Increased intelligence at node Broad tools and OS support Binary compatible roadmap CMSIS support Pure C target 32-bit RISC architecture High efficiency processor cores Integrated Interrupt Controller Thumb®-2 code density Area optimised designs CoreSight™ support
  • 9.
    ARM® Cortex® Processorfeature set comparison 9 Cortex-M0 Cortex-M0+ Cortex-M3 Cortex-M4 Instruction set architecture Thumb, Thumb-2 System Instructions Thumb, Thumb-2 System Instructions Thumb + Thumb-2 Thumb + Thumb-2, DSP, SIMD, FP DMIPS/MHz 0.84-1.21 0.93-1.31 1.25-1.89 1.25-1.95 CoreMark/MHz 2.33 2.42 3.32 3.40 Bus interfaces 1 1 (+1 opt.) 3 3 Integrated NVIC Yes Yes Yes Yes Number interrupts 1-32 + NMI 1-32 + NMI 1-240 + NMI 1-240 + NMI Interrupt priorities 4 4 8-256 8-256 Breakpoints, Watchpoints 4-0, 2-0 4-0, 2-0 8/2/0, 4/1/0 8/2/0, 4/1/0 Memory Protection Unit (MPU) No Yes (Option) Yes (Option) Yes (Option) Integrated trace option (ETM or MTB) No MTB (Option) ETM (Option) ETM (Option) Single Cycle Multiply Yes (Option) Yes (Option) Yes Yes Hardware Divide / Saturated Math No No Yes Yes WIC Support Yes Yes Yes Yes Bit banding support System option System option Yes (Option) Yes (Option) Single cycle DSP/SIMD No No No Yes Floating point hardware No No No Yes(Option) Bus protocol AHB Lite AHB Lite AHB Lite, APB AHB Lite, APB Systick Timer Option Option Yes Yes CMSIS Support Yes Yes Yes Yes
  • 10.
    ARM® Cortex ®-MTools Ecosystem  ARM has an exceptionally broad ecosystem of 3rd parties supporting the Cortex-M profile processor family.  Real-time Operating Systems 10  26+ of the world’s leading vendors  IDEs and C/C++ compilers  13+ of the world’s leading vendors  Debugger vendors  21+ of the world’s leading vendors  … and these numbers are growing all the time
  • 11.
    RTOSs IDEs andCompilers  Cortex-M profile cores are supported by all of the world’s major Real-time Operating System vendors  Many of these have uITRON-compliant interfaces  Many certified to international standards  Many of these also sell software stacks covering USB,CAN,TCP/IP, File Systems, GUI…  Available at a variety of price points and business models: 11  Free, open source  Royalty-free  Royalty per product family  Safety-certified, safety-critical  Cortex-M profile cores are supported by all of the world’s major vendors of IDEs, including C/C++ compilers, debuggers etc.  Variety of C and C++ compilers targeting and optimising for the Thumb-2 instruction set.  Some based on Eclipse IDE, some proprietary GUIs.  Available at a variety of price points and business models:  Low-cost, based on open source  Atollic, Code Red,CodeSourcery, Coocox, Crossware, Raisonance, Rowley Associates  Higher price, proprietary:  Altium, GreenHills, IAR, Keil, Mentor,Wind River
  • 12.
    Debug and Trace  Cortex-M profile cores are supported by all of the world’s major debugger vendors  Most of these support low-cost solutions using 2-pin SerialWire Debug (SWD).  Many also support non-intrusive program trace using the EmbeddedTrace Macrocell (ETM).  All vendors support debugging of code compiled usingARM’s RealView compiler.  Fully supported by key debug vendors in Japan.  Wide variety of price points: 12  Low-cost “wiggler” type devices  Mid-range full debug via JTAG  Full system debug and trace at higher price point
  • 13.
    ARM® Cortex®-M Softwareinterface standard specification  Abstraction layer for all Cortex-M processor based SoCs  Provide quick software enablement for your design 13  with CMSIS compliant firmware, RTOS or stacks  easy debug support of customer IC in tool chains CMSIS-CORE Abstraction Layer CMSIS-DSP 61 DSP functions CMSIS-RTOS Integration API CMSIS-SVD System Viewer CMSIS-DAP Std Debug IF Application/Firmware/Stacks DEBUG
  • 14.
    ARM® Sensinode™ NanoStack http://www.sensinode.com/  Field-proven communication stack for IP-based wireless sensor networks 14 Key Features  RF interface support  2.4 GHz (IEEE 802.15.4)  Sub-1GHz (IEEE 802.15.4g)  Supported IEEE and IETF standards  6LoWPAN (ND, HC, RPL), UDPv6, ICMPv6,TCP  Self-healing Mesh network  Self-configurable  Support for Multicast forwarding  128-bit AES security support  Network processor and library versions  Support for 6LoWPAN Bootstrap and link-local operation modes 14
  • 15.
    ARM® mbed™ -Accelerating IoT Deployment http://mbed.org/ 15  Rapid, professional IoT device development  An open source platform and libraries for Cortex® -M microcontrollers  Modern C/C++ platform and ecosystem for developers  Consolidating fundamental embedded building blocks  Microcontrollers,Radios, Sensors, Software stacks  Bluetooth®, 802.15.4/6LoWPAN,WiFi,Cellular  Open Hardware reference designs  Enable transitioning from prototype form factor to custom product MCUs radios sensors
  • 16.
    HW Prototyping Platformsfor IoT Devices  NOTE:Cost of development systems is not representative of product costs!  Low costARM based boards are available (e.g. FRDM-KL25Z ~$13 low volume)  Increasing availability of MCU dev boards with integrated radio (e.g. Arch BLE ~$40)  Higher end development boards also available (e.g. SAM4C-EK, STK3700)  A good place to start: 16  http://mbed.org/platforms/
  • 17.
    2014 ARMTechCon –10thYear! http://www.armtechcon.com/  ExpectedAudience – 4500 people  Outstanding program agenda this year with more than 100 sessions  Keynotes: 17  ChrisAnderson,CEO of 3D Robotics  Erica Kochi, founder of the Innovation Labs at UNICEF  ARM CEO Simon Segars  ARM CTO and co-founder Mike Muller  ARM EVP and President of Product Groups Pete Hutton  75 technical sessions  Software DevelopersWorkshop  ARMAccredited Engineer Program  ARM mbed Zone  Expo floor features more than 90 exhibiting companies
  • 18.
    Questions and NextSteps  Why on earth would anyone want to develop IoT products with 8/16-bit MCUs?  I’m very happy to follow up in more detail and respond to your questions/issues  Please do come along to ARMTechCon 19
  • 19.