Jump to user comments
programming A technique for implementing the
instructionset of a processor as a sequence of microcode instructions
("microinstructions"), each of which typically consists of a
(large) number of bit fields and the address of the next
microinstruction to execute. Each bit field controls some
specific part of the processor's operation, such as a gate
bus or the operation to be performed by the
ALU. Several
microinstructions will usually be required to fetch, decode
macroinstruction. Writing microcode is known as
"microprogramming".
Microcode may be classified as "horizontally encoded" or
"vertically encoded". Horizontal microcode is as described
above where there is a fairly direct correspondence between
the bit fields in a microinstruction and the control signals
sent to the various parts of the CPU. Not all combinations of
bits will be valid (e.g. two units driving the bus at once).
field value may pass through some intermediate combinatory
logic which generates the actual control signals. This allows
a few bits of a microinstruction to determine several control
signals and ensure that only valid combinations of those
signals are generated (e.g. a field may be decoded to determine
which unit drives the bus). The disadvantage with vertical
encoding is that the encoding is usually fixed and takes extra
time compared with horizontal encoding which allows any
combination of signals to be generated and takes no time to
decode.
The alternative to a microcoded processor is a
hard-wiredone where the control signals are generated directly from the
in modern
RISC architectures because it is faster.
Microcode is usually stored in
ROM chips though some
processors (e.g. the
Orion) use fast RAM, making them
dynamically microprogrammable.
(1996-11-26)