Changing,deleting or adding something to the ALU mic-1 architecture

233 views Asked by At

Hey im struggling with a Task. Anyone here to help me to solve this question?

Consider the appearance of the Mic-1 and discuss the following changes. Go For example, ask whether the micro-architecture is still fundamentally working and which one Changes occur on the lines and what effects on the micro-programs or Would arise to MIR.

(a) We want to add another flag, for example the carry flag.

(b) We would like to add another (read and write) register.

(c) We remove the TOS register.

(d) We are removing the MDR register

1

There are 1 answers

0
Erik Eidt On

a) If you add another carry flag you have another carry bit.

There is no carry bit/flag in the basic design, so this is not adding another carry bit — just more generally adding another flag/bit.

But, yes, if you add such a flag, the existing microcode for the existing micro machine will still fundamentally function.

Discussion

But this newly added flag would be useless without at least one other operation to use or test the new flag perhaps similar to the way the existing flags (N,Z) can be tested (e.g. via conditional branch in micromachine).

This architecture uses horizontal microcode, so to add an operation to test the carry flag, one would expand the micro instruction set from 36 bits to 37 bits.  JAMN and JAMZ are the existing bits to test N & Z, and you'd add a new bit for JAMC to test the carry flag in the same manner.

Once the micromachine instruction is widened to 37 bits, the existing microcode will have to be modified to insert 0's for existing instructions, in order for them to continue working as they were, thought that would be simple from certain point of view (insert zeros in that column for all existing microinstructions in the microprograms).

Further, you'd want to add an IJVM instruction that used the new JAMC micromachine feature, to offer the regular machine code / assembly program access to the new carry flag functionality.  Such a new instruction could either simply test the carry flag and branch, or, it could provide an ADD with Carry, for multi-word arithmetic (or offer both), and some of this might also indicate further changes to the micromachine (such as a new ALU operation for ADD with Carry).


b) That would not be a problem because the result of the ALU can be written & read in several registers at the same time.

Yes, merely adding another register would not break the machine.

Fundamentally the micromachine and microprogram would continue to work, but of course, to take advantage of the new register, additions to the B bus encoding field in the microarchitecture would be necessary (to allow the new register to be read: to be placed on the B bus), but existing program would continue to work.

Also, additional bits in the horizontal microcode would also be necessary (analogous to the TOS bit in the microarchitecture that enables capturing the C bus value in TOS) — as per the above discussion, widening the microinstruction size would alter the existing microprogram, though with an easy fix (widen existing microprogram with 0's for those new bits).


c) If you remove TOS you can no longer read or write the Alu operations from the top of stack.

Yes, the offering of the micro architecture would be broken in several places and the existing IJVM microprogram would surely break.


d) The MDR is an important register and acts together with the MAR as a fast buffer.

Yes, without the MDR, data cannot be written read or written between main memory and the microprogram.