Title: Nanoprogramming
1Nanoprogramming
- Extending microprogramming
2Microprogramming
The microprogram counter contains The address of
the next microinstruction to be executed.
3Microprogramming
The microprogram memory contains all the
microinstructions. Each machine level instruction
is interpreted by one or more microinstructions.
4Microprogramming
If there are n machine-level instructions and
each instruction is interpreted by m
microinstructions, the size of the microprogram
ROM is n.m lines.
5Microprogramming
The microinstruction register holds the bits of
the current microinstruction. If this is p bits
wide, the total size of the microprogram memory
in bits is n.m.p
6Microprogramming
This structure requires a lot of fast
microinstruction storage. For example, if there
are 512 machine-level instructions, and each
instruction is interpreted by four 200-bit
microinstructions, the size of the ROM is 512 x
4 x 200 409,600 bits (51,200 bytes)
7Nanoprogramming
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 Microprogram ROM
contains only a tiny fraction of possible
microinstructions.
8Nanoprogramming
The microprogram memory (control ROM) is now
much narrower because it contains pointers to the
actual microinstructions.
9Nanoprogramming
The microinstruction register contains a short
pointer that points to the nanoinstruction memory.
10Nanoprogramming
The nanoinstruction memory contains the actual
microinstructions and is very wide.
11Nanoprogramming
Suppose that a microinstruction is 200 bits wide
and that the microprogram memory contains only
120 unique microinstructions. Thus, out of 2200
possible microinstructions, only 120 are actually
used. Each microinstruction in the control ROM
cam be replaced by a pointer that requires only 7
bits. 27 128 lt 120
12Nanoprogramming
The nanoinstruction memory contains the 120
unique 100-bit-wide microinstructions.
13Nanoprogramming
Lets use the previous example, with 512
machine-level instructions, where each
instruction is interpreted by four 200-bit
microinstructions. The size of the control ROM
without nanoprogramming is 512 x 4 x 200
409,600 bits (51,200 bytes) With nanoprogramming
(and assuming 120 unique microinstructions) the
control ROM now requires 512 x 4 x 7 2048 x 7
14,336 bits because the 200-bit
microinstruction has been replaced by a 7-bit
pointer. The nanoinstruction memory contains 120
200-bit microinstructions or 120 x 200 24,000
bits. The total size of the read-only memory is
the sum of the microinstruction memory and
nanoinstruction memories or 14,336 24,000
38,336 bits (4,792 bytes). Nanoprogramming has
reduced the storage requirement by a factor of 10