Tech —

iPhone processor: ARM? Samsung? XScale?

We revist the question of who is providing the main processor for the upcoming …

There has been a bit of confusion in the Apple and business world over the past few weeks about just which company got the contract to supply Apple with processors for it's breakthrough iPhone. Here's a quick timeline of the information we've received so far:

Reuters confirms with Intel that Intel processors will not be in the iPhone.

FBR Research determines (through unknown means) that Samsung Electronics will the be supplier of the CPU/VPU present in the iPod. Infinite Loop reports on these findings.

An Italian Intel executive, in an interview, claims that Marvell, the current owners of the XScale line of ARM processors, got the iPhone contract.

That's where we've been since January 19. However on January 16, an unnoticed, yet "interesting" email was posted to the LLVM-dev mailing list. Chris Lattner, an Apple employee, announced that Apple would be contributing a significant amount of code back to the ARM branch of this open-source project. This is interesting on several layers, because our own John Siracusa reported on Lattner's work at Apple to integrate LLVM with gcc 4. We're still not sure what Apple is doing with LLVM exactly, but the fact that they're working on the ARM backend of LLVM tells us that there's something going on in small-scale devices.

Regardless of the LLVM matter, this new information all but confirms that the processor powering the iPhone will be ARM-based (as if it weren't already). Lattner provided a list of other details that should help us pin down the exact manufacturer, and possibly the specific architecture and core-type that will be inside the iPhone when it ships (or what they were using for prototypes, at least). Lattner goes on to list the specific improvements that Apple made to the LLVM ARM backend:

The improvements include support for ARM v4/v6, vfp support, soft float, pre/postinc support, load/store multiple generation, constant pool entry motion (to support large functions), and support for the darwin/arm ABI. In addition to ARM support, the backend now includes code generation support for the Thumb instruction set, which is effectively a completely new and different code generator.

The first thing—the thing that points toward this code being for the iPhone and not some other wonky project—is the mention of "darwin/arm ABI." This means there's a port of Darwin to ARM—if that doesn't scream "OS X on the iPhone" then I'm not sure what does. Working off of this information and cross-referencing it with the information about ARM cores on Wikipedia (I feel like Lt. Cmdr. Data from ST:TNG), it becomes quickly apparent that XScale processors do not add up. First off, XScale processors do not support VFP , a coprocessor extension to ARM. VFP would be vital in performing operations on an iPhone-like device:

Secondly, Lattner explains that the improvements include support for ARM v4/v6, whereas the XScale is v5. Since we've effectively ruled out XScale processors, does the Samsung theory still hold water? The only cores that I could find that support VFP are the ARM1136, ARM1156, and ARM1176. Samsung's ARM core timeline clearly shows ARM1156 and ARM1176 cores being pursued throughout 2006, however, their processor cores page still only shows ARM1136 powered processors available at this time. This is typical, however, as we've seen in our seriesofiPoddissections, Apple has access to many components that are not readily available to individuals, or even other similarly-sized corporations.

So, uh, what have we learned here?

There are a metric...chip-load of different ARM processors.

Just about everyone is producing ARM processors.

If we agree that Apple's contributions to the ARM backend of the LLVM project are indicitive of the work they've been doing for the iPhone (or other ARM based products?), it should be clear that XScale is not an option.

Samsung is a likely partner in the iPhone. Other corporations make ARM11 processors, though, so we can't say for sure if Samsung is definite.