I ran into a question:
in digital system with micro-programmed control circuit, total of 32 distinct pattern operation signal
is 450
. if the micro-programmed memory
contains 1K
micro instruction, by using Nano memory
, how many bits is reduced?
1) 22 Kbits
2) 23 Kbits
3) 450 Kbits
4) 450*32 Kbits
I read in my notes, that (1)
is true, but i couldn't understand how we get this?
Micro instructions are stored in the micro memory (control memory). There is a chance that a group of micro instructions may occur several times in a micro program. As a result the more memory space isneeded.By making use of the nano memory we can have significant saving in the memory when a group of micro operations occur several times in a micro program. Please see for nano technique ref:
Edit:
Micro-memory The micro memory only concerns how we organize whats in the control memory. However when we have big instruction sets, we can do better than simply storing all the instructions. We can subdivide the control memory into "control memory" and "nano memory" (since nano is smaller than micro right 😉 ) This is good as we don't waste a lot of valuable space (chip area) on microcode.
The concept of nano memory is derived from a combination of vertical and horizontal instructions, but also provides trade-offs between them.
The motorola M68k microcomputer is one the earlier and popular µComputers with this nano memory control design. Here it was shown that a significant saving of memory could be achieved when a group of micro instructions occur often in a microprogram.
Here it was shown that by structuring the memory properly, that a few bits could be used to address the instructions, without a significant cost to speed. The reduction was so that only the upper log_2(n) bits are required to specify the nano-address, when compared to the micro-address.
Best Answer
Ultimately I think the question is flawed. And I do NOT get close to any answer. Hard to get 22k saved from 32K, when nanocode takes up 14.4K.
From 1.
Memory was expensive with Complex Instruction Set Computers, so microcode executed multiple instructions [Inc Memory] (Read Memory, Inc Register, Store Memory). To decrease microcode, Motorola implemented nanocode, which microcode called.
544 words × 17-bit microcode words + 336 word × 68-bit nanocode words = 32,096 bits of ROM.
544 words × 68-bit microcode words = 36,992 bits of ROM.
36,992 - 32,096 = 4,896 bits saved.
$$log_2 336 = 6.63$$
To represent the 336 nanocode words, 7 bits are required. Actually have 17. This makes sense, since similar microcode or nanocode can use don't care states to select different operations.
From 2 slide 11 notes.
$$log_2 100 = 6.64$$
7 bits minimum are needed in microcode to access nanocode.
18,436 bits vs. 83,968 bits. Significant savings.
Same methodology. Microcode indexes into nanocode. Microcode is saved, but nanocode ROM must be added to determine true savings. True savings = 9,152 bits.
9.1k is significantly less than 22k. But 450 words × 32-bit = 14,400. Hard to get 22k saved from 32K, when nanocode takes up 14.4K. No answer is correct. Hence my assertion that the question is flawed in some way.
As per Maryam Ghizhi comments below:
1024 × 32-bit - 1024 × 9-bit = 23,552 bits or 23kbits (saved).
Savings are microcode. So 32 bits - 9 bits = 23 bits × 1024 words = 23kbits.
This is one of the answers on the list. It is saved from microcode (ignoring nanocode). Final Answer: 2.
Within the parameters of the question, since 9 bits are required to address 450 nanocode locations, there is no way to get to 22Kbits of microcode saved.
Edit...
From 3, where it appears you have asked this equation before (along with a bounty):
The from micro-programmed memory is a very important component of question, which makes the correct answer "2".
I'd focus on why the correct answer is not 2. Not why your notes says the correct answer is 1. Like I said, flawed question.