Necesito ayuda para entender la solución del manual de la solución. La pregunta es del ejercicio 4.22.2 del capítulo 4 en el libro Organización y diseño de computadoras por Patterson y Hannessey (4ª edición). La pregunta es sobre la ramificación en la línea de instrucciones.
La pregunta
Suponemos que el siguiente código MIPS se ejecuta en un procesador canalizado con un pipeline de 5 etapas, un reenvío completo y un predictor de ramificación basado en la predicción. Considere la secuencia de instrucciones:
Label1: LW R2,0(R2)
BEQ R2,R0,Label ; Taken once, then not taken
OR R2,R2,R3
SW R2,0(R5)
Dibuje el diagrama de ejecución de la tubería para este código, asumiendo hay ranuras de retardo y las ramas se ejecutan en la etapa EX.
La solución dada es la siguiente:
Dudas
- ¿Por qué hay un bloqueo (resaltado
***
) en el ciclo 7 paraLW
(4ta instrucción ejecutada)? Entiendo queLW
leeR2
que se modifica porOR
(ejecutado en la ranura de retardo después deBEQ
, antes deLW
). PeroOR
lo lee en el ciclo 6 en la etapaEX
. Por lo tanto,LW
debería poder ejecutar la etapaEX
en el ciclo 7 (ya que se permite el reenvío completo). Pero ¿por qué no se muestra así? - También observe que en el ciclo (columna) 4, para la instrucción
BEQ
(segunda instrucción), hay un bloqueo (es decir,***
). Esto se debe a queBEQ
leeR2
, que está cargado porLW
(primera instrucción) en su etapaMEM
. Así queBEQ
tiene que esperar hasta queLW
'MEM
se complete. Sin embargo, la misma situación ocurre en las instrucciones 4 y 5. Pero en este caso, se permite queBEQ
(quinta instrucción) ejecute su etapaEX
en el mismo ciclo que la etapaLW
deMEM
(tercera instrucción). ¿No debería detenerse nuevamenteBEQ
(5ta instrucción) para que espere hasta queLW
's (4ta instrucción)MEW
se complete? - También me di cuenta, hay dos etapas 4. En algunas instrucciones, la cuarta etapa está etiquetada como
MEM
(por ejemplo, primera instrucciónLW
, cuarto ciclo) y en algunas instrucciones, su etiquetaMEB
(por ejemplo, segunda instrucciónLW
, sexto ciclo). ¿Cuáles son las diferencias entreMEM
yMEB
? Busqué en todo el libro, pero no se menciona elMEB
, solo en el manual de la solución, está especificado. O puede ser que me haya perdido algunas páginas.