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