nxobject 3 days ago

Just to add a few more resources – ye olde digital design books are really fun to learn how (sequenced) microcoding was seen as one of the highest-level tools in the toolkit of digital design in general up to the early/mid 80s:

– "Computation Structures", an old MIT course book, which uses a pedagogical processor similar to a microcoded PDP-11 or a 68k, to illustrate microcoding as the highest level of digital design – the processor they implement used a two-level microcoded processor to implement two types of processor on the same microcode interpreter engine, complete with built-in monitor/debugger.

– "The Art of Digital Design", an older course text, which culminates in the implementation of a PDP-8 clone;

Finally, if it helps look up more literature, another name for microprogramming in the literature is "interpretive microcoding" – one that makes the distinction between ye olde microprogramming and modern "microoperations" pretty clear.

It also clarifies why two-level micro-coding might exist, especially in the microarchitecture of the original 68k: you write in high-level microcode an engine interpreting a target ISA; this high-level microcode interpreter is then interpreted by low-level microcode that directly activates control lines. Two levels of interpretation seems baroque, but somehow it was fast enough for 68k workstations.

  • snek_case 2 days ago

    > Two levels of interpretation seems baroque, but somehow it was fast enough for 68k workstations.

    Well today we have x86 that gets translate into micro ops, and I doubt those micro-ops directly activate control lines? Not to mention all the magic that happens with reordering, register renaming, speculative execution etc. The amount of complexity inside a modern x86 chip is insane, I don't think it makes two levels of microcode seem all that baroque in comparison.

  • kjs3 3 days ago

    Completely agree. It is regrettable how few of the old papers are accessible now, either hidden behind paywalls or moldering in some library basement unscanned.

TomMasz a day ago

I worked for a company that built equipment using the AMD 2901 4-bit slice chips. Follow-on products used the Motorola 6800 and then 68000, though.

AlbertCory 2 days ago

Historical data point: the Xerox D-series machines all implemented the Mesa opcodes, which could be implemented via different microcoding on different machines. That was thought to be an advantage at the time!

In fact, in evaluating the new microprocessors that were becoming available in the late 70's, "difficulty of implementing the Mesa virtual machine" was a big consideration. "Just reimplement the code generation part of the compiler" wasn't considered attractive.

Another supposed advantage of the Mesa virtual machine was: we can look at the code people are actually writing, and then reimplement the op codes to make the most common ones shorter and more efficient.

ngcc_hk 2 days ago

Can those level 1 to level cache level with parallel programming are also micro-programming?

Or is there any more example?

If not can those emulation (6502…) or hardware emulation (eZ80…)

Just wonder is this still new…