VDict mobile



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
which allows some functional unit to drive a value onto the
bus or the operation to be performed by the ALU. Several
microinstructions will usually be required to fetch, decode
and execute each machine code instruction
("macroinstruction"). The microcode may also be responsible
for polling for hardware interrupts between each
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).
Vertical microcode is closer to machine code because a bit
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-wired
one where the control signals are generated directly from the
bits of the machine code instruction. This is more common
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)