Apple has decided to switch from using Intel CPUs to power its computers to using its own custom ARM-based CPUs that it’s calling “Apple silicon”. Apple has been designing its own mobile CPUs for years but this change from Intel to ARM has a potentially big issue that most consumers probably won’t be aware of. Thankfully for Mac users, Apple is working on minimising any effect to the end-user.
Intel and AMD CPUs use the x86 architecture or more specifically the x86_64 architecture, a 64-bit variant of the original 16-, then 32-bit x86 architectures. This is basically a standard set of instructions that a CPU can run. When apps are written and compiled, they have to take into account what sort of platform they run on. This doesn’t just mean Windows, macOS, or Linux but also means the instruction set that the CPU is running. With the ubiquity of the x86 instruction set in the computer market, essentially everything is designed to use it.
The problem is that ARM-based CPUs don’t use the x86 instruction set, they use the ARM instruction set, and this is not compatible with x86. This means that most programs that would run on an Intel-based Mac would not be able to run on an ARM-based Mac.
There are two ways that Apple plans to resolve this issue. The first is to persuade developers to modify their apps to also work on ARM CPUs, the second is to use an “Abstraction layer”. Given the size of Apple’s market share, it will likely be able to persuade many developers to publish an ARM version of their software. This may take some time to become common though especially as it may require some code changes.
The abstraction layer, called “Rosetta 2” is designed as a stopgap measure to allow x86 applications to be run on ARM CPUs. This process may not work perfectly for all applications, potentially causing stability and performance issues but should generally work for most applications. It will also come with increased processing time whenever the conversion happens, for example when the application is being installed or when the code is being run.
Tip: The abstraction layer is named “Rosetta 2” as it follows on from the original Rosetta abstraction layer that was used when Apple switched from IBMs PowerPC architecture to Intel’s x86.
In reality, this approach means that macOS users may have to get used to checking that the software they want to install is ARM compatible rather than for x86 CPUs. The abstraction layer itself is supposed to be essentially transparent to the user though, so that should be an issue.
The other potential issue is performance. ARM CPUs have typically been used in mobile devices because they’re very power efficient, and so provide devices longer battery lives. This doesn’t particularly sound like a downside, unfortunately, they also haven’t compared favourably at the mid- to high-end performance tiers of traditional desktop CPUs in terms of raw performance.
Overall, the efficiency changes should bring a noticeable battery life improvement where applicable. While mid-tier CPUs are likely to remain somewhat competitive with their x86 Intel predecessors, this may not be the case at the top of the line options
Potentially to help address this issue, the first generation of Apple devices actually using ARM CPUs will be the low- to mid-tier products with the high-end devices remaining on Intel for at least one more generation.