Decisions made during design processes shape the possibilities of success and failure of a component, sub-system or end product. Much of the time these choices are not clear cut and few reside in the proverbial “no brainer” category. For the design engineer trying to decide whether to select an ARM or x86 architecture for his/her embedded project the decision, as Ringo Starr once put it, “you know it don’t come easy.” Indeed, with huge potential markets like the Internet of Things (IoT) in the balance, both camps are going for the jugular, each (and their respective ecosystems) hoping that their latest development will help them sell in the embedded market the way beer sells in a college town. In this article we will show how and why the decision to go with x86 or with ARM has become more complex and difficult than ever, as there are clear benefits available for each architecture, depending on the task and design requirements.
But before we leap ahead of the story-- and to be properly prepared to evaluate both contestants--a bit of background is in order. ARM and Intel (x86) chips have different processor architectures and instruction sets, so an application compiled for the Intel architecture will not run on an ARM device and similarly you can’t run code compiled for ARM on Intel devices. An ARM processor has a Reduced Instruction Set Computer (RISC) architecture while the X86 (for the purposes of this article x86 will refer to both 32-bit x86 and 64-bit x64, ARM will refer to all ARM derivatives) has a Complex Instruction Set Computer (CISC) architecture. CISC chips have an instruction set capable of doing complex things with a single instruction while a RISC processor has a smaller number of more general purpose instructions. It is important to note, however, that the simpler nature of a RISC instruction allows it to be processed in usually just one clock cycle (and often with fewer transistors, making the silicon less expensive and more power efficient). Generally speaking, a RISC-based ARM processor also requires more memory than a CISC-based processor.
Traditionally ARM’s low power has enabled battery life that would be better than an x86 equivalent and with its its built-in multimedia decoding capabilities it also enables 1080p HD video playback in a small package relative to the real estate an x86 system would require.
Typically, too, for complex tasks such as would be needed to process and analyze millions of pieces of data, the raw performance from x86 often outstrips that of an ARM equivalent. If we want high-end devices to perform telemetry and data transmission over the Internet for critical applications, for instance, x86 would still likely be the choice, On the other hand, if high-end functionality involves only video and audio capabilities, ARM would be the nominee.
Other important traditional (and I have been using the term traditional deliberately because as we will shortly see, things are fast changing on both sides of the playing field) factors are:
● No BIOS (ARM uses a bootloader) and, therefore, no BIOS-related issues
● Power consumption in the range of about 2 to 20 watt
Similarly, traditional advantages of x86 processors include
● Well established Linux support
● Very high computing power and very short real-time response.
- Fig. 1 Key differences of x86 vs. ARM (note: BSP is board support package, an implementation of specific support code—software-- for a given board that conforms to a given operating system. It is commonly built with a bootloader. In embedded systems BSP is system and device drivers for all the devices on the board. (Source: embedded-logic)
As for run-time stability (uptime without crashes), which can be a key deciding factor, no clear cut winner here: Both ARM and x86 processors are relatively well suited to be used in industrial and other embedded systems that require stable, reliable and deterministic run-time behavior.
Now to the changes I alluded to. ARM and Intel chips are growing closer to each other and the traditional lines distinguishing them are starting to blur. Here are a few for instances:
Intel is positioning Quark, its smallest processor, in the IoT device space supported by a new VxWorks 7 version of the widely used real time operating system (RTOS), developed by the Intel subsidiary Wind River, As a counter-measure ARM is launching a new, and free low power operating system to manage web-connected devices that use microcontrollers based on the company’s 32-bit Cortex-M architecture. ARM’s OS for this is called mbed, Although technically not a true RTOS (as a strict definition would require a predictable response time to an interrupt), ARM’s mbed takes what the company calls an “event based” approach; the processor wakes up only if events need to be managed. ARM says that predictable response is not always needed and allowing the processor to complete one task before switching to another allows power savings over traditional RTOS requirements.
Intel’s x86 chips have been improving in power consumption. Intel started with a more expensive, high performance architecture and has been lowering its power consumption and making its lower-end chips more price competitive. In particular designs based on processors such as the Intel Atom permit small, fanless and relatively efficient power solutions. Atom microprocessors have been used in a variety of embedded applications ranging from health care to advanced robotics and mobile Internet devices. At the same time upper range ARM processors such as Cortex A9 have been introduced with high-speed interfaces and multi-core technology to increase performance. Processors such as Freescale i.MX 6 Cortex A9 now are competing with x86 platforms such as Intel’s Bay Trail-based Atom chips as well as AMD’s Embedded G-Series. All of these processors intended for embedded applications are one-chip platforms with one, two or four CPU cores. All also feature clock frequencies around 1GHz, DDR3 memory and high speed interfaces like PCI Express and HDMI.
Board and module form factors
Boards and modules incorporating ARM processors typically run Linux, Windows CE (Compact) or Android. Boards and modules based on Intel and AMD x86 processors run full Windows, or the embedded versions such as Windows Embedded Standard. You can also run Linux on these platforms.
Recent trends in processor technology also are affecting the newer lightweight COM class modules such as Qseven, and Smart Mobility ARChitecture (SMARC).
The new Qseven specification update 2.0 allows using x86 and ARM processors on Qseven modules and can accommodate the new Intel E38xx Atom processors as well as such ARM processors as the Freescale ARM i.MX6 (both supporting a wide variety of I/O features). The new USB 3.0 and UART additions are widening the scope of this module family even further. The devices’ strong graphics performance can be used to drive HDMI, DVI, DisplayPort and LVDS displays. For example, the Qseven module with Intel Atom E38xx enables dual independent display while the Q7-IMX6 even supports triple independent display, a feature formerly limited to high-end computer boards. The majority of customers are either using Qseven for x86 or Qseven for ARM exclusively; however, there some that are moving in both directions.
Figure 2 Qseven supports ARM (represented in this case by Freescale), Intel and AMD processors (Source: Congatec)
With regard to Smart Mobility Architecture (SMARC), the SMARC pinout is optimized to support specific I/O functionality that is more commonly identified with ARM in mobile and handheld devices. For example, Advantech’s ROM-5420 is a SMARC form factor module only 82mm x 50mm in size, (with an overall assembly height of under 8mm) based on the Freescale ARM Cortex-A9 i.MX6 dual core processor. ROM-5420 supports triple independent displays and a 1 x MIPI (Mobile Industry Processor Interface) camera input. Moreover, ROM-5420 also supports lithium-ion batteries that have +3 ~ 5.25V power input design with suspend mode under 0.3W, which makes them an excellent choice for portable applications.
But SMARC is not exclusively for ARM processors and board/module suppliers have announced x86-based SMARC modules as well. Consider Kontron’s latest SMARC computer-on-modules (COMs) featuring Intel’s Atom E3800 series processor. According to Kontron, it’s the first x86 SoC to become available on this low-profile COM form factor, measuring 82mm by 50 mm. The SMARC s-XBTi COMs, compliant with the Standard Group for Embedded Technologies (SGeT) specification, incorporate up to 8 Gbytes of RAM and can accommodate up to a 64-Gbyte, on-board solid-state disk to store OS and application data. The pin-out includes three UARTs with complete GPS function and support for the MIPI-compliant serial camera interface. Intel Gen 7 Graphics are carried out via HDMI 1.4 and LVDS with up to 2500 by 1600 pixels and 60 Hz to the display. Other interfaces include one Gigabit Ethernet LAN via Intel’s Ethernet Controller I210, one USB 3.0 and two USB 2.0. Extensions can be implemented via two SDIO and three PCIe x1 lanes with 5 Gtransfers/sec. Operating temperature ranges from ‒40 to +85°C, while power consumption ranges from 5 to 10 W.
Adding to what is already a recipe for brain freeze AMD has announced it will develop processors, code named Mullins and Beema, which will consist of AMD’s next generation x86-based core, with an ARM-based core for handling security functions on the same SoC.
Figure 3 AMD’s Mullins processor (Source: AMD).
At the same time in parallel with the company’s next-generation of x86 processors, AMD plans to develop its own 64-bit ARM-based CPUs, code named “Project SkyBridge.” targeting embedded applications. SkyBridge’s ARM-based unit will use low-power 64-bit ARM Cortex-57 cores, while the x86-based chips will feature AMD’s next-gen Puma+ central processor cores. The clever bit is that the chips will be “pin-compatible,” meaning they can both use the same circuit board, simplifying things (somewhat) for device makers. SkyBridge chips will be manufactured on a next-generation 20nm process and ship sometime in 2015.
AMD’s roadmap reminds one of the 1968 film “Yours, Mine and Ours” starring Lucille Ball and Henry Fonda, in which a widower with 10 children marries a widow with 8, and the 20 of them try to come together as one big happy family.
In summary, ARM is challenging x86 in the embedded space and x86 is counterpunching. As a result the decision whether to go with x86 or with ARM has become more complex and more difficult than ever. Two things we do know: 1) Among the factors that you will have to take into account are performance, price, power consumption, MIPS/W, hardware and software support, the volume you have in mind and more, and 2) as always the best place to go for parts and design help is to your friendly local distributor, Premier Farnell.