First, two quotes from my review of the original iPhone:

“The issue is that the iPhone interface is just as responsive as a computer, so you inherently expect the sort of performance you'd see on a notebook and it's just impossible on a device like the iPhone." “I think overall we need a handful of upgrades to the iPhone alongside 3G; we need a faster processor, possibly more system memory, maybe even faster flash. The MLC flash in the iPhone has absolutely horrendous write speeds compared to SLC, which could be holding the iPhone back a bit. I can see Apple introducing a 3G version in about 12 months, addressing many of these issues at the same time.”

Indeed, 12 months after the launch of the first iPhone - Apple did fix the wireless performance issues with the iPhone 3G. Unfortunately, the hardware remained untouched. All of my other complaints in those two quotes remained open ticket items between Apple and I. In fact, things got worse. Here we have what I wrote at the end of my iPhone 3G review:

“Apple must be wary of the direction the iPhone is headed in. While the UI was absolutely perfect for the phone that launched a year ago, today’s iPhone is hardly the same. With easily over twice as many applications on an iPhone today vs. a year ago, performance and navigation have both suffered. The impact isn’t tremendous, but Apple will have to adjust the iPhone accordingly in order to avoid turning the platform into a bloated, complicated mess.”

Two days ago, Apple announced the iPhone 3GS - designed to address one thing: performance. The other half of my complaint in the conclusion of my 3G review, addressing navigation and UI with the new expanded iPhone platform, isn’t addressed by the 3GS. I suspect that in another year we’ll see that. But today, it’s about hardware.

The Impetus

After yesterday's Pre vs. iPhone 3G battery life article I got a few emails from people very close to the chips used in the iPhone 3GS. A couple of exchanges later and I realized it might be time to go a little deeper with the hardware behind the iPhone 3G, iPhone 3GS and the Palm Pre.

The Original

The iPhone and iPhone 3G use a system on a chip (SoC) from Samsung. The SoC is a custom part and actually has Apple’s logo on the chip. The SoC houses the CPU, GPU and memory for the iPhone.

The CPU is based on the ARM11 core, in specific it is the ARM1176JZF-S. The CPU runs at 412MHz to save power, although the core is capable of running at 667MHz. The ARM11 CPU is a single-issue in-order microprocessor with an 8-stage integer pipeline. It’s got a 32KB L1 cache (16KB for instructions, 16KB for data) and no L2 cache. The ARM11 CPU in the iPhone also has a vector floating point unit, but thankfully the SoC includes a separate GPU for 3D acceleration. You can think of this core as a very high clocked, very advanced 486. And extremely low power. Under typical load, the CPU core should consume around 100mW. By comparison, the CPU in your laptop can require anywhere from 10 - 35W. Idle power is even lower.

Paired with this CPU is a PowerVR MBX-Lite GPU core. This GPU, like the CPU, is built on a 90nm process and is quite simple. The GPU does support hardware transform and lighting but it’s fully fixed function, think of it as a DirectX 6/7 class GPU (Riva TNT2/GeForce 256). Here’s PowerVR’s block diagram of the MBX:

The MBX-Lite in the iPhone shares the same architecture as the MBX but is optimized, once more, for power efficiency and thus is significantly slower.

I don’t have exact clock speed information for the MBX-Lite in the iPhone but I’m guessing around 60MHz.

Coupled with the CPU and the GPU in the iPhone’s SoC is 128MB of DDR memory, all on the same chip. It’s a pretty impressive little package. You get a CPU, GPU and memory all in a package that’s physically smaller than Intel’s Atom.

Now the 486 came out in 1989 and the original 3dfx Voodoo graphics card came out in 1996. The iPhone’s SoC would be ridiculously powerful if it were running the sorts of applications we had back then, but it’s not. We’re asking a lot from this little core and although it has performed admirably thanks to some clever software engineering on Apple’s part, it’s time for an update.