Apple M1? What the heck is 'ARM'?

A mostly-complete, arguably-accurate, (and totally not-boring) illustrated guide to modern computer processors

First off, computer processors (aka "CPUs" or "Central Processing Units" if you wanna talk like a character in Star Trek) have largely been the unsung heroes of computer advances. When it comes to year-over-year processor-improvements, you have two main aspects:

  1. "transistors" (the bits that do all the 'thinking') get smaller and more-numerous as the manufacturing technology gets better, and
  2. the various other pieces get shuffled around to distribute heat / energy better

The hardware is basically the same from chip to chip — it's just a question of how big your transistors are, how many transistors you have, and how all of the other pieces are arranged. In short:

More transistors = more brainpower

Smaller transistors = faster thinking


Many articles I've seen are quick to point out "This isn't the first time Apple has changed Architecture", but they don't really explain what that means... If you'll forgive the analogy, Imagine changing your car from gasoline to diesel:

Both are "liquid fuels", and both "combust" in the engine block, and the end result is the same — through some magic, the wheels turn.

Still, you can't go to the regular gas pumps anymore and your 'remaining distance' estimate (if you have a fancy car with a computer) doesn't have a clue how far you can go.

Changing the Architecture in your processor is similar in many ways, because while there aren't any explosions (hopefully), the software ('fuel') runs with certain expectations about what the environment is like:

A gasoline burns fast at low-pressure (and the engine uses spark plugs); diesel burn slowly at high pressure (without spark plugs).


When Apple changed Architecture the last time around, they built a special program called "Rosetta" to help ease the transition. When a program asks for a certain feature that the new processors don't have, Rosetta would intercept the request and would "fake" the answer.

Back in the early-90s, Apple was using a CPU from Motorola called the "68000 series" 🤷‍♂️, but in 1994, the PowerPC Architecture (aka 'PPC') was introduced and Apple jumped ship.

Give it another decade or so and the club is sure to have another member

Eleven years later (in 2005), Apple realized that the limitations of the PowerPC Architecture weren't worth the benefits and they made the hard choice to pivot their entire platform to use Intel's "x86" Architecture instead. Now in the 2000s there were a lot more Mac users than there were in the '90s, so Apple created the Rosetta program to ease the transition for anyone buying a new Mac.

Fast-forward fifteen years to today (in 2020), and...

Apple realized that the limitations of the Intel x86 Architecture weren't worth the benefits and they made the hard choice to pivot their entire platform to use their own custom chip on the 'ARM' Architecture instead.

Apple has been designing their own chips for years to use in iPhones, iPads, and watches, so I feel confident that their new Apple 'M1' ARM chips will be real workhorses. They've also updated their Rosetta program (now 'Rosetta 2') to do exactly the same thing it did before, except this time it helps the ARM version of MacOS run applications for the old Intel x86 Architecture.


Now you know what they're doing, but why make the switch? And how can Apple's M1 chips be 3x faster than comparable "Intel-type" (x86) chips? If you can forgive another analogy: A processor's architecture is a lot like a house...

Imagine you have a ranch-style one-floor house with a big yard. You can add a pool, you can add a garage and a guest suite, you can build a rooftop deck, and if you're really careful, you might be able to add a second floor or even a 3rd floor. Try adding a basement, though, and the whole house falls apart. Same, if you want to convert your yard to a launchpad for rocket ships, the city is going to come shut you down because you're not zoned for that.

There's a certain point where an Architecture has hit its limits.. you might even remember back in ~2009 when everybody was trying to get "4GB of RAM" (computer memory), but "Windows only supports 3GB"... that wasn't actually Microsoft or Windows' fault. That was actually the limits of the x86 Architecture. When x86 was introduced in 1978, "4GB of RAM" was inconceivable, and when x86 was later-updated (in 1985), it was still inconceivable.

I wasn't around for the conversation, but I imagine it went something like this...

For decades, all of our computers were running on the best-laid plans of engineers in the 70s...

In 2003 the x86 Architecture was updated from the "32-bit" computing of the 1980s to a more powerful "64-bit" way of doing things.

On the surface, it just looked like an update "to allow for more than 3GB of RAM", although technically it does a lot more than that. (More about memory in the footnote)

Finally, let's return to our analogy about upgrading your house...

Once you've maximized every square inch of your plot, there's nothing else you can add without taking something out, and your house is such a hulking behemoth that it takes an hour to find the bathroom.

When you reach that point in your Architecture fantasy where you can't go any further, you can cling desperately to what you have because it's "home" or you can take the best things that you learned from x86 and move to ARM to start fresh - this time with plans for a basement AND a rocket-ship.

I don't know about you, but I think Apple's transition to ARM will go just fine... and I can't wait for Microsoft to work up the courage to make the switch, too.


Footnote about how memory works

If you're wondering "why was there ever a 'memory-limit' on Windows in the first place?", it's because (one more analogy!) "RAM" memory is a little like a phone book...

Imagine your phone placed a call as soon as you dialed a single digit; there'd only be enough numbers for 10 people. (0, 1, 2, and so on until you reach the highest number, 9)

If you have 2 digits available, then you can call up to 100 people. (00, 01, etc until you reach 99)

If you have 3 digits, you can call 1000 people... you see where I'm going.

The 32-bit processor Architectures of the '80s could "dial" 232 numbers and get the memory stored there (which ends up being about 3.2 gigabytes at the high-end). By increasing the computing capacity with 64-bit Architectures, processors can now "dial" 264 numbers to access a whopping 16.8 exabytes of memory. That's 16.8 billion gigabytes!

Suffice it to say that we probably won't have to increase our computing bits for the sake of "maximum addressable memory" anytime soon.

When Windows and (with more pomp and circumstance) MacOS were updated to operate on the 64-bit version of x86, that was also an Architecture change, but because the 64-bit version of x86 was built with the same core design as the 32-bit version, the Architecture was automatically backwards-compatible for old x86 software.

That meant that old programs could still run (including, unfortunately, old viruses and malware), but it also meant that we were stuck with old mistakes and issues from the 32-bit version of the x86 Architecture, too.


References

  1. https://en.wikipedia.org/wiki/Mac_transition_to_Intel_processors
  2. https://en.wikipedia.org/wiki/X86
  3. https://en.wikipedia.org/wiki/64-bit_computing
  4. https://www.grammarphobia.com/blog/2010/07/suffice-it-to-say.html

Thanks for reading. For more design honesty and maybe some wisdom, visit my portfolio, drop me a line, or offer me a job.

See ya' later, Cowpoke.