Introduccion

Explotar el paralelismo potencial entre instrucciones de un programa.
Secuencial: Se ejecuta cada instrucción tras terminar la anterior
Pipeline: Se ejecuta cada fase de una instrucción tras finalizar la misma fase de la anterior.

  • Ciclo de maquina: Tiempo necesario para pasar de una etapa a la siguiente. Determinado por la etapa más lenta.
  • Maxima efectividad si todas las etapas tardan lo mismo
  • Arquitectura RISC. Modelo de ejecución registro-registro
  • La ejecucion es en forma de escalera, para evaluarlo hay que descomponer la instruccion y ver la ejecucion por etapas como evoluciona.
  • CPI real = CPI ideal + (n º parones/instrucción) (sera > 1)
  • Dependencias RAW (lectura después de escritura): Una instrucción depende de los resultados producidos por una instrucción anterior. 1. Ciclos de espera (HW: diseñador / SW)(División del ciclo de acceso al banco de registros en subciclos), Anticipación o forwarding (HW: diseñador)(El resultado se envía directamente desde la salida de la unidad que lo genera a la entrada de la que lo necesita), Reordenación de código (SW: programador/compilador)

  • Superescalar: Se inician varias instrucciones.

    Multithreading

    Incremento de la utilizacion de los recursos del procesador. Multiples threads comparten las unidades funcionales de un procesador