¿Se canalizan las instrucciones de ciclo múltiple de AVR?

1

Dado que AVR es una arquitectura RISC, la mayoría de las instrucciones toman solo un ciclo para ejecutarse. Todavía algunos necesitan dos o más ciclos, por ej. adiw , que realiza una adición de 16 bits, o ld para cargar datos desde SRAM.

¿Estos tiempos de ejecución solo indican la latencia de estas instrucciones, o el procesador realmente espera tanto tiempo antes de pasar a la siguiente instrucción?

¿Podría ejecutar, digamos, 6 instrucciones de dos ciclos, y el código completo solo necesitaría 7 ciclos para ejecutarse?

    
pregunta polwel

1 respuesta

4

La respuesta simple no es. Una instrucción que tome 2 ciclos para completar bloqueará cualquier otra instrucción hasta que se complete.

Cita obligatoria de la hoja de datos de ATMega328P:

  

Las instrucciones en la memoria del programa se ejecutan con un solo nivel   tubería Mientras se está ejecutando una instrucción, la siguiente instrucción se obtiene previamente de la memoria del programa

La canalización es solo de un solo nivel, por lo que la instrucción que se está buscando no puede comenzar a ejecutarse hasta que finalice la que se está ejecutando actualmente.

    
respondido por el Tom Carpenter

Lea otras preguntas en las etiquetas