1
\$\begingroup\$

Are two clock cycles, one at microarchitecture level (data path clock cycle) and another at control store memory address register, operating sequentially or asynchronously of each other? More precisely, is MIR register loaded from MPC during the control signals are being set up at data path side, or does it happen before?


  • MPC = MicroProgram Counter
  • MIR = MicroInstruction Counter

– MPC: Address of next microinstruction to be fetched from memory.
– MIR: Current microinstruction whose bits drive control signals of data path

\$\endgroup\$

1 Answer 1

2
\$\begingroup\$

See diagrams below to make sense of data flow etc.

  • MPC = MicroProgram Counter
    • MIR = MicroInstruction Counter

– MPC: Address of next microinstruction to be fetched from memory.
– MIR: Current microinstruction whose bits drive control signals of data path


The question seems to be fundamentally wrong in a statement it makes BUT this may be a language issue - see below.

MIR is NOT loaded FROM MPC (as you say).
MPC is a pointer to the control store and MIR is loaded from the location that MPC points to.

I cannot be 100% sure that I am making sense of your question but if I am then what you suggest is incorrect. You ask -

  • " is MIR register loaded from MPC during the control signals are being set up at data path side, or does it happen before?"

If I follow what you are asking then the opposite of what you ask is what happens.

  • MPC address is latched in by rising system clock

  • MPC output stabilises during clock high.

  • MPC now addrses control store so that control store output stabilises by end of system clock less any setup time that MIR may require.

  • Falling system clock latches control store data into MIR.

  • Cycle procedes - see below.

SO to the question

  • " is MIR register loaded from MPC during the control signals are being set up at data path side, or does it happen before?"

I would answer , No! - MIR register is loaded from the control store (not from MPC) on the falling clock edge AFTER the store output has gone stable which occurs AFTER MPC goes stable which occurs somewhere during clock high.

See below.


BUT following through the following timing should answer it.

Say MIR is loaded by time t1.

(1) Once MIR is loaded the control signals from it propagate asynchronously out onto the data path.

ALU function and data inputs are arranged to be stably set prior to its output being required to be used. This involves two inputs to ALU to be selected by signals from MIR and ALU function also.

(2) Say ALU is stably addressed and data fed and ALU output ready for shifter by t1 + t2.

(3) ALU and shifter then do their thing with output by t1 + t2 + t3.

(4) ALU output is now stored stably back into registers by t1 + t2 + t3 + t4.

This provides next microinstruction address for MPC which outputs control store code for MIR which provides new set of microinstructin bits - cycle repeats.

enter image description here

The above diagram is from page 12 (I think frome here


To the above add the following diagram.
They have used w x y z where I used T1 2 23 4 - you can clearly see the propagation from the cycle triggering clock edge.

The register outputs from the old cycle are loaded on the rising clock edge and MPC is addressed with clock high as the address bots stabilise. MPC becomes valid somewhere in the clock high time. The control store is asynchronously addressed by stabilising MPC and control store output data must be stable by clock fall time (less any setup time required by MIR) so that MIR is loaded from control store on the clock falling edge. The cycle then follows through as above and as per times shown for colours for w x y z below.

enter image description here

The above diagram is slide 6 from here.


Useful references:

THE MICROARCHITECTURE LEVEL
EENG4320 COMPUTER ARCHITECTURE
U of T at Tyler Here


The Microarchitecture Level
Wolfgang Schreiner
Research Institute for Symbolic Computation (RISC)
Johannes Kepler University, Linz, Austria
here


Wolfgang's Page


The Microarchitecture Level - lies between digital logic level and ISA level  uses digital circuits to implement machine instructions  instruction set can be:  implemented directly in hardware (RISC)  interpreted by microcode (CISC)

http://www.ics.uci.edu/~bic/courses/51%20ICS/Lectures/ch4-all.pdf


Christmas Tree's Machine

Mic-1 Datapath and Control

\$\endgroup\$
1
  • \$\begingroup\$ I am sorry for my question, since i am not a professional at micro architecture questions, just a beginner, that is trying to understand the flow of data in it. So I found IJVM a great starting point with relatively easy instruction set \$\endgroup\$ Commented Nov 30, 2011 at 15:05

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.