La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

Hazards. Solución Ideal: IFIDEXMEMWBIFIDEXMEMWBIFIDEXMEMWB123456789101112131415IFIDEXMEMWBIFIDEXMEMWBIFIDEXMEMWB.

Presentaciones similares


Presentación del tema: "Hazards. Solución Ideal: IFIDEXMEMWBIFIDEXMEMWBIFIDEXMEMWB123456789101112131415IFIDEXMEMWBIFIDEXMEMWBIFIDEXMEMWB."— Transcripción de la presentación:

1 Hazards

2 Solución Ideal: IFIDEXMEMWBIFIDEXMEMWBIFIDEXMEMWB IFIDEXMEMWBIFIDEXMEMWBIFIDEXMEMWB

3 Diagrama en Detalle PC Inst mem Register file MUXMUX ALUALU MUXMUX 1 Data memory ++ MUXMUX IF/ ID ID/ EX EX/ Mem Mem/ WB MUXMUX Bits Bits dest offset valB valA PC+1 target ALU result dest valB dest ALU result mdata eq? instruction 0 R2 R3 R4 R5 R1 R6 R0 R7 regA regB data dest

4 Ejemplo de Pipeline

5 Hazards I Los Hazards son causados por conflictos entre instrucciones. Pueden derivar en un comportamiento anómalo si no son solucionados. Los hay de tres tipos: Structural: dos instrucciones usan el mismo h/w en el mismo ciclo – conflictos de memoria(e.g. un solo puerto de memoria). Data: dos instrucciones usan el mismo almacenamiento(register/memory) – depende de las instrucciones. Control: una instrucción afecta a la siguiente– el PC modifica la posición de la instrucción.

6 Hazards II Forzar el uso de stalls o burbujas en el pipe Demorar/para instrucciones previas Flush pipeline Sacar instrucciones del pipeline Refetch posterior de nuevas instrucciones – resuelve hazards de control

7 Hazards III (Estructurales) Stall + simple, bajo costo en h/w -Decrementa IPC - Replicar el recurso + bueno para la performance -Incremento h/w Usado con recursos baratos - Pipeline en los recursos + bueno para la performance -Complejidad, e.g. RAM Util para loops

8 Hazards IV (Datos) Dos instrucciones distintas usan el mismo lugar para almacenar sus datos. Reordenar! addR1, R2, R3 subR2, R4, R1 orR1, R6, R3 addR1, R2, R3 subR2, R4, R1 orR1, R6, R3 addR1, R2, R3 subR2, R4, R1 orR1, R6, R3 read-after-write (RAW) write-after-read (WAR) write-after-write (WAW) True dependence (real) anti dependence (artificial) output dependence (artificial)

9 Hazards V (Control) Problemas en el BRANCH: Los branches se resuelven en la etapa de Ejecución (EX) Penalidad de 2 ciclos en un branch tomado Teóricamente: CPI = *2 (asumiento 2 ciclos de penalty y que en un programa hay un 32% de branches) = 1.64 Soluciones: Reducir la penalidad: cambiar el datapath – nuevo sumador necesario en la etapa de ID. branch delay slot(s) => utilizarlo con una instrucción. Fixed branch prediction. Static branch prediction. Dynamic branch prediction.


Descargar ppt "Hazards. Solución Ideal: IFIDEXMEMWBIFIDEXMEMWBIFIDEXMEMWB123456789101112131415IFIDEXMEMWBIFIDEXMEMWBIFIDEXMEMWB."

Presentaciones similares


Anuncios Google