Embedded x86 vs Arm in Practice: Is x86 the Way to Go for High-Performance and Reliability?
In the previous blog in this series we discussed Arm-based processors in the context of embedded applications, focusing on high-performing application processors such as the i.MX8 series. Although the market is seeing new Arm-based boards that offer greater and greater performance, the physical limitations of Arm-based chips tend to restrict the peak processor electrical power to about 5W.
Where is x86 a Stronger Choice than Arm?
With the efficiency of the Arm architecture, operating at up to 5W gives great processing-performance “bang” for input-power “buck”. Sometimes, however, it’s about raw performance, and this is when an x86 board is often the best choice.
There could be various reasons why outright processing performance is critical for an application. An industrial machine controller, for example, may be required to manage multiple drives, run a graphical user-interface, which may also integrate a touchscreen, and maintain extremely high system reliability. We recently worked with a client to develop a centralised, integrated controller managing up to 10 injection-moulding machines concurrently, consolidating multiple variable-speed motor drives, several input-data channels monitoring machine and production status, and control of a relatively large 12.1-inch display with PCAP touchscreen. The NC889 3.5-inch SBC, which can be specified with up to 1.9GHz 10W quad-core Intel Bay Trail processor, proved ideal for the task.
Will an x86 Board Deliver Better System Reliability?
Greater outright processing performance – which comes at the expense of increased power consumption, let’s not forget – enhances system reliability. When multiple tasks are assigned to allocated time slices, including complex or CPU-intensive workloads such as field-oriented control of a three-phase motor, reliability and efficiency are both enhanced if the CPU is able to complete the task before the next interrupt is generated. This saves the overhead involved in saving and retrieving incomplete tasks, reducing latency and reducing the risks of memory errors and system crashes. With built-in hardware features that help the OS manage multitasking efficiently, the x86 architecture is well suited to these types of applications.
The adoption of smart-city systems is another area raising demands for highly reliable handling of multiple concurrent processing tasks and incoming data streams. Automatic parking management is one example, consolidating access control, number-plate recognition, payment processing, and a user interface that may comprise a combination of large graphical display, touchscreen, and numeric keypad. And, of course, system reliability takes on an altogether more important aspect in medical or automotive equipment where safety could be a concern. A vehicle dashboard controller, or the front-end reader of a radiography scanner, the fundamental GUI functions must operate continuously while the system remains ready to respond instantly to higher priority interrupts.
How Does Choosing x86 Affect Decisions such as OS Selection and Cooling?
Ensuring that the hardware has adequate processing power to handle highest loads, while also managing the display and touchscreen properly, can give greater freedom when it comes to choosing an OS, or real-time OS (RTOS) with the assurance that minimum system reliability requirements will be met.
When using SBCs at higher power levels, cooling must be given due consideration. A fan may be required, which can increase engineering and BOM costs. On the other hand, some high-performance applications require cooling for other subsystems – such as the large display backlight in the multi-machine injection-moulding controller mentioned earlier – giving the opportunity to amortise these overheads.
Overall, as demand for high-performance embedded systems continue to extend throughout our increasingly smart and automated world, Arm-based computing will continue to thrive in the low-power, high-efficiency region of the spectrum, while x86 boards will typically be chosen for complex, performance-oriented tasks where high system reliability is a pre-requisite.