You are on page 1of 2

NANO PROGRAMMING

If you examine microcode in a control store, you will find that somemicroinstruction words appear over and over again; for example, anoperation such as read a word from memory and put it in the MBR may beused by many microinstructions.It has been observed that out of the billions of possible microinstructionwords only tiny fractions are found in any control store. Consequently, amodification of the conventional control store has been suggested thenanoprogram 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 inthe nanoprogram ROM. Consequently, nanoprogramming uses a two-levelstore 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 aninstruction set.Microinstructions are very long; for example 200 bits. This requires a largeamount 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 tothe nanoinstruction memory.

Nanoinstruction memory: The nanoinstruction memory contains the actual microinstructionsand is very wide. The nanoinstruction memory contains the 120 unique 100-bit-widemicroinstructions. 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 thatthere are only 120 unique microinstructions. (a) How many bits of controlstore in all its forms are required by this arrangement? (b) How many bitswould be required if nanoprogramming werent used? (a) There are 200 macroinstructions and each uses 4 microinstructions. Thisrequires 200 x 4 = 800 microinstructions.The mapping ROM has to select one of 800 microinstructions. This requiresa 10-bit address (2 10 = 1024). The mapping ROM takes an 8-bit op-code andselects a starting micro program address. This requires a 256 word x 10-bitROM (i.e., 2560 bits).There are 120 unique microinstructions each of which is 150 bits wide in thenanoprogram ROM; this is 120 x 150 = 18,000 bits.Because there are 120 microinstructions, it takes a 7-bit address to select oneof 120 microinstructions (2 7 = 128). The control store contains 800microinstructions, 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 requires800 words x 150 bits = 120,000. The total number of bits is control store plus mapping ROM = 120,000 + 2,560 = 122,560 bits.

You might also like