630 views

Find out the width of the control memory of a horizontal microprogrammed control unit, given the following specifications:

• $16$ control lines for the processor consisting of ALU and $7$ registers.
• Conditional branching facility by checking $4$ status bits.
• Provision to hold $128$ words in the control memory.

edited | 630 views

Width of the control memory $=$ size of control word

$\text{Control word} = [\text{Condition bits} + \text{control signal bits} + \text{next address}]$

Condition bits $= 4 \implies \log_2 4-bits$

$128$ words $\implies 7-bits$  for address.

In case of horizontal micro-programming, there is $1- bit$ for each control signal. It is given there are $16$ control signals.

$\implies$ Length of control word $= 2+16+7 = 25- bits$
by Active (1.7k points)
edited
+1

2+16+7=25 bits
+1
It is given that "conditional branch facility by checking 4 status bits" So I don't think we need to take log here again.It should be simply 4 bits. If I am wrong Please correct me with an explanation.
+1

• Conditional branching facility by cheeking 4 status bits.
0

what I think, is since they have a specified horizontal microprogrammed control unit, so for every control lines, there will be 1 bit for a control signal, so total 16 bits are required in control bits field...

Next address will be of 7 bit because control memory can hold 128 words and in order to address 1 word we require 7 bits...

If they would be given us flags then I think we need to apply log in order the find the bits for condition checking but since they have given 4 status bits, so I think 4 bits will be required...

So the width of control memory: 4 + 16 +7 =  27 bits...

0
yes ....
0
@akash , I agree that in case of flags ,we have to take log but why we don't have to take log here. could you please explain ?
+2

I m taking all my words back!!

we know that There is a field in control word known as condition checking, this field is generally used to take certain decisions like when we have to take conditional jump etc like there are 3 flags(carry, zero, overflow) and we have to connect these three flags as input to 4*1 MUX(like 00=carry flag, 01=zero flag, 10=overflow flag, 11= always 1) and based on the decision of selection lines, we will take certain decisions,so number of selection lines log24  = 2 bits will be used for condition checking, These selection lines will be coming out from the field of condition checking filed of control word.

Similarly here also we have 4 status bits, with the help of log24  = 2 bits we can decide what operation we need to do...

so width of control memory = 2 + 16 + 7 = 25 bits

0

i think earlier answer is correct 27

because we does not uses any external circuit in Horizontal microprogramming

+1

Dharmendra Lodhi

There are 8 status bits here also, we are giving as input to mux of size of 8*1 which will consist of 3 selection lines that will be coming out from condition checking field of control word of size 3 bits

0

@akash.dinkar12why  7 register are not considered?

0
I think 27 is right, we still require 4 bits because what if the carry and overflow bits both are active?
0

@Divy Kala

status bit is 4.bit ...so 4:1 mux is required ...so here only 2 bit is needed...i think 25 bit is right answer.

#my question

suppose, carry and overflow bit both is active......so here each of them asign different bit(00,01,10,11)

where 4 bits needed???

....

by Boss (13.1k points)
16 bits for 16 control lines.(As Horizontal)

For next address field 7 bits (128 control words.. 2^7=128)

4 status bits.

Width of control memory = control word length = 4+16+7 = 27 bits
by (299 points)
0
No, $25$ bits will be the correct answer, as we need only 2x1 MUX for 4 status bits.
0

:https://gateoverflow.in/1061/gate2004-67 watch this 25 is correct

0

Correct me if I am wrong.

In the question https://gateoverflow.in/1061/gate2004-67 It is not given that it is a horizontal microprogrammed unit. Then how can we apply that logic to this question.

1
2