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 queLWleeR2que se modifica porOR(ejecutado en la ranura de retardo después deBEQ, antes deLW). PeroORlo lee en el ciclo 6 en la etapaEX. Por lo tanto,LWdebería poder ejecutar la etapaEXen 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 queBEQleeR2, que está cargado porLW(primera instrucción) en su etapaMEM. Así queBEQtiene que esperar hasta queLW'MEMse 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 etapaEXen el mismo ciclo que la etapaLWdeMEM(tercera instrucción). ¿No debería detenerse nuevamenteBEQ(5ta instrucción) para que espere hasta queLW's (4ta instrucción)MEWse 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 entreMEMyMEB? 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.