There’s been a long-running rumor that Apple might one day replace their laptop processors with ARM chips. With long delays between updates that might be Intel’s fault, supporters of this idea believe that having chip production in-house would lead to a regular update cycle for Apple’s Mac line. But what are the technical differences between ARM processors and the more common x86 processors made by Intel and AMD?
What Does “x86” Mean Anyway?
Every Mac sold today is powered by what’s called an “x86” processor. This moniker describes the instruction sets used to give commands to the chip, and can also describe the microarchitecture used to build the processor.
If you’ve used Windows, you might be familiar with this name from the two Program Files folders. Windows 7, 8 and 10 refer to their 32-bit programs with the term “x86,” and their 64-bit programs (in some contexts) as “x64.” That isn’t strictly accurate. 64-bit-capable processors should be referred to as x86-64, but it’s a lot clunkier.
The “x86” name comes from the original 16-bit Intel processors that used the x86 instruction set, the 8086. Future generations that shared the same instruction set also shared the same suffix, like the 80386. This kept on until the Pentium chips, which broke the naming convention. Nevertheless, we still use “x86” to refer to these kinds of chips.
We can make some high-level generalizations about ARM and x86 chips. ARM chips are great for low-power or embedded environments that require simple instruction sets, but they’re typically slower. x86 chips work quickly but are harder to make, expensive and not as power-conscious. That basic generalization is changing, though, as Intel attempts to produce low-powered versions of its x86 chips, and ARM chips, like Apple’s A10 Fusion, begin to overtake laptop chips in certain benchmarks.
All processors are based around what’s called an “instruction set.” This is a set of rudimentary operations that a chip can perform and instructions for how to perform them. It tells the chip how to do basic math and move data around. The programming language for these instructions is called assembly language.
The core difference between ARM and x86 chips is their instruction set. x86 chips are CISC chips, which stands for “complex instruction set computing.” CISC chips attempt to represent a given task in the fewest lines of assembly as possible, abstracting away basic functions. These more complex operations also need to run over the course of multiple clock cycles. ARM chips are RISC, which stands for “reduced instruction set computing.” RISC chips rely on rudimentary instruction sets, breaking every process down into extremely small, simple steps. Each of these smaller steps can be executed in a single clock cycle.
CISC vs. RISCWhen multiplying two numbers, a CISC chip might run a single command:
MULT 2, 3. This command will handle the entire multiplication process, including loading numbers from memory, multiplying them together, and storing the result in the correct memory location. An RISC chip performing the same operation would require many more steps, breaking out each individual task in to its own instruction. First, a
LOADinstruction would move numbers from the registrars to the execution unit. Then, a
PRODinstruction would multiply the numbers. Finally, a
STORinstruction would place the result in the correct register.
CISC chips might seem better since they’re commands are simpler, but it’s not as black and white as that. First, CISC chips execute commands over multiple clock cycles, while each instruction in a RISC chip is executed over a single clock cycle. Because of this, our hypothetical
MULT command might run in the same amount of cycles as the set of RISC instructions that perform the same task. Second, all of CISC’s instructions and logic need to be stored in transistors. RISC chips can use fewer transistors because they need to store fewer instructions. Third, the lower number of transistors required by RISC allows for lower power usage.
There are some advantages to CISC. First, the computer doesn’t need to do much work to convert from a human-level programming language like C to processor-level assembly language. In fact, the
MULT command mentioned above is very similar to the C command
foo = foo * bar. RISC chips ask the compiler to do a lot more work to get code down into assembly language. CISC chips can also operate directly on main memory while RISC chips can only operate on CPU registers.
Power ConsumptionOutside of difference in instruction sets, the two platforms differ in power usage. Thanks to their reduced instruction sets, RISC chips require less transistors to function. With fewer transistors to power, RISC chips see power savings and heat reduction when compared to their CISC counterparts. That’s one of the reason that smartphones use ARM chips almost exclusively. The heat and power savings from ARM chips are too good to pass up.
When power consumption isn’t as much of an issue, x86 chips are the better option. They’re generally more powerful, allowing them to handle the complex operations expected of laptops and desktops. And with their larger instruction sets, they can include special instructions for tasks like demuxing video codecs. While power consumption is a concern for laptops, it’s not nearly as important as on smartphones.
Will Apple move to ARM chips for Macs?
Apple makes some of the best ARM processors in the business, but shifting their laptop and desktop lines to ARM would have some downsides. Changing architectures is massively difficult and can take years to finish. Look at the shift from PowerPC to Intel processors: for years, developers would release two versions of their software to accommodate different hardware platforms. Switching to ARM would also limit compatibility with other platforms. For example, running Windows on a Mac would become massively more challenging, likely eliminating Bootcamp’s ease of use. And unless their relationship with Intel degrades significantly, they’re unlikely to make that change anytime soon.
You might also like: