5,085 views
A vertical microprogrammed control unit supports 256 instructions. The system is using 8 flag conditions and contains 48 control signals. Each instruction on average requires 1 micro operation. What is the approximate size of control memory in bytes?

Number of contol words = 256*1 = 256 (Each instruction has 1 micro operation).

Number of address lines = $\log{256}$ = 8

3 bits for flag and number of bts for control signals = $\log 48$ = 6.

No. of bits in each control word = 8+3+6 = 17.

Size of control memory = $\frac{256*17}{8}$ = 544 B.
by

Why are we dividing by 8 ?? Is it coz to convert result into byte?

Yes, there will be 256 µ operations or 256 µ Instructions(Each instruction has 1 microoperation)Since the question is saying about vertical µ programming, So we need not generate 48 control signals at the same time, So we will use a decoder  of 6 * 64 size which needs 6 bits for control signal field of a control word and since there are 8 flag conditions are used for condition checking, so we need MUX 8*1 using 3 select lines, we need 3 bits for storing this information in control word, Apart from this, since there are 256 micro Instructions present in control memory , so we need 8 bits for the next address field of a control word.

So the size of a control word = 6 + 3+ 8 = 17 bits

Size of control memory = Number of control words(Micro Instructions) * size of each control word

= 256 * 17 bits

= 544 Bytes

How the scenario will change if instead of vertical microprogrammed we had horizontal programmed control unit ? vishal76  akash.dinkar12

Why have we not taken $log$ for flag bits?