nxobject
a year 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
a year 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
a year 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.