Apple CPU Architecture Through the Ages
jacobbartlett.substack.com
jacobbartlett.substack.com
PPC offered tremendous promise in the early 1990s at the same time Motorola's evolution of M68k was lackluster at best - so it made perfect sense that Apple would need to migrate away from M68k, and PPC was the optimal choice so as not to compete directly with hardware used by the PC market.
And when Intel/AMD were innovating tremendously in the early 2000s while IBM was lagging with bringing out aggressive updates to their PPC line, the switch to Intel seemed inevitable.
Even the idea that Apple should heavily develop their ARM mobile chips for future Apple products was discussed heavily in my circles since about 2016 (around the same time Intel started to stagnate their offerings). The earliest I remember was this blog from 2011: https://www.mattrichman.net/apple-and-arm-sitting-in-a-tree/.
Apple entered into a trio with IBM & Motorola to develop the PowerPC in early 90's.
But at that time, there already was MIPS around.
Anyone know why this PowerPC project was started despite that? Especially if -per the article- the main goal was to move from CISC to RISC?
Even if MIPS cpus around at the time had performance/W issues (I've no idea yes or no), then improving technology for existing ISA would be easier than inventing entire new architecture, no? (+ all the software tools)
And there was also SPARC then.
So why invent new wheel, vs. improve MIPS (or SPARC) & use that? Not-invented-here syndrome? Licensing issues?
MIPS was to be used as one of the 'standard' reference platforms for the Advanced Computing Environment[0] or Advanced RISC Computing (?) (the other being X86), that would run Windows NT.
[0] https://en.wikipedia.org/wiki/Advanced_Computing_Environment
The M1 felt like that all over again. I didn't really get that feeling during the 68K to PPC era but that also wasn't handled as gracefully.
But it seems clear that Apple is going to have the same problem with ARM that it had with PPC. It’s already falling behind on the high end. The ARM MacPro is laughably incapable compared to high end x86 processors and they still have no GPU story to compete with Nvidia on the high end.
I’m sure Apple could design something capable of competing with high end Intel CPUs. They just don’t have the stomach for it because the market for really high end Mac’s are so small.
Whether it matters is the question.
Anyways, back to the subject if Apple start to ship Raspberry Pis from tomorrow then I still don’t care and buy Apple until they ruin MacOS, in which case I switch to a job that does not require a computer.
Same, but for my macbook pro. Bluetooth implementation is borked and I can't even use a single device properly - I have to constantly unpair/pair my headphones. If I use 2 devices there is some stuttering in sound. But if I use 3 - all devices stutter, unless I kill some bluetooth daemon, then it works normaly for 2-5 seconds and goes into the bork mode again.
But then the software is awful too:
1. Switching between workspaces takes up to a full second before the new workspace becomes active even after disabling all animations
2. Some windows just randomly decide to not show the three control buttons and it becomes impossible to close them without messing with the process.
3. For simple screen recording I have to open Quicktime player. Then the screenshot tool becomes screen recording tool with no apparent way to return it back to the screenshot tool.
And these are just the ones I experienced this/last week. Don't get me started on mouse getting stuck in a secondary monitor or disappearing completely and other shitty UX experiences I've had being forced to work with macos for the past 2 years. Can't wait to move away and not look back.
Regarding the screenshots, I've just learned these shortcuts, but if I open the screenshot tool using CMD + Spacebar + "screenshot", it often just defaults to screen recording and I see no option to switch that.
And of course we keep the Mac Pro above that, meant for almost nobody.
You're right, they don't appear to be chasing these markets aggressively right now, but some of the stuff they're doing suggests that might change.
Others are natural evolution as the original cpu is a seemingly deadend, even though powerPC did move on and still some embedded 68k. But the salesmanship of steve can bring you that long n that platform is a miracle. Having the struggle later with wintel is hard as intel is really improved a lot.
Still a surprise as even steve said we have a secret project keeping next sorry osx I meant on intel as an option.
Love his presentation
https://www.youtube.com/watch?v=JcHQXMAd0c0
Btw he said the osx transition will last us next 20 years. Just dong it and by 2025 intel no more!
Wonder what is the next transition.
There were lots and lots of signals in the background that Apple is serious about their chip strategy all the way back in 2009. It wasn't so much about switching to ARM as an ISA, which is somehow what most people focused on. But switching to self designed and fabbed SoC for cost efficiency. And that was before the internet knew anything about TSMC or Semiconductor Foundry.
[1] I still remember I gave another year to Intel to see if they improve their strategy but BK was simply a complete failure. Decided to bet against Intel and bought AMD at below $3 a share.
Though it look like those working @ PA Semi helped design both the Alpha and StrongARM processors.
Apple always wanted to make their own chips (see Alan Kay’s famous quote), they just lacked the volume.
But, it still felt surprising, if only for their intense marketing painting Intel processors as slow and their PowerMacs as "supercomputers," which still hits for its brazen absurdity. Then to turn the narrative on its head in one keynote!
That's marketing for you.
https://thechipletter.substack.com/p/apple-transitions-68k-t...
I actually commented on your post a few days ago, with the same sentiment - this is a repost from the Medium article I showed you, but I'm trying to build up my audience on Substack :)
Can I be very cheeky and ask if you'd be interested in recommending each other's publications? It seems like we have similar niche audience (albeit my work is a little more iOS-centric)
Apologies, for some reason my memory failed me and I didn't make the connection between your Medium post and the Substack update!
Of course on the recommendations, delighted to. Added just now. Best of luck.
Yes, they could choose to go the Apple way, but ... they would likely lose the customers mentioned above, and would likely still not be as good as Apple in Apple's game.
Apple made perfectly good choices but history did not come out in their favor. So they had to keep switching and 3rd parties had to follow (if they wanted to stay on the Mac).
Microsoft ended up on what became the dominant CPU that just happened to continue to rocket up in performance for decades. So although Windows is capable of running on other processors, it was never much of a market and most of the software never came along.
I have a hard time imagining what it would look like if MS put all of their weight into an arch transition, but I have a hunch it would come with the most ridiculous compatibility layer we've seen so far.
We don’t know if Motorola could have done what Intel did given similar resources. Maybe they could have.
I fear MS will continue to struggle with ARM. The problem with Microsoft is they just don’t control enough big applications. There are just way too many little programs out there that people depend on.
Each time Apple moved the performance difference was enough to cover the cost. Plus it was clear you HAD to switch if you wanted to stick with the Mac.
PC users aren’t going to lose Intel, it will still be a choice. No one can beat Intel’s best on desktop. Unless they can convince Nvidia and AMD to come along with native drivers games will suck. Anything else that doesn’t move will depend on a very high speed emulation layer.
Unless battery life can win the day, it’s gonna be a tough fight. And you know Intel is not going to go down easy.
I figure they usually weren't thinking about it that way yet. A lot of what came later was unprecedented.
> There are just vway too many little programs out there that people depend on.
Hence the outrageous compatibility layer. I wouldn't put it past Microsoft to make a try at driver compatibility.
(With full disk encryption, T2 chips and other various low-level hardware changes this might not actually be feasible under Apple Silicon chips, but at least through the Intel days you could have upgraded a system with hardware changes in the same way.)
Once code was in C (which was being standardized), they could work on porting across CPU's. The huge mistakes of Copland and Taligent were largely due to trying to also jump into some variant of C++ and object-oriented language at the OS level. Of course, that was at the same time Linus stuck with C for Linux and made much more relative headway.
This also gave Apple a lot more leverage in the application space. They spun applications out to Claris originally because the apps were such a pain point, but once C and MPW settled they could duck MS O$$ice leverage/fees with their own more integrated approach (and sell Works + round pink blobs to creatives et al). That made it feasible for Steve to ink the deal with Bill to keep Microsoft apps relevant on Mac's, when most of the other vendors were giving up on that 10% of PC share.
98 won't have moves, so I'd imagine you'd end up boxing most of your structures to avoid needing to copy construct then all over the place.
You still have to manually delete things but now there's extra indirection.
Templates might be nice, but having STLy containers is where the kernel would need them most, but then above boxing issues start to exist.
Essentially it means that an important chunk of the language and standard library are off limits in an important part of an OS, and lots of evil bugs are available to people new to the game who just blindly new stuff (or let the compiler do it behind their back)
Plenty of stuff.
Having never written assembly it was fun pulling down a book on 68K assembly and determining how to do each instruction in straight C.
I remember one odd instruction — some kind of mask-and-shift-bit instruction — that I was unable to find documentation for in the book (pre-StackOverflow obv). Fortunately someone had a Motorola 68020 manual and the instruction I was looking for was there. It had not occurred to me that there were newer instructions for the '020 and that the color picker might use one. (After the fact it occurred to me that in the Macintosh line an '020 or better was the minimum CPU for color support).
Did you have inline assembly at the time?
To me, there is a struggle of transition but the strategy is to contain, extend/swap then extinguish, as today is Halloween let us quote the halloween paper, to kill the os9 the whole code base. Everything from assembler has to go … as hp once said you do not eat your own baby other will ….
Among these major 2 plus 1 then just announced transition, as steve said in my quote video above it is the brain transplant of os. That is hard part. Not the hardware as they start with emulation and the cpu power of powerpc and intel move them along “easily” (and arm but we do not know because of low end target of Qualcomm). The whole discussion on cpu is sort of misguided. It is not the cpu ….
Really the hardest part is the os part. Os9 to osx when the base is actually objective c … hence nextstep (the real osx) can move from hardware to software, and run on intel. Apple just to maintain it secretly for years.
Yes osx always can run on intel. Just os9 and all this carbon thing etc thing that is the baggage that has to leave behind. That is a decade of work. But not to migrate os9.
For the arm as pointed out by others, the NVIDIA is an issue. Given N can be a Trillion dollar firm … I think Apple car may not be the best next move. Apple ai for the rest of us might be. How to make that transition ….
Not to any significant extent. The leaked System 7 code I've seen was mostly C and assembler, with a couple of isolated Pascal files in specific areas (mostly Apple Events and CommToolbox). I can't imagine they added much more Pascal after that.
Plenty of other OSes were quite successful using C++, BeOS (which only failed due to NeXT acquisition, could have been the other way around), Symbian, IBM mainframes eventually started adding C++ alongside PL/S and PL.8, on Windows many of those C APIs are actually C++ code exposed as extern "C" {}, and many other examples.
Regrettably, I did this intentionally because "Apple CPU Architecture" is more clickable than "Mac CPU Architecture".
Surely they must have RISC V deeply embedded in various locations invisible to the end user, both for cost and experience.
They could possibly even be used deeply in the bowels of the M and A devices doing some random housekeeping in the storage system or who knows what.
In a funny way the term “CPU” is returning to its mainframe roots with so many functional units harnessed into a system, yet at the same time having strayed so far from its original usage (with multicore, non-linear systems) as to have become meaningless.
No it isn't. It's a nice optimization to have, but it doesn't radically change performance. If unified memory was that drastic AMD's APUs from 2012 to 2015 wouldn't have been so forgettable which is where heterogenous compute with unified GPU/CPU memory was pioneered.
Also every phone SoC has unified memory, and yet only Apple's can compete with Intel/AMD x86 on performance. M1's performance ain't from unified memory (especially since mixed CPU/GPU compute on the same data is very rare)
https://images.anandtech.com/doci/7677/03%20-%20HSA%20Featur...
https://images.anandtech.com/doci/7677/17%20-%20hUMA%20Benef...
https://www.anandtech.com/show/7677/amd-kaveri-review-a8-760...
Without it this reads like a “top 100 movies of all time” that doesn’t have a movie title older than 2007 in it.
Next architecture transition will be happening in 2036?
Retrobytes has a very entertaining video about the whole story: https://www.youtube.com/watch?v=v7dNorB47Qw
> Intel 8088 : 8/16-bit microprocessor — 8-bit registers with a 16-bit data bus.
Uhh...8088 is 16-bit CPU. Its external bus is 8-bits wide to save on pins...It does not get better further in:
> 20-bit memory addressing range — supports 640kB of RAM.
It supports 1MB of addressable space, which the system integrator may allocate as they desire. 640kB is something that PCs did, but apple was in no way tied to.. > Intel 8088 : 8/16-bit microprocessor — 8-bit registers with a 16-bit data bus.
> Uhh...8088 is 16-bit CPUThe 8086 / 8088 have eight registers, four general ones (AX, BX, CX, DX) which are made up of two 8 bit registers (AL, AH, BL, BH, CL, CH, DL, DH), so it's both not completely incorrect about 8 bit registers (although I'd agree that it's misleading to say that) but definitely incorrect about the 16 bit data bus.
I was an Apple user in the PowerPC era, and I remember very well how bad it got. And I have been burned too many times by software deprecation and unnecessary change that make things worse. I am still salty about Aperture that I regularly recommended to friends/clients; iWork got destroyed from an UI standpoint and did not even improve on anything (still perform like shit for big files and documents formatting preservation are even less reliable than Word across versions); Apple Music is so bad that I would rather use Spotify (if I really have to use a Frankenstein web client application, I would rather use the performant one).
I am still an Apple user in a way, got Mac Mini, iPhone, Apple Watch, and previously had an iPad who got stolen but nether bothered to renew (the pricing is ridiculous, the low end has non laminated display that make it annoying to read on, which was my primary activity on it). But considering the strategy that's pretty much the last things I'll have from Apple. Apple only cares about itself, it is unhealthy to get in a long term relationship with them. Especially as innovation slowdown, stability and longevity are more important than ever.
But I guess we will keep hearing about how awesome Apple Silicon is. I'll wait for open market competitive version thank you very much (provided there is any advantage at all, which I sincerely doubt).
For instance, 20 bits of address space support 1 megabyte. The 640K limit in the IBM PC was due to the IBM PC's design. Also, Apple would've considered the 8086 over the 8088, considering the need for memory throughput to have a responsive, fully bitmapped display.
The addressing of the 68000 wasn't critical for the Mac like the article says; the Mac's designers took shortcuts that made 4 megs the limit for the first generation 68000 because it was easy and they had lots of space, although it really wasn't the limit because the Mac Portable can have up to 9 megabytes with the original 68000 with 24 bits of address.
The Pentium didn't compete with the m68040. The Pentium came out after the PowerPC 601. The 80486, which made it to 100 MHz from Intel (higher from other vendors), competed with the m68040.
I think some steps were missed between the power-hungry and heat-generating PowerPC and the MacBook Air. I don't remember any history showing the Air as something that Apple was trying to, but couldn't, make. The issue was that the G4 was good for its time, but there was never a proper G4 successor because the G5 was too power hungry and too hot. If there was some MacBook Air project that never got off the ground during the PowerPC years, I'd love to hear about it.
The comment about performance-per-watt of x86 versus PowerPC was only true of the G5, it's worth noting.
"Superscalar Architecture" is in the section of the article talking about, "What made Intel x86 CPUs so much better?", even though Motorola, Intel and PowerPC had been superscalar since the '90s. Intel definitely improved their superscalar implementations, but they certainly weren't unique ("to get superscalar architecture working effectively" is not how I'd put it).
The author wrote, "I had to know what actually caused Intel’s x86 architecture to be so far ahead of its competition.", but never mentions AMD anywhere in the article. If AMD hadn't seriously outperformed Intel and forced Intel to actually compete, and if AMD hadn't forced the creation of 64 bit x86, then Intel certainly would not have been an option for Intel. The Pentium 4 had the same heat and power issues as the PowerPC G5. Intel ended up cancelling the Pentium 5 and instead going ahead with a much modernized Pentium III core for their Core release which made up the initial release of Intel Macs because AMD were eating their lunch.
There are some other things, but they're mostly minor. It's a well written collection of information.
Intel based the Core on Pentium M, because Pentium 4 sucked. AMD happened to be competitive at that point of time, but that doesn't mean that without AMD, Intel would be blind to the fact that Pentium 4 didn't achieve Intel's own expectations - the NetBurst's ability to scale up frequency (they targeted 10 GHz) and keep wattage/heat in check simply did not work out.
I certainly don't pretend to be an expert in this, so the notes are very appreciated.
That still doesn't mean that Apple was trying to make the Air and couldn't because of the PowerPC. They could've easily made one with a low power G4.
What CPU has this instruction and where can I learn more about it?
See also http://simh.trailing-edge.com/docs/vax_poly.pdf# and some HN discussion from 2015: http://simh.trailing-edge.com/docs/vax_poly.pdf#
Likewise, modern CPUs have dedicated CRC instructions, ARM Thumb 2 famously has an instruction for case statements (jump tables, instructions TBB/TBH), and many more.
The VAX was way ahead of its time, but failed to deliver on performance due to not having a pipelined or out-of-order architecture as is industry standard today.
(And if you insist on using k it should be capitalized.)
c/o Wikipedia
(You won't believe how I pronounce OS X)