The Apple ISA

September 8, 2015

Apple’s institutional personality is easy to describe. Ruthless secrecy, monolithic opacity, taste. But perhaps more than anything else, Apple wants to own the whole widget.

Apple controls its language, compiler, delivery system, microarchitecture, SoC, and devices. Not to mention its IDE and OS. But not its ISA.

It’s not surprising, then, that Apple controls almost every bit of technology in its platform stacks. Apple makes its own programming language, it sets the rules for its App Store, and—since 2012—it’s one of only a handful of players in the consumer CPU business. Apple has always embraced vertical integration over the rest of the industry’s commodification, and recent years have only further consolidated its technology stack.

It is surprising that one last gap remains in the middle of this stack of system exclusivity: Apple licenses the instruction set architecture for its mobile devices from ARM.

Licensing an existing ISA might seem inevitable: when was the last time a brand-new ISA succeeded? ARM, from 1985, is a baby next to x86, which dates to 1978. IBM still makes new machines binary-compatible with its 1964 model. One does not simply walk into ISA design.

But recently, Apple announced that Watch apps would be delivered as LLVM IR, not machine code: the ISA is completely hidden from third-party developers. Apple pundits have inferred that the bitcode development presages ARM Macs or, even less plausibly, x86 phones. But it’s more likely Apple will move away from legacy ISAs.

Apple’s outsourcing of this crucial piece at the heart of its systems looks increasingly incongruous as the need for interoperability with the broader ARM ecosystem evaporates. In the Apple stack, ARM today acts as a serialization format for LLVM to convey information to the Apple microarchitecture. And it’s certainly not the best serialization format: a traditional von Neumann ISA like ARM incurs a semantic gap; the architecture wastes time and energy rediscovering facts that the compiler already knew.

The computer architecture community has produced better alternatives to legacy ISAs, from conservative extensions to complete rethinkings. Apple itself has explored macroscalar, an unconventional ISA design for efficient instruction-level parallelism, and Nvidia’s Denver core has already gone full Transmeta with a custom architecture that just pretends to be an ARM. The need for hardware–software co-design is more urgent than ever in 2015, and it’s only a matter of time until the industry dismantles the dusty abstractions that prevent serious co-design efforts. Apple has everything lined up to overhaul its hardware abstraction.

It may not come tomorrow, but an Apple ISA is coming.