• nxobject a day 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.

    • kjs3 a day 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.

    • dang a day ago

      Related. Others?

      A brief history of microprogramming (2005) - https://news.ycombinator.com/item?id=32149149 - July 2022 (1 comment)

      A Brief History of Microprogramming - https://news.ycombinator.com/item?id=11412846 - April 2016 (8 comments)

      • AlbertCory 19 minutes 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 an hour 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…