OpenBSD on Motorola 88000 Processors

2 days ago (miod.online.fr)

I confess I have a soft spot for these machines - the road not taken is always tempting to explore. Sadly, it didn't do well on the market, even less in Europe, so there are very few working machines around me and even fewer floating around on eBay. :-(

An excellent source for this architecture is Mitch Alsup and his Usenet posts going back to the late 1980s (he still posted regularly in the 2020s.)

I still have some of the 88000 reference manuals, and it was really my first introduction to RISC architecture, and I thought it was great. But I never figured out why companies like Apple never chose it for their CPU?

  • I believe it was the first RISC that Apple prototyped building a Mac around, including a 68K emulator. IIRC from Gary Davidian’s CHM oral history, it was corporate dealmaking that led to AIM and PPC more than any technical negatives for the 88K.

    https://computerhistory.org/blog/transplanting-the-macs-cent...

    • Yeah, this is probably closest to the right answer. Apple DID choose the 88K, and then changed. Reportedly they put some 88K systems in a Mac chassis.

      I do wonder what the exact reasons were. Maybe the PPC (complete systems) could be made cheaper? Maybe Apple was worried about relying on a single vendor? I am kind of skeptical of the “corporate dealmaking” angle, because it seems like there are valid technical reasons to NOT choose the 88K. Namely, that it requires companion chips, and the whole system (board + chips) ends up being complicated and expensive.

      1 reply →

  • Timing. The 68k still had legs, i.e. the 68040 provided great drop in performance and had an enormous ecosystem and economies of scale. By the time the RISC wars were starting to get fever pitched, the POWER architecture and AIM alliance seemed like a blessing to combine ecosystems and economies of scale for the A and M constituents. And it was.. successful product lines for 2-3 decades from all sorts of embedded systems to G5 workstations to spacecraft.

  • The 88000 was implemented across three large ICs. This took an enormous amount of board space and would be unfeasible on the smaller Macs.

  • Complicated, expensive CPU marketed to very high end workstation use? Nobody thought it was worth picking up even if it was faster than the alternatives.

    • Nobody wanted to bet payroll on a weird new ISA with no volume story. The "faster" part only matters if your compiler and OS aren't tripping over oddball silicon limits every patch release and that was a huge if back then, because once the toolchain, ABI, and kernel are all fighting the chip the benchmark win dies fast.

  • Both Apple and NeXT had machines prototyped around it, but it was initially very expensive I believe, and I think Apple was easily convinced to go with PowerPC ... and rather than evolve it and push it further Motorola dropped it in favour of going in on PowerPC.

    The sad thing is Intel showed there was still life left in CISC, and Motorola themselves ended up circling back on 68k in the form of ColdFire which proved you could do for 68k what Intel did w/ the Pentium. But by then all their 68k customers had moved on from the 68k ISA.

    • 68k was much harder to optimize than x86, being way more CISC-y

      68k like VAX was seen as dead avenue not only compared to RISC

The 88k multi-chip cache/MMU architecture is fascinating, especially how it could be designed with a single cache chip, or a split I/D cache across two or more different chips.

m88k is an ISA primarily designed by Mitch Alsup.

Mitch Alsup has extensive experience in ISA design, has participated (tangentially) in informing RISC-V design process.

Recently, he's designed my66000, an interesting, fresh take at a new ISA that I recommend exploring.

  • Alsup liked to write a lot about his my66000 on Usenet, but does not share documents about it with everyone. (Yes, I've emailed him and been ignored. I have had to piece together what I know about it from multiple posts.) Apparently it runs in FPGA and there are assemblers and compiler back-ends for it.

    Like the 88000, the register file is shared between integer and floating point units. One interesting detail is that it supports CRAY-style vector operations using the same architectural registers, and downgrades to scalar operation automatically on interrupts. This means that the register state to load/store on context switches is small.