The iPhone 3GS Hardware Exposed & Analyzedby Anand Lal Shimpi on June 10, 2009 12:00 AM EST
Enter the ARM Cortex A8
This past weekend Palm introduced its highly anticipated Pre. While I’m still working on my review of the Pre, I can say that it’s the closest thing to an iPhone since Apple first unveiled the product two summers ago. In many ways the Pre is lacking in areas that the iPhone has honestly perfected, but in others the Pre easily surpasses Apple’s best.
One such area is raw performance. While both the iPhone and iPhone 3G use the same old CPU/GPU, the Pre uses TI’s OMAP 3430 processor. The 3430, like the SoC Apple uses, has both a CPU and GPU on the same package. Instead of the ARM11 and the PowerVR MBX-Lite however, the OMAP 3430 uses an ARM Cortex A8 core and a PowerVR SGX GPU. Both are significant improvements over what was in the original iPhone.
Thankfully, Apple fans don’t have to be outclassed for long - the newly announced iPhone 3GS uses a comparable CPU/GPU pair.
Although unannounced, the iPhone 3GS uses (again) a Samsung SoC but this time instead of the ARM11 + MBX-Lite combo it’s got a Cortex A8 and PowerVR SGX; just like the Pre.
A derivative of this is what you'll find in the iPhone 3GS
If the ARM11 is like a modern day 486 with a very high clock speed, the Cortex A8 is like a modern day Pentium. The A8 lengthens the integer pipeline to 13 stages, enabling its 600MHz clock speed (what I’m hearing the 3GS runs at). The Cortex A8 also widens the processor; the chip is now a two-issue in-order core, capable of fetching, decoding and executing two RISC instructions in parallel.
The ARM11 processor in the iPhone/iPhone 3G has a basic vector floating point unit, but the A8 adds a much more advanced SIMD engine called NEON. The A8 also has twice as many double precision FP registers as the ARM11. The addition of NEON and the improved vector FPU in the A8 makes the processor much less like the original Pentium and much more like Intel’s Atom. Granted, Atom is significantly faster than the A8, but it also draws much more power.
Caches also get a significant improvement. I believe Apple will be using a derivative of Samsung’s S5PC100, which has a 32KB/32KB L1 cache (I/D, we may see a 16KB/16KB config instead) and a 256KB L2 cache. The L2 cache, as you’ll remember from the first section, is a new addition to the A8; the ARM11 core didn’t have an L2.
|iPhone 3G (ARM11)||iPhone 3GS (ARM Cortex A8)|
|L1 Cache Size||16KB I-Cache + 16KB D-Cache||32KB I-Cache + 32KB D-Cache|
|L2 Cache Size||N/A||256KB|
The combination of higher clock speeds, more cache and a dual-issue front end results in a much faster processor. Apple claims the real world performance of the iPhone 3GS can be up to 2x faster than the iPhone 3G, and I believe that’s quite feasible.
The new SoC is built on a 65nm manufacturing process, down from 90nm in the original hardware. However, power consumption should still be higher for the new SoC compared to the old one. ARM’s own site lists ~0.25mW per MHz for the ARM11 core but < 0.59mW per MHz for the A8. That’s for a 650MHz low power A8 core and I’m expecting 600MHz for the 3GS, that’s at most 3x the power consumption of the CPU in the original iPhone. So how can Apple promise better battery life?
The thing about these comparisons is that they don’t show the full picture. With the same battery capacity, running at full speed, the new iPhone 3GS would run out of juice faster than the existing iPhone 3G. But that’s rarely how people use their phones. Chances are that you’ll perform a few tasks before putting the phone back to sleep, and what matters then is how quickly you can complete those tasks.
Just under nine years ago Intel talked about a technology called Quick Start. Let me quote from our IDF 2000 Day 2 coverage (wow, that was a while ago):
“"Intel has figured out that it is best to use full CPU power for a split second to finish a task and then put the CPU to idle as this conserves battery life the best. Although one may suspect that when running complex operations the CPU would not have time to go idle, this is not the case. To illustrate this point, Intel used an example of DVD playback. Very stressful on the system as a whole, Intel's quick start technology allows the CPU to "hurry up" and perform the DVD decoding operations and then go idle until the frame is displayed to screen and the next scene needs to be calculated. This saves battery life because, although the system may require 3 watts or so to "hurry up", the power consumption goes down near .25 watts when idle. By averaging these two numbers, one can quickly see how quick start can extend battery life."”
The A8’s power consumption has to be well under that 3x max I quoted above, and the iPhone 3GS needs to be more than just 2x faster at executing instructions, but if possible then it’s quite feasible for the faster A8 to draw more instantaneous power but draw less power on average than the ARM11 core in the original iPhone.