Microprogramming Definition/Meaning:
A method of accomplishing the control unit function by
describing the steps in that function as a sequence of operations that are much
more elementary than instructions. In this method of designing and building a
control unit, an additional memory, commonly called a microprogram store,
contains a sequence of microinstructions. A number of microinstructions will be
required to carry out an ordinary machine instruction, thus the microprogram
store should be faster - have a shorter cycle time - than the normal fast
memory.
Microinstructions are usually classified as either horizontal or
vertical. In a horizontal microinstruction most of the bit positions have a
one-to-one correspondence with specific control functions. Horizontal
microinstructions provide explicit control of functions at particular points
within the CPU. For example, a particular bit in the microinstruction would call
for a specific register to be cleared at a specific clock time. A vertical
microinstruction generally contains highly coded fields describing elementary
operations to be performed by certain elements of the control unit and
arithmetic and logic unit, and the sources and destinations of information
passing between these units. In such a microinstruction, a field, say of three
bits, might be decoded to indicate which of eight registers is to be one source
of an operation to be performed in an ALU. Other fields would define the
operation and any other necessary sources. Horizontal microinstructions will in
general contain more bits, or be wider, hence the word horizontal. Vertical
microinstructions, although containing fewer bits, require more decoding.
Some microprogrammed control units go through two levels of microprogramming.
The first level consists of addresses of horizontal microinstructions. The
second level is the used or useful subset of all horizontal microinstructions. This
provides for more efficient use of a horizontal microprogram memory at the
expense of two memory references per microinstruction execution. In this form of
microprogramming the first memory has been called the microprogram store and the
second memory has been called the nanoprogram store.
Almost all control units are now microprogrammed. This permits a more orderly
and flexible approach to control unit design and permits changes in a control
unit by changing the memory contents. Most microprogram stores are made with
ROM. These memories are generally faster and are potentially less prone to
errors. Other microprogram stores, usually called writeable control stores
(WCS), are made with RAM. These provide greater ease of change of control unit
function; in some cases users are permitted or encouraged to "build" specialized
instructions. Some microprogrammed control units have a mixture of ROM and RAM
microprogram stores. These permit special microprograms to be loaded for
maintenance and diagnostic purposes.
The only control units that are not now
microprogrammed are those in some of the supercomputers where it is found that
hardwired control can provide faster operation than several microinstruction
executions.
|