Ejemplos de etapas de pipeline:
*Fetch de Instrucciones (FI)
*Decodificar instruccion (DI)
*Calcular operandos (CO)
*Fetch de operandos (FO)
*Ejecutar instrucciones y escribir registro(EI)
*Escribir operando en memoria (WO)
| 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14
Inst1 FI DI CO FO EI WO
Inst2 FI DI CO FO EI WO
Inst3 FI DI CO FO EI WO
Inst4 FI DI CO FO
Inst5 FI DI CO
Inst6 FI DI
Inst7 FI
Inst15 FI DI CO FO EI WO
Dice que la instrucción I3 es una bifurcación condicional a I15, y si se toma el salto hay que vaciar el pipeline.
Mi primera pregunta es en este ejemplo además hay un hazard estructural entre Inst3 y Inst15, porque las instrucciones WO y FI acceden a memoria, por lo tanto si se toma el salto la instrucción 15 deberia empezar corrida un lugar, es decir donde empieza el casillero numero 9 no?
Despues en el taller12 que es sobre PIPELINE, dice lo siguiente:
Considere un procesador MIPS con pipeline de 5 etapas, las que son:
1-Inst. Fetch (F)
2-Instr. Decode and Reg. Fetch(D)
3-Exec and Addr.Calculation(E)
4-Memory Access(M)
5- Write Back(W)
En cuales de las etapas de este pipeline me doy cuenta que debo realizar un salto?
Por ejemplo, si la instrucción 1 fuera una bifurcación condicional a la instrucción 4 y se toma el salto, esta bien esto:
Inst1 |F |D |E |M |W |
Inst4 | F |D |E |M |W |
Entre inst1 y inst4 no tengo un hazard estructural porque WriteBack escribe en registro, pero el Fetch de Inst4 empieza despues de la etapa WriteBack porque hay que esperar que se escriba el resultado de la operación. Esta bien esto que estoy diciendo?
Porque me surgio la duda si no podia darse asi:
Inst1 |F |D |E |M |W |
Inst4 | F |D |E |M |W |
(Supongo que Inst1 no accede a memoria)
Porque una vez que ejecuto la etapa 3(Exec and Addr.calculation) ya se si tengo que realizar el salto, entonces una vez terminada esta etapa ya puedo empezar a hacer el Fetch de Inst4?
Nose cual de los dos razonamientos es correcto.
Agradezco si me pueden responder la duda sobre las diapositivas del teorico, y del taller. Tambien me gustaria saber si es aceptable el ejemplo dado en la diapositiva del teorico como un ejemplo de hazard de control en caso de preguntarse en el examen.
Saludos y desde ya muchas gracias.