Arm’s future mobile CPUs won’t support 32-bit apps: Here’s what that means
Arm has announced that all its mobile CPU designs will not support 32-bit operations from 2023 onwards, in a move that will kill off 32-bit support on Android entirely. The chip designer already moved to cull 32-bit support on its big core chip designs back in 2020, after 64-bit support was first introduced to the smartphone market in 2013. While it seems like a big move, there are likely going to be few ramifications (if any) for the Android ecosystem.
“Bits” refers to the number of memory addresses that can be accessed in a machine. A 32-bit machine can, in general, access 2^32 memory addresses, equivalent to around 4GB. A 64-bit machine can access 2^64 memory addresses, roughly in the realm of 18 quintillion. There aren’t a lot of tangible benefits for an app to be compiled with a 64-bit instruction set, but there’s no reason that it should be compiled with a 32-bit one either. 64-bit benefits the operating system more, as it can reference more than 4GB of virtual memory. On 32-bit designs, the ARM CPU is capable of addressing a maximum of 4GB of virtual memory space, which must be shared between user space processes, the kernel, and hardware devices. Arm’s future mobile chipsets will revolve entirely around 64-bit from 2023 onwards (via Android Authority) meaning that all software running on-device will need to be compiled with a 64-bit instruction set.
Android is 64-bit, and 64-bit apps are already the standard
Android 5.0 Lollipop laid the groundwork for 64-bit OS support, though support was kept for 32-bit applications so that they could still run. Android 12 seems to be the first release with full 64-bit versions of system apps and services across the board, though.
That’s a first in Android.
After Apple ditched 32bit support in iOS 11 and macOS Catalina, Google is now following with Android S.
This is a x86_64 emulator running w/o 32bit support.
This makes the way for ARM CPUs without aarch32 ISA support like the new Cortex-A65. pic.twitter.com/nIUyFYklJW
— Luca Stefani (@luca020400) June 26, 2020
As for apps, way back in August of 2019, Google forced developers to submit 64-bit versions of native applications to the Google Play Store. Any apps compiled in Java or Kotlin will likely need very little work (if any) to run in 64-bit mode, as apps compiled in Android Studio using standard libraries should just compile in 64-bit without any developer intervention. App and game developers themselves are even beginning to drop 32-bit support, with Niantic in 2020 pledging to drop 32-bit support from Pokémon Go as well.
Really, only developers using third-party libraries or game engines need to worry about what architecture their app is compiled for. Major game engines on Android already support 64-bit, with Unity adding 64-bit support in 2018, a whole year before Google required it on the Play Store. Armv8 was the first Arm instruction set to support 64-bit operations and was announced in 2011, and Armv9 continues that support. Google has been providing information about the switch to 64-bit for a long time now and has pledged to stop serving 32-bit apps entirely from August 1st, 2021. The writing has been on the wall for 32-bit apps for a long time now, and Arm’s commitment to 64-bit likely won’t come as a shock to anyone.
Arm’s Cortex-A chips will be 64-bit only
Previous chips designed by Arm could run both 32-bit and 64-bit code and switch between them on the fly. Some of the earliest-implemented Armv8 SoCs were used in 32-bit only mode, despite the reference designs having 64-bit support. Nowadays, some Arm chips are 32-bit only while others are 64-bit only, though the 64-bit-only chips are not used in any smartphones currently. All Cortex-A series chips will be 64-bit only by 2023, and as we already know, all of its big cores will be 64-bit in 2022.
It’s worth mentioning as well that Cortex-A chips are almost exclusively used in smartphones, tablets, and Chromebooks, whereas Cortex-M chips are low-cost and energy-efficient, used in the likes of IoT devices. While Cortex-A chips are getting the 64-bit-only treatment, Cortex-M chips are exclusively 32-bit, and there are currently no plans to make them 64-bit only.
Arm’s future in Android
Nothing should really change for the end-user, and it’s unlikely that there will be any hiccups. Google has been preparing for this for years now, and developers haven’t even been able to submit 32-bit native applications to the Google Play Store for two years. I can’t think of any recent smartphones that have launched as 32-bit only, as all smartphones I can think of that have released in recent years are 64-bit. This should (hopefully) be a smooth transition for everyone, and it’s unlikely to affect the vast majority of smartphone users when the time does come.
This article was updated at 2:18 PM ET to correct some details about 32 versus 64-bit.