Sie sind auf Seite 1von 3

Nanoprogramming

If you examine microcode in a control store, you will find that some
microinstruction words appear over and over again; for example, an
operation such as ‘read a word from memory and put it in the MBR’ may be
used by many microinstructions.

It has been observed that out of the billions of possible microinstruction


words only tiny fractions are found in any control store. Consequently, a
modification of the conventional control store has been suggested – the
nanoprogram store.

The nanoprogram store holds the actual microinstructions that are executed.
These nanoinstructions are very wide.

The control store itself contains a table of pointers to the microinstruction in


the nanoprogram ROM. Consequently, nanoprogramming uses a two-level
store to save bits at the cost of speed. The figure illustrates the relationship
between the mapping ROM, control store, and nanoprogram ROM.
Nanoprogramming reduces the number of control bits require to interpret an
instruction set.

Microinstructions are very long; for example 200 bits. This requires a large
amount of storage.

However, of all the possible different microinstructions, a typical Micro


program ROM contains only a tiny fraction of possible microinstructions.

Microprogram memory:
The microprogram memory (control ROM) is now much narrower
because it contains pointers to the actual microinstructions

Microinstructions register:
The microinstruction register contains a short pointer that points to
the nanoinstruction memory.
Nanoinstruction memory:
The nanoinstruction memory contains the actual microinstructions
and is very wide.

Nanoinstruction memory:
The nanoinstruction memory contains the 120 unique 100-bit-wide
microinstructions.

Example:
A computer has an 8-bit op-code and defines 200 unique machine-
level (macroinstructions). Each macroinstruction is implemented in terms of
4 microinstructions. A microinstruction is 150 bits wide. It is observed that
there are only 120 unique microinstructions. (a) How many bits of control
store in all its forms are required by this arrangement? (b) How many bits
would be required if nanoprogramming weren’t used?

(a) There are 200 macroinstructions and each uses 4 microinstructions. This
requires 200 x 4 = 800 microinstructions.
The mapping ROM has to select one of 800 microinstructions. This requires
a 10-bit address (210 = 1024). The mapping ROM takes an 8-bit op-code and
selects a starting micro program address. This requires a 256 word x 10-bit
ROM (i.e., 2560 bits).
There are 120 unique microinstructions each of which is 150 bits wide in the
nanoprogram ROM; this is 120 x 150 = 18,000 bits.
Because there are 120 microinstructions, it takes a 7-bit address to select one
of 120 microinstructions (27 = 128). The control store contains 800
microinstructions, each requiring a 7-bit pointer which takes 800 x 7 = 5,600
bits.

The total storage is 2,560 (mapping ROM) + 5,600 (control store) + 18,000
(nanoprogram) = 26,160 bits.

(b) If the system does not use nanoprogramming, the control store requires
800 words x 150 bits = 120,000. The total number of bits is control store
plus mapping ROM = 120,000 + 2,560 = 122,560 bits.

Das könnte Ihnen auch gefallen