Nanoprogrammed control unit: It is an extension of microprogrammed control unit. An alternate strategy to generate control signals.
s. Having the concept of a secondary control memory. A microinstruction is in primary control-store memory, it then has the control signals generated for each microinstruction using a secondary control store memory. The output word from the secondary memory is called nanoinstruction.
microinstruction. If this is p bits wide, the total size of the microprogram memory in bits is n.m.p 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)
i c r o p r o g r a m
c o
u n t e r
i c r o p r o g r a m
c o u n
t e r
M
M i c r o p r o g r a m m e m o r y
i c r o p r o g
r a
e m
o r
M
M i c r o in s t r u c t io n r e g i s t e r
i c r o in s t r u c t i o
r e g is t e
The microprogram counter contains The address of the next microinstruction to be executed. The micro-programmed memory contains all the microinstructions. Each machine level instruction is interpreted by one or more microinstructions. 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. The microinstruction register holds the bits of the current
a n o in s t r u c t i o
e m
a n o in s t r u c t i o
r e g is t e
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. The microprogram memory (control ROM) is now much narrower because it contains pointers to the actual microinstructions. The microinstruction register contains a short pointer that points to the nanoinstruction memory. The nanoinstruction memory contains the actual microinstructions and is very wide. Suppose that a microinstruction is 200 bits wide and that the microprogram memory contains only 120 unique [Link], 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 < 120 The nanoinstruction memory contains the 120 unique 100-bitwide microinstructions 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. 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