Benchmarking NXP i.MX 6UltraLite and Marvell PXA166, PXA168 ARM CPUs

Technology has become more than just a battle of sheer numbers. It has somewhat morphed into a “less is more” philosophy to see what’s possible with less. We pitted these three ARM CPUs together to find out if there are any positive impacts to using a slower clock speed CPU:

What we found is very promising in that in most tests, the 696 MHz i.MX 6UltraLite provided a huge advantage over the 800 MHz PXA166 and even the 1066 MHz PXA168. Let’s take a quick look at our findings.

Here, we are using the Sysbench multi-threaded benchmark tool to calculate prime numbers per second. You’ll notice an obvious difference in performance, where the i.MX 6UltraLite comes out ahead at about 24 primes per second. Compare with about 13 primes per second with the PXA168 and 10 primes per second with the PXA166.

Furthermore, we use Sysbench to test RAM transfer speeds (using 1K block sizes). You’ll see from the graph above that the obvious winner here was the i.MX 6UltraLite with about 135 MB/s. The PXA168 was around 55 MB/s, and the PXA166 was about 41 MB/s.

Now, we test read speeds from eMMC flash drive using DD, a utility to convert and copy files. We found that the i.MX 6UltraLite read at about 34 MB/s, while the PXA166 read at about 12 MB/s and the PXA168 at about 11.5 MB/s. Note that the PXA166 outperformed the PXA168 because the PXA166 runs the RAM slightly faster than the PXA168.

Finally, let’s throw some OpenSSL crypto benchmarks at the CPUs. Here, we’ll see that PXA168 performed slightly better than the i.MX 6UltraLite in a couple of cases and visa versa for the other half of the tests. While there is a difference, it’s not significant. Still, for a CPU with a slower clock speed to keep up with or beat out the others is impressive.


These days the hertz count of a processor is not a very good measurement of performance. The important differences are more complex than just the clock rate, but essentially newer architectures are able to do more per clock.

The PXA166/8 is a customized ARM core originally from Intel/XScale called PJ1/Mohawk which follows the ARMv5TE architecture. This is compatible with the standard ARM9 core, but includes further customizations from Marvell.

The i.MX 6UltraLite is a 696MHz Cortex-A7 which follows the more recent ARMv7-A architecture. This architecture is a partially dual-issue architecture while the PXA166/8 is a single issue architecture. This means the PXA166/8 will execute one instruction per clock, but the i.MX 6UltraLite will execute multiple instructions in parallel when possible.

The Cortex-A7 also includes NEON instructions which support SIMD (single instruction, multiple data) operations. For code performing math on large blocks of data this allows one instruction to operate on blocks of data rather than using many instructions to iterate over that same block of data. Users typically have to go out of their way to use NEON code in their application, but some performance sensitive libraries such as fftw will use NEON without the users needing to change their code.

The i.MX 6UltraLite includes a floating point unit while the PXA166/8 does not. The i.MX 6UltraLite will offload floating point operations to its VFPv4-D32 core. The PXA166/8 uses armel/eabi code that will generate software floating code. Any floating point operations will see massive gains going to an i.MX 6UltraLite.

There will be many more nuanced changes between the CPU architectures, but ultimately performance has improved significantly in most cases going to this newer architecture. Suggesting that less really can be more.


Write Endurance to Write Home About

Radiation tolerance, power efficiency, and fast write performance also characterize F-RAM non-volatile storage technology.

Ferroelectric Random Access Memory (F-RAM) is a non-volatile storage technology that offers low power, fast write performance, and a greater write endurance when compared to EEPROM or flash technologies. For example, the write endurance of F-RAM from Cypress Semiconductor is 10^14 (100 trillion) write cycles. Presuming the device takes 4 ms to rewrite every cell, it would take a minimum of 126 years for a failure to occur. However, EEPROM and NOR Flash have write endurance of just 10^6 (1 million) write cycles. Additionally, F-RAM data retention is very robust, supporting a minimum of 10 years, and more than 121 years of data retention at + 85 °C, depending on the individual product.

Figure 1: Technologic Systems is now offering single board computers with an added Ferroelectric Random Access Memory (F-RAM) from Cypress Semiconductor.
Figure 1: Technologic Systems is now offering single board computers with an added Ferroelectric Random Access Memory (F-RAM) from Cypress Semiconductor.

The high-speed nature of the device combined with its non-volatility and data retention makes this memory device useful in many applications. The F-RAM used in Technologic Systems’ products is an AT25 compatible SPI device. The TS-7553-V2 board support package implements the F-RAM as an extra EEPROM-like memory and presents the whole device as a flat file.

Continue reading “Write Endurance to Write Home About”

Example XBee Project: Opened Door Alert via Email/SMS

Imagine this: You have a five-year-old son who has grown tall enough, and smart enough to open the door to your home office, packed with all your super fun gizmos and trinkets. It has a lock, but being the lackadaisical creature you are, you forget to lock it. You’ll only be gone for a minute or two, after all! Well, that was just enough time for your son to sneak in, rip up all the jumper wires from your breadboard, find a permanent marker, and well, you know how this ends.

In this (oddly specific) example project we’re going to be coming up with a solution to avoid such a disaster by building a wireless, internet connected, SMS door alert system using:

This way, we’ll receive a text message every time the door is opened and be able to rush to the scene of the future crime.
Continue reading “Example XBee Project: Opened Door Alert via Email/SMS”

A Friendly Introduction to XBee

Digi XBee radios sure are handy for wireless communication in embedded systems, so let’s take a look from a newbie perspective at how to get two of ‘em talking to each other quickly.

This tutorial can be applied generically to any setup with any two XBee radios, so long as you have them plugged in and ready to work with a serial port. That being said, this is a list of parts used in this tutorial:

Continue reading “A Friendly Introduction to XBee”

Practical Guide to Getting Started With the TS-7553-V2


This practical guide gives us an opportunity to take a relaxed approach to getting started with the TS-7553-V2 single board computer. We’re going to take a look at how to make our first connections, and setup the network. These are usually the first things we do before starting development. In the grand scheme of things, this is just a friendlier extrapolation from the official TS-7553-V2 manual, so be sure to keep it handy for more advanced topics and specific details. The only assumption being made is that you’ve purchased the TS-7553-V2 with a development kit, including the pre-programmed microSD card and enclosure with 128×64 px LCD and 4 button keypad. Right then, let’s get started!

Continue reading “Practical Guide to Getting Started With the TS-7553-V2”