Unlike the A7 and iOS, Android and ARM won't be able to go 64-bit overnight.
Yesterday, Ars reviews editor Ron Amadeo told me he had observed some interesting activity in the GitHub repository for Android . Several commits made over the last couple of weeks have made extensive mention of "AArch64," the architecture used by 64-bit ARM SoCs.
While the vast majority of the Android Open Source Project (AOSP) code isn't released to the community until after Google announces a new Android version, the Github repository houses code maintained by third parties that Google incorporates into its operating system. This isn't the first time the open source community has contributed 64-bit code to Android, nor does this necessarily mean that we'll see a 64-bit ARM build of Android running on shipping hardware any time soon. However, at least a few of these commits have Google employee names on them, suggesting that work is being done in earnest.
Intel has already announced a 64-bit version of Android 4.4 that will run on its own Bay Trail Atom processors, but Intel-powered Android devices remain a relatively small niche for now. Android and its developers won't be able to fully embrace 64-bit until the ARM ecosystem does, and even once the hardware support is there it will take some time for the software support to follow. The GitHub commits make this as good a time as any to talk about ARM and Android's path to 64-bit support and how it mirrors the move from 32-bit to 64-bit that happened in PCs a decade or so ago.
Why 64-bit?
64-bit is hardly an essential feature for your phone today, but that was also the case when the first Athlon 64 CPUs dropped back in 2003. The then-current Windows XP would run happily in a single gigabyte of RAM or even less, and the Athlon 64 found success less because of its 64-bit-ness and more because it was also good at running 32-bit code.
In the long run, though, 64-bit hardware gets you a couple of things that will prove to be beneficial. The most obvious is full support for more than 4GB of RAM, a limit that Android devices may well be running up against in the next year or two. Most high-end Android phones ship with 2GB of RAM today, though newer models like the Galaxy Note 3 are beginning to creep up to 3GB. Some chips already partially support this via ARM's Large Physical Address Extension, or LPAE (PDF ), but full 64-bit support will be required for apps to take advantage of more RAM.
Many applications don't need and won't benefit from having this much memory, but that's not all that 64-bit ARM brings to the table. The second benefit, which we saw firsthand in our review of the iPhone 5S , is that the ARMv8 instruction set is inherently more efficient than the 32-bit ARMv7 instruction set it replaces. John Poole of Geekbench summed it up to us best:
"[ARM has] cleaned up the architecture, they've removed a lot of the cruft that's built up over the years," Poole told Ars back in September. "They've also gone ahead and updated with things like more registers and better SIMD instructions, all while keeping the instruction encoding size exactly the same. There's roughly a comparable number of instructions … With the extra floating point registers and the extra SIMD instructions, especially if you've got numerically intensive code that can vectorize well … you're going to see a great increase in performance. I think in some cases it went up 200 percent."
64-bit code running on Apple’s A7 is capable of running around 33 percent faster than 32-bit code running on the same processor, according to our CPU benchmarks. As mobile SoCs begin to run up against performance-limiting thermal and power walls , that’s the kind of performance increase that’s difficult to ignore.
Waiting for hardware
So 64-bit ARM hardware has some desirable features, even if it's not really a must-have feature in the here-and-now. It's just going to be a while before we have 64-bit ARM chips from anyone other than Apple.
These will only begin to trickle out in the second half of this year, when products based on ARM’s 64-bit Cortex A53 and A57 architectures are slated for release. They won’t start showing up in high-end Android phones and tablets until 2015, though—so far the 64-bit chips we know about are the server-targeted Opterons from AMD and the midrange Snapdragon 410 from Qualcomm.
The high-end Snapdragon 805 that Qualcomm will start shipping in the second half of this year is still based on a 32-bit Krait architecture, and that chip will probably end up in most of this fall's fastest devices (barring a drastic change in Qualcomm's roadmap or its OEM partnerships). The 64-bit flavor of Nvidia's new Tegra K1 is scheduled to ship in the latter part of this year, but Nvidia's chips don't have the reach that Qualcomm's do.
Hardware needs software
64-bit capable hardware doesn’t mean a whole lot without 64-bit software, and at the very least, the ARM vendors’ tardiness here gives Google plenty of time to get 64-bit ARM support baked into Android and Google’s own apps. It’s entirely possible that the first high-end smartphones and tablets of 2015 will introduce 64-bit ARM hardware and a 64-bit ARM version of Android simultaneously.
Even assuming that these 64-bit phones ship with a 64-bit version of Android on day one, the software and hardware fragmentation native to Google’s Android ecosystem means that it will take some time to reach critical mass. As we’ve already seen in the long and protracted move from pre-4.0 versions of Android to post-4.0 versions of Android, app developers go where the users are.Even now, going to the Google Play store and searching for any given app will still return apps that look like they were designed to fit in on Gingerbread, not on one of the five versions of Android that Google has shipped since then. It’s going to take just as long for developers to justify building 64-bit versions of their applications.
Even in the Apple ecosystem, where 64-bit phones and tablets have existed for a few months now, common apps are still more likely to be 32-bit than 64-bit.Hooking an iPhone 5S up to Xcode's Activity Monitor and launching a few common applications makes that clear—even the ones that have already been redesigned for iOS 7 are still usually 32-bit.
Assuming that our projections are accurate, Android’s 64-bit transition will begin in earnest right around the time that Apple completes its own transition.That's just part of the process, though, and getting developers on board with 64-bit applications will take even longer.
In essence, we can expect Android’s transition to 64-bit to follow the same general path that Windows did a decade ago. AMD struck first in 2003 with a 64-bit CPU that also ran 32-bit instructions. By the time Intel's Core 2 Duo hit in 2006, most new desktops and laptops were shipping with chips that could execute 64-bit code. After Windows 7 came out in 2009, most new computers slowly began shipping with 64-bit Windows installed by default rather than 32-bit Windows (Microsoft still offers 32-bit Windows, which may or may not change with Windows 9).
Smartphones and tablets will likely follow a similar path on a more compressed timeline. We can expect the first chips to trickle out late this year, the very first 64-bit-capable Android phones to begin hitting shelves late this year and early next year, and 64-bit Android to become a high-end mainstay in late 2015 or early 2016. Surprise announcements could easily accelerate this schedule, but it's going to be a while before 64-bit Android becomes the norm.
No comments:
Post a Comment