Microcode, which is a no-go for modern designs

Chuck Guzis cclist at sydex.com
Wed Jan 2 13:31:50 CST 2019


On 1/2/19 10:44 AM, Guy Sotomayor Jr wrote:

> Also, recall that there are different forms of micro-code: horizontal
> and vertical.  I think that IBM (in the S/360, S/370, S/390, z/Series)
> uses the term micro-code for horizontal micro-code and millicode
> for vertical microcode.

On the CDC STAR-100, "microcode" as such was a relatively recent concept
and the designers went overboard, mostly because of an ill-defined
customer base (hence, BCD and other commerical-class instructions, like
translate, edit and mark, etc.).  The STAR is basically a RISC-type
vector architecture with a pile of microcoded instructions bolted on.
While this results in a great many instructions, many were used little.
It's hard to grasp that the same guy who designed the CDC 6400 (a RISC
architecture) also designed the STAR-100.

It's worth noting that all 256 8-bit opcodes are used; many are modified
by another 8-bit modifier quantity whose meaning varies greatly.  In
effect, you have something closer to 1000 distinct instructions, if not
more.

For a compiler writer, or even an assembly coder, this was more of a
problem--which combination of instructions could be used to the greatest
effect?  And why do I have to have the hardware manual on my desk to
look up instructions?

Subsequent embodiments of the architecture dropped a great many
microcoded instructions, with, as far as I can tell, no deleterious effect.

The manual for the STAR-100 hardware description is on bitsavers under
cdc/cyber/cyber_200 if you're curious.

Some earlier computers implemented additional instructions by
hard-coding subroutines whose entry address was determined by the
op-code of the instruction.  Macro-coding, if you will.

--Chuck



More information about the cctech mailing list