Skip to content
New issue

Have a question about this project? # for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “#”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? # to your account

[Contenido - I3] Consulta pipeline (pregunta 3 I2-2022-2) #144

Open
rodrigooflores opened this issue Dec 1, 2024 · 2 comments
Open

[Contenido - I3] Consulta pipeline (pregunta 3 I2-2022-2) #144

rodrigooflores opened this issue Dec 1, 2024 · 2 comments

Comments

@rodrigooflores
Copy link

Hola, buenas tardes. Realizando la I2 del segundo semestre del 2022 me surgieron un par de dudas en la pregunta 3 de ILP.

1. Salto al final del código:
Tengo entendido que cuando hay un salto al final del código y no se tienen más instrucciones, el computador igual debe esperar a que se llegue a la etapa de MEM para poder realizar el salto, por lo que al llegar a esa parte en el diagrama de ejecución quedaría algo así:
duda_jump

Pero en la pauta colocan directamente la instrucción MOV B, 0.
duda_jump_pauta

Me gustaría si pudieran confirmarme si esto es un error y si es correcto colocar NOP's para indicar esos 3 ciclos que se pierden.

2. Cantidad de ciclos al terminar con flushing:
¿Qué pasaría si nos piden la cantidad de ciclos que toma una ejecución y justo termina con flushing? ¿el último ciclo sería la etapa MEM del JMP? Adjunto una imagen de cómo quedó parte de mi ejecución para este ejercicio:
duda_flushing_final

¿La ejecución del código tomaría 19 ciclos en ese caso?

@Geeermy
Copy link
Contributor

Geeermy commented Dec 1, 2024

¡Hola!

  1. Es un error. Como bien dices, se deben incluir los tres NOP para representar la espera del salto.
  2. El último ciclo sería la etapa WB de la instrucción JEQ fin. Si bien la ejecución real es hasta la etapa MEM, igual las señales se propagarán a WB, por lo que se debe considerar como parte de la ejecución. Entonces, el total de ciclos sería igual a 20.
  3. Un pequeño paréntesis: Las instrucciones flusheadas nunca alcanzan a pasar por la detección de hazards de datos, por lo que nunca debes dibujar las flechas de forwarding en ese escenario.

¡Saludos! :)

@rodrigooflores
Copy link
Author

Muchas gracias por las aclaraciones :)
Saludos!

# for free to join this conversation on GitHub. Already have an account? # to comment
Development

No branches or pull requests

2 participants