Log In
19 votes

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.
in CO and Architecture
edited by
As in question "horizontal micro-programmed control unit" is told that's why we can't use decoder to decrease required number of status bits (like we do in vertical miro-programmed control unit). So, we need 4 status bits in "control word" register. Let me know if i am wrong ?

3 Answers

16 votes
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$

edited by
your explanation is correct but edit your last statement..

2+16+7=25 bits
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.

answer will be 27 ,

  • Conditional branching facility by cheeking 4 status bits.

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...

yes ....
@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 ?

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


Dharmendra Lodhi

See this:

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


@akash.dinkar12why  7 register are not considered?

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

@Divy Kala

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

#my question

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

where 4 bits needed???


@akash.dinkar12 the status bits(condition checking) will be given as input to the MUX.But This status bits are used to tell that the next address instruction should be referred is if branch instruction or the extneral address(i.e the next address we should go to some other than being concurrent)..

even though the condtion checking bits of these acts as select lines to the MUX, MUX selects a particular line from the control memory using these select lines

Therefore the answer should be 4bits+16+7=27bits..

what about the 7 registers? Registers should also be controlled right? Should we count it as part of control signal bit? If we include 7 registers, the answer would be 32 bits.
Somebody plzz explain..why are we not considering the 7 registers ?

what is their use in this question ??
9 votes


4 votes
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
No, $25$ bits will be the correct answer, as we need only 2x1 MUX for 4 status bits.

: watch this 25 is correct


Correct me if I am wrong.

In the question It is not given that it is a horizontal microprogrammed unit. Then how can we apply that logic to this question.

Related questions

3 votes
1 answer
A microprogrammed control unit Is faster than a hard-wired control unit. Facilitates easy implementation of new instruction. Is useful when very small programs are to be run. Usually refers to the control unit of a microprocessor.
asked Nov 8, 2016 in CO and Architecture makhdoom ghaya 1.2k views
21 votes
1 answer
Microprogrammed control unit: is faster than a hardwired control unit facilitates easy implementation of new instructions is useful when very small programs are to be run usually refers to control unit of a microprocessor
asked Aug 27, 2014 in CO and Architecture ABG 5.3k views
5 votes
4 answers
What is cache memory? What is rationale of using cache memory?
asked Nov 12, 2016 in CO and Architecture makhdoom ghaya 702 views
1 vote
2 answers
State whether the following statements are TRUE or FALSE: Data transfer between a microprocessor and an $I/O$ device is usually faster in memory-mapped-$I/O$ scheme than in $I/O$-mapped -$I/O$ scheme.
asked Nov 9, 2016 in CO and Architecture makhdoom ghaya 545 views