[Taller 7][ej4] Duda con sentencias RD y WR

[Taller 7][ej4] Duda con sentencias RD y WR

de Pablo Dalchiele Gonzalez -
Número de respuestas: 0

En este ejercicio pide implementar una instrucción LOAD_OPERATE_SAVE (para la etapa de execute me aclararon) que realice la cuenta

Memoria[SP] := 2*(Memoria[SP] + 1) - 1.


Yo hice (MIC-1 le lleva dos períodos de reloj leer o escribir en memoria):

MAR := SP; RD

RD; AC := MBR

AC := lshift(AC + 1)

MBR := AC - 1; WR

MAR := SP; WR

 

Mi duda es si  en  RD; AC := MBR  el RD termina de leer antes que se guarde en AC lo del MBR. No pasa que al ejecutarse en la misma microinstrucción guarda lo que estaba antes de terminar el RD?

 

Lo mismo en

MBR := AC - 1; WR

MAR := SP; WR

 

Al empezar el WR antes de asignar al MAR donde tiene que grabar, cómo empieza a grabar? o sea el primer período del WR no le falta información para hacer el WR (o sea DÓNDE guardar)?

 

Si lo hiciera al revés:

MAR := SP; WR

MBR := AC - 1; WR

 

también me queda la duda de si en el primer WR no tiene información sobre QUÉ guardar.

Gracias desde ya!