Arm vs x86 for Embedded Projects: More Choices, Tougher Decisions
By Alexander Pang, Engineering and Development Engineer, Anders Electronics
As the first of three blogs evaluating the merits of x86 and Arm® processors for embedded projects, this article will look at the fundamental differences between the two architectures, to help users evaluate the embedded boards of both types that are available on the market.
As we move through the series, we will then discuss how popular boards are featured to maximize their appeal against key criteria that concern embedded projects, including processing power and graphics capabilities, electrical power consumption, thermal management, and product longevity.
Competing for Embedded Projects
Consumer computing trends are driving the emergence of power-conscious mobile x86 processors such as the Intel Atom and Celeron, on the one hand, and performance-oriented Arm-based processors leveraging cores such as the Cortex-A series on the other. For embedded systems developers, this means there are now more options than ever from which to choose the best platform when starting a new project (figure 1).
Figure 1: Higher-performing Arm-based processors and lower-power x86 models are competing for embedded projects.
However, with more choices comes a more complex selection process. In addition, whereas traditional approaches to software have directed Arm projects towards Linux and x86 towards Windows, embedded Windows® OSes aimed at Arm processors and lightweight Linux distributions for x86 mean this divide, also, is less clear cut than in the past.
From a developer’s perspective, there are good reasons for continuing with a proven successful formula. Equally, evaluating untried options gives the possibility to create surprising new products that offer unexpected features or capabilities.
RISC vs CISC
Tracing their origins back to the mid-1980s, Arm processors are based on the Reduced Instruction Set Computer (RISC) architecture developed by Advanced RISC Machines (ARM).
A RISC processor concentrates on keeping the diversity of instructions to a minimum, while also keeping those instructions as simple as possible. One instruction is executed per clock cycle, which ensures predictable processing and eases acceleration techniques such as pipelining. The simple instructions require relatively few transistors in silicon, giving chip designers freedom to optimise parameters such as cost and power consumption. On the other hand, with fewer instructions to choose from, and one instruction per clock cycle, a large number of instructions can be needed to complete a given task. This can lead to heavy dependence on RAM and slow execution times for complex workloads that CISC processors can handle more easily and quickly.
The x86 lineage began in 1978 with the 16-bit 8086 microprocessor. They are known as CISC — Complex Instruction Set Computing — processors. Unlike RISC, CISC instructions can perform complex tasks that take more than one cycle to execute. These can include floating-point mathematical calculations and graphics-handling instructions. CISC can be highly efficient in terms of the number of instructions per program, resulting in lower demand for code storage and RAM compared to RISC. On the other hand, a CISC processor must contain more transistors to handle the complexity of the instructions.
x86 has become the common term used to describe a CPU instruction set compatible with the Intel 8086 and its successors, including the Atom, Celeron, Pentium and Core iX processors commonly used in desktop and laptop PCs.
Performance and Power Consumption
Due to less intensive fabrication of transistors on the die in keeping with the RISC design principle, and the relatively lower speed, Arm cores can achieve high efficiency and so excel in low-power designs. The typical maximum power consumption of an Arm-based processor is less than 5W, with many packages including GPUs, peripherals, and memory.
Intel cores tend to consume more power than Arm cores due to their increased complexity. The Intel processors aimed at IoT and embedded use cases tend to consume from a minimum of 6W up to about 30W.
Arm comes into its own for non-demanding applications, or applications that require fewer commands. However, more complex applications such as those involving high-resolution, high-end graphics, or streaming data, could be better suited to an x86 processor. With typically more processing power available, tasks can be completed more quickly and not suspended when higher priority interrupts are received, which ultimately enhances system reliability and reduces software crashes.
In accordance with PC-market patterns, x86 processors have historically been replaced on a 5/7-year lifecycle. This is not ideal for many embedded products in the industrial and medical sectors. Intel has recently announced its intention to support industrial CPUs for 15 years. This now puts the x86 architecture in the same class as Arm-based processors that typically have a guaranteed production life of more than 10 years.
Development Time and Technical Support
When selecting the best platform for an embedded project, any existing investment in appropriate development tools and engineering skills should also be taken into account. In theory, developing software to run on an x86 processor should be relatively easy leveraging tools and support for PC-software development. IDEs and compilers created specifically for embedded development are available. Developers working with Arm based hardware will more likely need to optimise their software to include only essential elements and integrate/optimise drivers accordingly. The quality of the development tools available, drivers, and technical support available from the manufacturer can greatly influence the time and cost to accomplish this.
Both Arm and x86 processors can work tremendously well in many embedded projects. Making the right selection demands case-by-case assessment of performance requirements, software complexity, power and energy budget, as well as developer skills, familiarity with each architecture, and tools available.
The next blogs in this series will examine popular Arm and x86 processors and boards, focusing on their ability to support various human-machine interface (HMI) features.