Conflictos en el uso de los recursos del cauce segmentado por parte
de las multiples instrucciones cuya ejecución se solapa (recursos
insuficientemente replicados)
Causas:
Recursos insuficientes: los recursos no se han
replicado lo suficiente como para permitir la ejecución de
todas las combinaciones de instrucciones sin dar lugar a
pérdida de ciclos
Unidades Funcionales no segmentadas: no es posible
iniciar una secuencia de instrucciones en la que varias
consecutivas utilicen esa unidad funcional sin esperas y
por tanto pérdida de ciclos
Soluciones:
Replicar las unidades funcionales --> aumenta el coste
• Ejemplo: Arquitectura Harvard
Retrasar una de las operaciones (stall)
• Pérdida de prestaciones
• Depende del % aparición de combinaciones que originan estos riesgos
Ejemplo: Memoria conjunta de instrucciones y datos
lw r1,100(r0)
i+1
i+2
i+3 NOP
i+3
Implementación:
- En la etapa MEM no se accede a la memoria de instrucciones
- Se conserva la instrucción anterior en la etapa IF
- Se entrega a la fase RD un NOP
Problemas derivados de dependencias entre instrucciones cuya
ejecución se solapa. Dadas dos instrucciones i y j (j posterior a i) que operan sobre el mismo elemento de almacenamiento x, se pueden producir las siguientes dependencias:
RAW (Read After Write) o Dependencia de datos
lee el valor de x sin modificar
• En ejecución solapada en orden se producen las operaciones de lectura antes que las de
escritura
Ejemplo:
i1 ADD.D F0, F2, F4
i2 MUL.D F6, F0, F8
i3 Instrucción entera
i4 Instrucción entera
i5 Instrucción entera
Solución: Insertar de ciclos de parada hasta poder aplicar un cortocircuito.
-Lógica de detección concentrada en ID.-En cuanto una instrucción se detiene en ID, cesa la búsqueda de instrucciones(IF).
Con operaciones multiciclo, la fase de ejecución puede durar varios ciclos de reloj
-la penalización (número de ciclos de parada) puede llegar a ser elevada.
WAR (Write After Read) o Antidependencia
lee el valor de x modificado por j
• En ejecución solapada en orden se producen las operaciones de escritura antes que las de lectura
WAW (Write After Write) o Dependencia de salida
se queda con el valor escrito por i
• En ejecución solapada en orden se producen en dos o más ciclos las operaciones de
escritura
Ejemplo: Además del riesgo WAW, hay un riesgo RAW.
i1 MUL.D F0,F2,F4
i2 DIV.D F6,F0,F8
i3 ADD.D F0,F10,F12
La resolución del riesgo RAW, insertando ciclos de parada en ID, soluciona
también el WAW:

Riesgos de Control
Problemas derivados de las instrucciones de control de flujo, debido
al desconocimiento temporal de la siguiente instrucción a ejecutar
Metodo de resolucion:
Parada del cauce
· Reducción de la Latencia
Anticipar las operaciones que se puedan dentro del proceso de ejecución de
las instrucciones de salto
· Efectuar la búsqueda de Instrucciones por las dos ramas
Ahorro del ciclo de búsqueda de instrucción una vez resuelto el salto
· Predicción de Salto
Estática
Dinámica
· Salto Retardado
Hacer visible la latencia al nivel de lenguaje máquina
0 comentarios: