The future of smartphone CPUs – how ARM’s Cortex-A9 will up the ante
While attending the 2010 Mobile World Congress show in Barcelona last month, I got a chance to meet with ARM and Qualcomm, two companies that are at the center of the recent public interest in smartphone processors. ARM’s Cortex-A8 processor family powers many of the top smartphones on the market, including the Apple iPhone 3Gs, the Palm Pre, and the Motorola DROID, and serves as the basis for Qualcomm’s crazy-fast Snapdragon processor family. My interest was with ARM’s next platform, Cortex-A9, and how it will make smartphones faster and more efficient, and what Qualcomm does that makes the existing Cortex-A8 platform so lust-worthy.
According to ARM, the Cortex-A9 platform gets a nearly 25 percent processing power boost, even at same processor speed, from the use of a new instruction pipelining system. An instruction pipeline basically lines up the tasks that a processor needs to complete in a queue. Having multiple pipelines is an advantage because there are things the processor has to do before, during, and after it executes an instruction (or task), and each part requires a different function of the processor. By lining things up in an overlapping way, each part of the processor can be doing something during each "clock cycle" (like a tick of a clock). Think of it as an assembly line where one instruction is being prepared while another is being run and yet a third is being saved – all at the same time. Each instruction might normally require three ticks to complete, but since they are lined up in parallel, you effectively get one completed per clock cycle instead of one every three clock cycles.
Cortex-A8 had two such pipelines, but there were pretty basic in operation, feeding the instructions to the processor pretty much as they appeared in the program that was running, leaving gaps in efficiency since some instructions might require more ticks to complete. The new pipelines in the Cortex-A9 platform, however, can reorder the instructions before they are fed to the processor, and can even guess as to what other instructions are likely to appear later in order to better sort the queue. This means that all parts of the CPU can be fully utilized at the same time – or nearly so.
On top of this new efficiency, Cortex-A9 also supports multiple cores in a single processor. A core is the basic part of the processor that does the heavy lifting, performing the instructions that come through the pipelines. Having multiple cores is somewhat the same as having multiple CPUs in a device, except that the cores in a multi-core CPU are tightly integrated with each other. A multi-core CPU will therefore require less physical space and power than would two separate CPUs, which is a benefit in a smartphone, yet it can still do twice as much work processing instructions as a single-core CPU at the same clock speed.
Now you might think that if a 1GHz single-core CPU like the Qualcomm Snapdragon is already fast enough, why go with a multi-core system? The answer is simple and not necessarily obvious: energy efficiency. You see, a processor running at a faster speed needs a higher voltage than one running at a lower speed, and the relationship between voltage and actual power used is not linear, but rather squared. For example, if a theoretical CPU requires 2 volts to run at 500MHz, but 4 volts to run at 1GHz (1000MHz), then the CPU requires 4 times as much power to run at 1GHz than it does 500MHz – not twice as much. As a result, two processors running at 500MHz and 2 volts might use up 4 units of power per hour for 1GHz of effective processing power, but a single processor running at 1GHz and 4 volts would require 8 such power units to do the same thing. These numbers were chosen to make the match more obvious, but the end result is that 1 processor at a given speed will use more power than two processors running at half that speed.
But modern CPUs don’t run at full speed all the time. In fact, most of a smartphone CPU’s life is spent running at far slower speeds. It doesn’t take as much processing power to sit idle with the display off as it does to download and display a YouTube video on the fly. As such, modern CPUs (both in smartphones and personal computers) rely on speed stepping technologies to ratchet up or down their processing speed (and energy requirements) depending on the task at hand. So a given CPU might run at 200MHz while the phone sits idle, but maybe runs at a full 1GHz when the device is recording 720p HD video.
If we consider a CPU with dual 1GHz cores, you can see that not only do we get much more maximum processing power (2GHz), but even simpler tasks become more efficient because each core can run a lower clock speed than could a single-core CPU in a given situation. Two 1GHz cores running at 100MHz each while a smartphone is idle is more energy efficient than a single-core running at 200MHz, yet that same multi-core CPU can still scale up to a full 2GHz of power when it’s advantageous.
But for any of this multi-core technology to matter, a device’s OS needs proper multi-processor (MP) support. The Symbian OS has had MP support for some time. Linux systems have had MP support for a long time, and as such Android and Palm’s webOS have such capabilities built-in, though not always properly supported. Android, however, was recently provided with multi-processor support thanks to the joint efforts of ARM and ST-Ericsson. Whether or not Windows Phone 7 Series (aka Windows Mobile 7) and Windows Mobile, webOS, or Apple’s iPhone OS will support multiple core processors remains to be seen.
There’s still more that differentiates Cortex-A9 from the older Cortex-A8 platform. Cortex-A9 processors are constructed on a more efficient 45nm manufacturing process that reduces power requirements when compared with the Cortex-A8’s 65nm process. This alone means that even single-core Cortex-A9 processors will be more energy efficient than current Cortex-A8 processors, and will be faster due to the improved instruction pipelines that we discussed earlier.
But now we get to the part where we talk about Qualcomm. Qualcomm licenses ARM’s architecture so that its CPUs are compatible (the Snapdragon chipset’s Scorpion core is Cortex-A8 compliant), but the chip giant does things that go beyond the processor that make its complete chipsets very attractive to handset manufacturers. Qualcomm integrates its CPUs with all of the GSM/CDMA/UMTS radio functions that a phone requires, as well as provides built-in support for things like HD video decoding and GPS. As a result, Qualcomm’s chipsets can be even more power and space efficient than other Cortex-A8 processors that require standalone support chips for these functions.
While Qualcomm was not inclined to tell me when Cortex-A9 support will be added to its Snapdragon processors, the company has already spoken about new 8X72 multi-core Snapdragon chipsets that will feature dual 1.5GHz Scorpion cores built on a 45nm process, just like Cortex-A9. In addition, Qualcomm’s 8X50A processor will run a single-core at 1.3GHz on an efficient 45nm process.
In terms of other manufacturers, NVIDIA is expected to provide its Tegra2 processor in a dual-core 1GHz form, as has TI with its OMAP4 processor line, and ST Ericsson has even shown off its U8500 CPU running dual-cores at 1.2GHz.
While we all snickered when Nokia started calling its smartphones "multimedia computers" a couple of years ago, the truth of the matter is that is where the industry is headed. Now that we’ve started seeing the same processors in some netbooks as we do in smartphones, the lines between the two types of devices blur.
Things are speeding up, folks. Hang on.