On 07/29/2014 08:00 AM, Paul Koning wrote:
Instruction length has little to do with it. CDC Cybers have 6 bit
opcodes and hardwired execution; VAXen have 8 bit
opcodes and
microcode; MIPS has fairly long opcodes and is hardwared.
The choice comes to what?s the best answer given the product
requirements. If use of microcode makes the implementation less
expensive while still achieving the performance requirement, that
would be the optimal answer. If not, then hardwired logic is the
solution. That tradeoff, of course, varies over time as technology,
speeds, and costs change.
And it?s not a binary decision, either. When microcode is used,
there tends to be some machine-specific hardwired logic. For
example, in the PDP-11 microcode you can see initial opcode dispatch
done in straight logic, then once the dispatch has taken place the
microcode takes over to handle that particular case.
And then there's microprogramming gone mad (AKA: the "kitchen sink")
approach. Look at the instruction set of the STAR-100; nominally 8 bit
opcodes, but all but the simplest with 8 "modifier" bits, leading to what
amounts to thousands of instructions. Many questionably useful; some
utterly useless.
One of the first revisions of the STAR-100/Cyber 200 hardware platform was
to jettison many of the instructions. By the time it got to the ETA-10,
the instruction set was a shadow of its former self.
Which brings up an interesting question--how many other machines shrunk
their instruction set during the course of evolution, rather than the other
way around?
The Symbolics Lisp Machines fit into this mold, I believe. The 36xx series
were soft-microcoded (loaded at boot time) and that afforded a lot of
flexibility in the instruction set; when the Ivory processors were
developed the microcode was on-die (and hardwired) and the instruction set
was reduced to fit, at least if I recall correctly. I believe (but could
be mistaken) that the Open Genera VLM (Virtual Lisp Machine) reduced the
instruction set even further.
- Josh