ARMv8, the architecture upon which Apple’s new A7 is designed, is a clean break. ARM’s previous instruction set dated back 20 years. ARM has always been designed for low power consumption, but 20 years ago is forever in this industry. Rather than simply add 64-bit instructions to the old ISA, ARMv8 is a clean break designed for today’s — and the future — world. From an ARM white paper introducing ARMv8:
Fundamental to ARMv8 has to be the new instruction set, known as A64; the encoding of instructions to enable an application to utilize a 64-bit machine. ARM took the decision to introduce 64-bit through a new instruction set rather than extension of an existing instruction set for many good reasons. Most notably, and probably as no surprise, because we could develop a new independent instruction set to execute code in a lower power manner than by adding instructions to the existing instruction set. Of course, for compatibility reasons, we still support the entire ARMv7 machine in the new ARMv8 architecture, but when running 64-bit software, this part of the machine is not being used, and the area of complex legacy it had built up does not need to be active when running in the 64-bit ISA, unlike other architectures where 64-bit extension was simply added to the historical complexity and legacy of their 32-bit mode. The new ISA drew upon the years of experience of building different micro architecture implementations, so again it was defined so that these new processors can be more easily optimized for low power operation — an opportunity not really offered since the first ARMv4 machine that resulted in the now legendary low power ARM7 processors.
What does this mean? It means, for one thing, that the biggest reason for the performance and power consumption improvements going from the A6 to A7 is the switch from the ARMv7 to ARMv8 architectures, not 32- to 64-bit. ARMv8’s improved instruction set alone has resulted in 15-20 percent performance gains while simultaneously using less power, from what I’ve been told by informed sources. And though Apple could have gone to ARMv8 while remaining 32-bit only, it made no sense not to go 64-bit.
There are applications today — imaging, gaming, cryptography, video and photo filters — that will benefit from 64-bit despite the fact that the iPhone 5S has just 1 GB of RAM. It should prove faster overall, even if only slightly, than a hypothetical A7 that had switched to ARMv8 but remained 32-bit only.
But the big win is laying the groundwork for the future. iOS developers should have few problems recompiling their apps for 64-bit. (My Q Branch colleague Brent Simmons on how long it took to get Vesper to compile cleanly for 64-bit: “Just a few minutes.”) Apple’s been through this transition before, with Cocoa on Mac OS X,3 and any iOS developer who didn’t see this transition coming sooner or later simply wasn’t paying attention. Many apps should be native 64-bit binaries soon. By next year, when the A7 works its way down to the mid-range iPhones, most will be. And two years from now, it’s almost certain that all new iOS devices being sold will support 64-bit. It won’t be long until Apple can consider dropping 32-bit support and going 64-bit only. By the time it becomes feasible for iOS devices to have more than 4 GB of RAM, iOS will have already been a native 64-bit platform for several years.