Symbolic Microprogram Questions?

1) Why only 10 bits transferred.AR←----DR(0-10)......DRTAR microoperation. Reference figures-: And, how many bits were there in DR? Were there only 10 bits or more than that?

2) In INDRCT routine, after putting the contents of memory in DR register, why is the same content being put in AR register? Reference figure-:

3) If DR(0-10) is an address, why is same thing being put in 2 registers? DR and AR?

4)What has defined that ADD is the next routine to be executed? I know that PC has the address of next routine, but it is not defined in the figure(number 2 figure), so how is that performed? Is that not mentioned, due to this being a partial microprogram?

5) Should not the starting address of BRANCH routine be ORG 3? Because the starting address of ADD routine is 0, and ADD ends at 0,1 and 2 memory location. So, should not, BRANCH start at memory location 3? Why is it starting at memory location 4? (somewhere i read that this control memory has 128 words=64 words for 16 instruction and another 64 words for another 16 instructions. ...since 16 routines=64 words, each routine occupies 4 words…..but it is still not clear in the microprogram above….may be because i am confusing memory location with word?)

Yahoo didn't let me post all the questions, so I am sharing the link to questions-:

1 Answer

  • 3 months ago
    Favorite Answer

    I don't have the pleasure of understanding the notation you're using here, but one thing seems to stick out.  If DR(0-10) means "bits 0 through 10 of register DR" then that's eleven bits, not ten.

    For question (5), I'd bet a nickel that the low 2 bits of a starting address in that control store are always 0; probably generated by hardware.  This makes for fewer bits to generate in instruction decode logic, or to store in a microinstruction address field.

    If that's the case, then you *can't* start a microcode sequence at "org 3". 

    Notice that all the org addresses are multiples of 4.  That's the basis of my guess.  The real answer should come from a detailed description of the bit fields in a microinstruction.

    PS: This kind of question might get more answers in Engineering under Science & Mathematics, since microcode (even though it's technically coding) is really a "digital systems engineering"  topic.

Still have questions? Get your answers by asking now.