Saturday, January 01, 2011

Apple in 2011 and beyond

Jonny Evans, writing in his Computerworld blog, has already issued his speculations for what might be forthcoming from Apple during 2011. I won't be going through that list, just pointing you to it.

The way I see it, there's several major trends to be tracked in news from Apple: the development of iOS, Mac OS X, and the cross-fertilization between them; the parallel development of iDevice and Mac hardware; the movement towards cloud computing; and any indication that Apple is transitioning towards increased self-reliance with regard to essential components. There's also the collection of secondary devices and peripherals, which may take on greater importance in the future as it becomes possible to shoehorn a complete system into smaller and smaller boxes.

Of these, I only intend to address Apple's movement towards self-reliance in essential components, branching out some from that starting point.

First, I don't mean to suggest that Apple is about to build or acquire an IC foundry, except perhaps a small-scale one sufficient to allow them to keep their IC designs in-house until ready for mass production. As the scale of circuit features has diminished, the cost of the equipment needed to fabricate chips has gone through the roof, and only very large scale operations are economically viable. This means a handful of foundry operators selling production line time, and that situation isn't likely to change soon. If Apple were to build or acquire a foundry, they would have to farm out production time when their own needs were slack, and buy additional production time from others when demand for their products grew faster than expected, meaning that it would be at best a marginal advantage and probably not enough of an advantage to justify the investment.

The tools for chip design, on the other hand, have become more affordable, and a cottage industry of small design houses has blossomed as a result. Many of these companies are involved in producing application-specific integrated circuits (ASICs), frequently combining only a small amount of custom circuitry with cores and subsystems licensed from others.

Apple has long been in the ASIC design business, incorporating custom chips into their product designs, but they have recently been bolstering this capability, in part through the acquisitions of Palo Alto Semiconductor and Intrinsity, and, at least for iOS devices, they have moved to custom CPU designs incorporating ARM cores. We can expect more of this, and it wouldn't be terribly surprising if the MacBook Air were to be switched to an ARM-based design.

Apple already has the technology to cross-compile software between CPU instruction sets, having done this first for MC68000 code running on PPC machines, and then for PPC code on Intel machines. Moreover, in the transition from PPC to Intel, they did some work on using an intermediate instruction set for an abstract virtual machine as part of process of translating code from one platform to another, and they have continued as an active participant in the LLVM project, incorporating that technology into Xcode.

That doesn't necessarily means they could deploy an ARM-based machine running Mac OS X tomorrow, but chances are they've been working quietly on exactly that; the writing having been on the wall since they determined that the Intel Atom wasn't competitive for use in portable devices. And, while they could use an off-the-shelf CPU in such a machine, it's nearly certain they'll instead opt for an in-house custom design. This would allow them to, for example, incorporate a graphics core that's optimized for both OpenGL and OpenCL. (They might even bring back the Velocity Engine, in a fresh, multicore implementation.)

But an ARM-based MacBook Air shouldn't be taken as an indication that Apple was about to abandon Intel's processors. While the low-end (plastic) MacBook might also make the switch, it's unlikely that the MacBook Pro line would follow, at least not immediately, and even less likely that the desktop line would drop Intel. Apple has long upheld the principle that software should be hardware-independent, both allowing maximum flexibility in the selection of hardware and helping to insure that changes in the hardware don't break the software. Simultaneously shipping ARM-based light-weight portables and Intel-based desktop and professional machines - that run the same software without the need for fat binaries, because it's all compiled for the LLVM virtual machine - would drive that point home.

So, three predictions: first, expect Mac OS X 10.7 (Lion) to have a legacy environment, for software that assumes the Intel CPU architecture, and a native mode for software that's been (re)compiled with the LLVM virtual machine as the target architecture; second, expect the Mac App store to cease accepting new Intel binaries within a year of the release of Lion, perhaps as little as six months; and third, expect an LLVM-binary compatibility environment in Snow Leopard before they cease revising it (analogous to the inclusion of Carbon in Mac OS 8 and 9).

Back to you, Jonny.

No comments: