Upper range ARM processors such as Cortex A9 have been introduced with high-speed interfaces and multi-core technology to increase performance. Low-end X86 alternatives on the other hand have maintained performance while reducing component prices and power consumption to gain competitiveness. The result is that high-end ARM processors such as Freescale i.MX 6 Cortex A9 now are competing with X86 platforms represented by for instance Intel Atom E3800 (Baytrail) or AMD Embedded G-Series SOC.
The question is why companies choose one of the two major architectures over the other. Our suggestion is to compare component cost, performance, power consumption and not the least important hardware and software development challenges. Firstly get an overview of all aspects. Secondly make the decision.
The three processors mentioned in the introduction may illustrate the similarities and differences between the two main processor architectures in the performance segment where competition is head on. All three processors are one-chip platforms with one, two or four CPU cores. They are all relevant processor choices for embedded applications where product life-time needs to be at least seven years.
Low cost, single core versions of the i.MX 6 processor are roughly half the price compared to the X86 competition. But then again such a low cost i.MX 6 has clearly fewer functions and interfaces so the comparison isn’t really fair. High-end i.MX 6 versions have a feature set and interfaces that are comparable to the X86 processors in the segment but prices are roughly the same as well.
A detailed evaluation and comparison most often lead to the conclusion that the two X86 processor options from AMD and Intel respectively have more high-speed interfaces, better general computing and graphics performance. AMD Embedded G-Series SOC is the more costly processor option but the extra cost is motivated by the fact that the overall graphics performance is higher.
It’s not fair though to have only the Freescale i.MX 6 representing ARM. One of the major ARM advantages is the access to a wide variety of processor options. There are numerous variations where the ARM CPU core is integrated with for instance an FPGA, DSP or GPU. Numerous suppliers are present on the market offering ARM processors with functionality and interfaces to match specific requirements from vertical markets. Whereas X86 processors are more general to their feature set companies looking for specialized and adapted solutions are more likely to find the perfect match in one of the many ARM processors to choose from.
ARM processors have been and still are the preferred choice in applications were low power properties are crucial. Comparing power consumption is not uncomplicated. Aspects like operating system, RAM size and type, FLASH storage and interfaces used need to be separated from the influence of the processor. A general rule however is that ARM is really strong in terms of modes and possibilities to shut down the processor and await a wake-up.
Such an idle mode is when the operating system is running but only is waiting for input for example from a mouse, keyboard or otherwise from the application. The expected power consumption for the mentioned X86 processors would be one watt, roughly. The figure to compare with in the i.MX6 processor would be half of that power consumption. Also the ARM high end segment benefits from a handful of states/modes where power consumption is as low as 100mW without sacrificing the possibility for reasonably fast wake up.
Low power consumption has numerous advantages. Handheld and battery powered products will benefit from increased battery lifetime or why not reduction of product price and physical format from using a smaller battery. Further reduction of the bill of material, BOM cost and product size is a possibility from the fact that a smaller cooling device is required.
Generally engineers with basic hardware development skills would succeed with a project based on an ARM7 or ARM9 processor since clock frequencies, bus speeds and memory bandwidths are limited. Moving into a segment with increased performance will raise the stakes and is definitely more challenging. That’s independent of choosing ARM or X86. Both these major architectures have in this segment clock frequencies around 1GHz, DDR3 memory, high speed interfaces like PCI Express, HDMI, LVDS and up to four cores as part of the development challenge.
So the companies that need products with increased performance are thereby faced with the decision to invest to increase the competence and continue in-house development or address the issue differently. We strongly believe that since the complexity in high-end ARM processors have reached the level of complexity in low end X86 competitors a strategy which is common for X86 processors will also gain momentum for ARM. It’s called the semi-custom design strategy.
It offers fast and easy access to new and powerful computing technology in a standardized COM module which is mounted on a custom design carrier board. An advantage is that developers avoid having to master development of the processor platform itself. They are able to focus their efforts on adding interfaces, features and functionality on the carrier board for the product to be competitive.
The COM module interface is standardized. Scalability is easier using the same carrier board in a range of products based on the performance levels of the COM modules. Yet another advantage using the semi-custom strategy arises when the COM module is near end-of-life. A COM module replacement is a lot easier to integrate than having to redesign the complete hardware.
Over the years these have been much appreciated advantages in applications based on X86 processors and have reduced development and product maintenance cost for mid-range production volumes. That’s why currently numerous ARM based COM modules in form factors like Qseven and SMARC have been introduced on the market.
Increasing Software Share
The software percentage of development investments and maintenance costs increases steadily in the embedded segment. Today software makes up a large share of the product value but budget estimations on software development in time and money are difficult make. The availability of drivers and firmware is definitely an aspect worth considering before making the choice on what processor to use or the choice on operating system for that matter.
Processor manufacturers show a couple of different strategies for their processors to support operating systems and to ensure access to the drivers and firmware necessary to use processor functionality. One of the strategies is to be active in the open source community by contributing with documentation and efforts. The open source strategy typically lead to access to a variety of drivers and software but the quality is by no means guaranteed. Evaluation, adjustments and verification of the software is needed and in-house software competence is a requirement.
Another strategy of the silicon supplier is to take the full responsibility and offer support for drivers. In this case the customer is dependent of what drivers are offered, what are not offered and the priorities made by the silicon supplier. The source code is typically not available. A third strategy is when the responsibility is outsourced to a third party software company. Often the processor manufacturers use a couple of the described strategies in combination.
System Start with BIOS or Bootloader
The traditional BIOS is an example of the different approach in X86 compared to ARM. The Basic Input/Output System, BIOS is exclusively used in X86 processors. BIOS is a firmware configuring and connecting the hardware to the operating system and it offers support for a variety of OS and supports new OS versions. BIOS also offers additional functionality such as hardware testing and diagnostics, flexible configuration and platform management.
One downside to BIOS is the prolonged start-up time. ARM designs use a different approach involving a boot loader for hardware configuration and operating system start-up. The boot loader is developed specifically for the application, adapted to one well-defined hardware configuration, one operating system and only one version of it. It has less functionality but offers a faster start-up than BIOS. There is an open source initiative on bootladers for selected X86 platforms running Linux. It’s a fair guess that bootloader technology will be increasingly supported among X86 platforms in the near future.
What appears to be a BIOS today isn’t always the traditional X86 firmware. The truth is that the legacy BIOS are sometimes replaced by commercial Unified Extensible Firmware Interface solutions, UEFI. The UEFI specification doesn’t follow completely in the footsteps of the traditional BIOS since it’s not including full X86 backward compatibility.
Ecosystem to support development
Anyhow, thorough investigation on how processor functionality is supported in software is crucial. There are definitely potential show stoppers in this area. It’s one thing that the functionality exists in the processor. If it’s not supported in the OS required you may be in trouble.
We mean that the choice between ARM and X86 in embedded applications is to a large extent to pick an ecosystem with additional hardware and software components to support development. The operating system is a key element in that ecosystem and so is the general supply of usable ready-made software applications. These two aspects definitely have an impact on the level of complexity in software development and the result in terms of cost in time and money.
The table below is an overview of the support for various operating systems for these two competing architectures.
The above table is an overview of the support for the main operating systems in ARM and X86 architectures respectively.
Android is based on an embedded Linux core and additional graphical user interface and Java engine. It’s widely used in advanced mobile telephones based on ARM processors. Even though the Android support can be considered in place both for the ARM and the X86 architecture it’s still a bit complicated to have the OS up and running in practice. When Android is preferred it’s a good idea to check for information on what platforms are used in mobile phones and tablets to draw advantages from support work that has already been done by others.
Among the listed operating systems Linux and Windows are the more uncomplicated to work with in your embedded development project. Historically Linux support has generally been good for X86 processors and excellent for Intel platforms. Linux support for the ARM architecture varies depending on the processor. Search for the more widely used processors to ensure proper Linux support.
Keeping your eye on the target
Hectronic has a history of offering COTS or custom design COM modules, motherboards and systems to our customers. The offer includes a number of X86 and ARM processor platforms. So whether your processor choice is one of the X86 processors or from the variation of ARM alternatives on the market Hectronic is happy to take you through development of your next embedded computer. We develop, deliver and maintain our customer’s computer platforms allowing them to focus on their core competence, the application and the market of their product.