Introducción a paralelismo a nivel de instrucción...
Transcript of Introducción a paralelismo a nivel de instrucción...
Introducción a paralelismo a nivel de instrucción
Introducción a paralelismo a nivel deinstrucción
Arquitectura de Computadores
J. Daniel García Sánchez (coordinador)David Expósito Singh
Javier García BlasÓscar Pérez Alonso
J. Manuel Pérez Lobato
Grupo ARCOSDepartamento de Informática
Universidad Carlos III de Madrid
cbed – Arquitectura de Computadores – Grupo ARCOS – http://www.arcos.inf.uc3m.es 1/66
Introducción a paralelismo a nivel de instrucción
Introducción a la segmentación
1 Introducción a la segmentación
2 Riesgos
3 Operaciones multiciclo
4 Conclusión
cbed – Arquitectura de Computadores – Grupo ARCOS – http://www.arcos.inf.uc3m.es 2/66
Introducción a paralelismo a nivel de instrucción
Introducción a la segmentación
Segmentación
Técnica de implementación en la que una la ejecución demúltiples instrucciones se solapan en el tiempo.
Se divide una operación costosa en variassub-operaciones simples.
Ejecución de las sub-operaciones por etapas.
Efectos:
Aumenta el throughput.
No disminuye la latencia.
cbed – Arquitectura de Computadores – Grupo ARCOS – http://www.arcos.inf.uc3m.es 3/66
Introducción a paralelismo a nivel de instrucción
Introducción a la segmentación
Segmentación
Ciclo 1
Ciclo 2
Ciclo 3
Ciclo 4
Ciclo 5
Ciclo 6
Ciclo 7
Ciclo 8
IF1
IF2 ID1
IF3 ID2 EX1
IF4 ID3 EX2 M1
IF5 ID4 EX3 M2 WB1
IF6 ID5 EX4 M3 WB2
IF7 ID6 EX5 M4 WB3
IF8 ID7 EX6 M5 WB4
Llen
ado
depi
pelin
eN
orm
al
Latencia:Una instrucciónrequiere 5etapas.5 ciclos.
Throughput:Termina unainstrucción encada ciclo (conpipeline lleno).1 instrucción porciclo.
cbed – Arquitectura de Computadores – Grupo ARCOS – http://www.arcos.inf.uc3m.es 4/66
Introducción a paralelismo a nivel de instrucción
Introducción a la segmentación
Etapas del pipeline
Modelo simplificado:5 etapas.Modelos más realistas requieren muchas más etapas.
Etapas:Captación (Instruction Fetch).Decodificación (Instruction Decode).Ejecución (Execution).Memoria (Memory).Post-escritura (Write-back).
cbed – Arquitectura de Computadores – Grupo ARCOS – http://www.arcos.inf.uc3m.es 5/66
Introducción a paralelismo a nivel de instrucción
Introducción a la segmentación
CaptaciónP
CA
DD
R
Mem
ory
Sum4
IR
MUX
Next PC
Envío de PC a memoria.Lectura de instrucción.Actualización de PC.
cbed – Arquitectura de Computadores – Grupo ARCOS – http://www.arcos.inf.uc3m.es 6/66
Introducción a paralelismo a nivel de instrucción
Introducción a la segmentación
Decodificación
IR
R1
R2
RD
Inm
Reg
iste
rs
SignExt
MUX
MUX
Next PC
ALU
Decodificación deinstrucción.Lectura de registros.Extensión de signo dedesplazamientos.Cálculo de posibledirección de salto.
cbed – Arquitectura de Computadores – Grupo ARCOS – http://www.arcos.inf.uc3m.es 7/66
Introducción a paralelismo a nivel de instrucción
Introducción a la segmentación
Ejecución
ALU
Next PC or R1
Inm or R2
CMPZero
R1
MUXNext PC Next PC
Dir orData
Operación de ALU sobreregistros.Alternativamente, cálculode dirección efectiva.
cbed – Arquitectura de Computadores – Grupo ARCOS – http://www.arcos.inf.uc3m.es 8/66
Introducción a paralelismo a nivel de instrucción
Introducción a la segmentación
Memoria
DataMemory
Dir
Data
Data Lectura o escritura enmemoria.
cbed – Arquitectura de Computadores – Grupo ARCOS – http://www.arcos.inf.uc3m.es 9/66
Introducción a paralelismo a nivel de instrucción
Introducción a la segmentación
Post-escritura
MUX
Data Mem.
ALU
RegsEscritura de resultado enbanco de registros.
cbed – Arquitectura de Computadores – Grupo ARCOS – http://www.arcos.inf.uc3m.es 10/66
Introducción a paralelismo a nivel de instrucción
Introducción a la segmentación
Arquitectura generalP
CA
DD
R
Mem
ory
Sum4
IR
R1
R2
RD
Inm
Reg
iste
rs
SignExt
Next PC
MUX
MUX
ALU
CMPZero
MUX
DataMemory
MUX
Post-escrituraCaptación Decodi-
ficaciónEjecución Memoria Post-
escritura
cbed – Arquitectura de Computadores – Grupo ARCOS – http://www.arcos.inf.uc3m.es 11/66
Introducción a paralelismo a nivel de instrucción
Introducción a la segmentación
Efectos del pipeline
Un pipeline de profundidad n, multiplica por n el anchode banda necesario de la versión sin pipeline con lamisma frecuencia de reloj.
Cachés, cachés, ...
La separación de caché de datos e instruccioneselimina algunos conflictos de memoria.
Las instrucciones que están en el pipeline no deberíanintentar usar el mismo recurso en el mismo momento.
Introducción de registros de pipeline entre etapassucesivas.
cbed – Arquitectura de Computadores – Grupo ARCOS – http://www.arcos.inf.uc3m.es 12/66
Introducción a paralelismo a nivel de instrucción
Introducción a la segmentación
Comunicación entre etapasP
CA
DD
R
Mem
ory
Sum4
IF/ID
R1
R2
RD
Inm
Reg
iste
rs
SignExt
ID/E
X
Next PC
MUX
MUX
ALU
CMPZero
Next PC
RD
EX
/ME
M
MUX
DataMemory
RD
ME
M/W
B
MUX
WB data
cbed – Arquitectura de Computadores – Grupo ARCOS – http://www.arcos.inf.uc3m.es 13/66
Introducción a paralelismo a nivel de instrucción
Introducción a la segmentación
El pipeline a lo largo del tiempo
Tiempo (ciclos)
Inst
r
Ciclo 1 Ciclo 2 Ciclo 3 Ciclo 4 Ciclo 5 Ciclo 6 Ciclo 7
IMem Reg ALU DM Reg
IMem Reg ALU DM Reg
IMem Reg ALU DM Reg
IMem Reg ALU DM Reg
Lectura registros segunda mitad de ciclo.Escritura registros primera mitad de ciclo.cbed – Arquitectura de Computadores – Grupo ARCOS – http://www.arcos.inf.uc3m.es 14/66
Introducción a paralelismo a nivel de instrucción
Introducción a la segmentación
Ejemplo
Procesador no segmentado.Ciclo de reloj: 1 ns.40% operaciones ALU→ 4 ciclos.20% operaciones de bifurcación→ 4 ciclos.40% operaciones de memoria→ 5 ciclos.Sobrecoste de segmentación→ 0.2 ns.
¿Qué aceleración se obtiene con la segmentación?
torig = cicloreloj × CPI = 1ns × (0.6× 4 + 0.4× 5) = 4.4ns
tnuevo = 1ns + 0.2ns = 1.2ns
S =4.4ns1.2ns
= 3.7
cbed – Arquitectura de Computadores – Grupo ARCOS – http://www.arcos.inf.uc3m.es 15/66
Introducción a paralelismo a nivel de instrucción
Riesgos
1 Introducción a la segmentación
2 Riesgos
3 Operaciones multiciclo
4 Conclusión
cbed – Arquitectura de Computadores – Grupo ARCOS – http://www.arcos.inf.uc3m.es 16/66
Introducción a paralelismo a nivel de instrucción
Riesgos
Riesgos
Un riesgo es una situación que impide que la siguienteinstrucción pueda comenzar en el ciclo de reloj previsto.
Los riesgos reducen el rendimiento de las arquitecturassegmentadas.
Tipos de riesgos:Riesgo estructural.Riesgo de datos.Riesgo de control.
Aproximación simple ante riesgos:Detener (stall) el flujo de instrucciones.Las instrucciones que ya han iniciado continúan.
cbed – Arquitectura de Computadores – Grupo ARCOS – http://www.arcos.inf.uc3m.es 17/66
Introducción a paralelismo a nivel de instrucción
Riesgos
Riesgos estructurales
2 RiesgosRiesgos estructuralesRiesgos de datosRiesgos de control
cbed – Arquitectura de Computadores – Grupo ARCOS – http://www.arcos.inf.uc3m.es 18/66
Introducción a paralelismo a nivel de instrucción
Riesgos
Riesgos estructurales
Riesgo estructural
Se produce cuando el hardware no puede soportar todaslas posibles secuencias de instrucciones.
En un mismo ciclo dos etapas de la segmentaciónnecesitan hacer uso del mismo recurso.
Razones:Unidades funcionales no totalmente segmentadas.Unidades funcionales no duplicadas.
Este tipo de riesgos es evitable pero encarece el hardware.
cbed – Arquitectura de Computadores – Grupo ARCOS – http://www.arcos.inf.uc3m.es 19/66
Introducción a paralelismo a nivel de instrucción
Riesgos
Riesgos estructurales
Speedup de la segmentación
Speedup de la segmentación:tnoseg : Tiempo medio de instrucción en arquitectura nosegmentada.tseg : Tiempo medio de instrucción en arquitecturasegmentada.
S =tnoseg
tseg=
CPInoseg × ciclonoseg
CPIseg × cicloseg
En el caso ideal el CPI segmentado es 1.Hay que añadir ciclos de detención por instrucción.
cbed – Arquitectura de Computadores – Grupo ARCOS – http://www.arcos.inf.uc3m.es 20/66
Introducción a paralelismo a nivel de instrucción
Riesgos
Riesgos estructurales
Speedup de la segmentación
En el caso del procesador no segmentado.CPI = 1, con ciclonoseg > cicloseg .ciclonoseg = N × cicloseg .N → Profundidad del pipeline.
Speedup
S =N
1 + detenciones por instrucción
cbed – Arquitectura de Computadores – Grupo ARCOS – http://www.arcos.inf.uc3m.es 21/66
Introducción a paralelismo a nivel de instrucción
Riesgos
Riesgos estructurales
Riesgos estructurales: ejemplo
Tiempo (ciclos)
Ciclo 1 Ciclo 2 Ciclo 3 Ciclo 4 Ciclo 5 Ciclo 6 Ciclo 7 Ciclo 8
LOAD
Instr + 1
Instr + 2
Instr + 3
Mem Reg ALU Mem Reg
Mem Reg ALU Mem Reg
Mem Reg ALU Mem Reg
Mem Reg ALU Mem Reg
Asumiendo memoria de un único puerto.cbed – Arquitectura de Computadores – Grupo ARCOS – http://www.arcos.inf.uc3m.es 22/66
Introducción a paralelismo a nivel de instrucción
Riesgos
Riesgos estructurales
Riesgos estructurales: ejemplo
Tiempo (ciclos)
Inst
r
Ciclo 1 Ciclo 2 Ciclo 3 Ciclo 4 Ciclo 5 Ciclo 6 Ciclo 7 Ciclo 8
LOAD
Instr + 1
Instr + 2
Instr + 3
Instr + 4
Mem Reg ALU Mem Reg
Mem Reg ALU Mem Reg
Mem Reg ALU Mem Reg
stall stall stall stall stall
Mem Reg
Asumiendo memoria de un único puerto.cbed – Arquitectura de Computadores – Grupo ARCOS – http://www.arcos.inf.uc3m.es 23/66
Introducción a paralelismo a nivel de instrucción
Riesgos
Riesgos estructurales
Ejemplo
Se consideran dos diseño alternativos:A: Sin riesgos estructurales.
Ciclo de reloj → 1nsB: Con riesgos estructurales.
Ciclo de reloj → 0.9ns
Instrucciones de acceso a datos con riesgo→ 30%.
¿Alternativa más rápida?
tinst(A) = CPI × ciclo = 1× 1ns = 1ns
tinst(B) = CPI×ciclo = (0.7×1+0.3×(1+1))×0.9ns = 1.17ns
cbed – Arquitectura de Computadores – Grupo ARCOS – http://www.arcos.inf.uc3m.es 24/66
Introducción a paralelismo a nivel de instrucción
Riesgos
Riesgos de datos
2 RiesgosRiesgos estructuralesRiesgos de datosRiesgos de control
cbed – Arquitectura de Computadores – Grupo ARCOS – http://www.arcos.inf.uc3m.es 25/66
Introducción a paralelismo a nivel de instrucción
Riesgos
Riesgos de datos
Riesgo de datos
Se produce un riesgo de datos cuando la segmentaciónmodifica el orden de accesos de lectura/escritura a losoperandos.
Ejemplo
I1 : dadd $1 , $2 , $3I2 : dsub $4 , $1 , $5I3 : and $6 , $1 , $7I4 : or $8 , $1 , $9I5 : xor $10 , $1 , $11
I2 lee R1 antes que I1 lamodifique.I3 lee R1 antes de que I1 lamodifique.I4 obtiene valor correcto.
Banco de registros leído ensegunda mitad de ciclo.
I5 obtiene valor correcto.
cbed – Arquitectura de Computadores – Grupo ARCOS – http://www.arcos.inf.uc3m.es 26/66
Introducción a paralelismo a nivel de instrucción
Riesgos
Riesgos de datos
Riesgos de datos
Tiempo (ciclos)
Ciclo 1 Ciclo 2 Ciclo 3 Ciclo 4 Ciclo 5 Ciclo 6 Ciclo 7 Ciclo 8
dadd $1, $2, $3
dsub $4, $1, $5
and $6, $1, $7
or $8, $1, $9
xor $10, $1, $11
Mem Reg ALU Mem Reg
Mem Reg ALU Mem Reg
Mem Reg ALU Mem Reg
Mem Reg ALU Mem Reg
Mem Reg ALU Mem Reg
cbed – Arquitectura de Computadores – Grupo ARCOS – http://www.arcos.inf.uc3m.es 27/66
Introducción a paralelismo a nivel de instrucción
Riesgos
Riesgos de datos
Detenciones en riesgos de datos
Tiempo (ciclos)
Ciclo 1 Ciclo 2 Ciclo 3 Ciclo 4 Ciclo 5 Ciclo 6 Ciclo 7 Ciclo 8
dadd $1, $2, $3
dsub $4, $1, $5
and $6, $1, $7
or $8, $1, $9
xor $10, $1, $11
Mem Reg ALU Mem Reg
stall stall Mem Reg ALU Mem Reg
Mem Reg ALU Mem
Mem Reg ALU
Mem Reg
cbed – Arquitectura de Computadores – Grupo ARCOS – http://www.arcos.inf.uc3m.es 28/66
Introducción a paralelismo a nivel de instrucción
Riesgos
Riesgos de datos
Riesgos de datos: RAW
Lectura después de escritura (Read After Write).La instrucción i+1 trata de leer un dato antes de que lainstrucción i lo escriba.
Ejemplo
i : add $1, $2, $3i+1: sub $4, $1, $3
Si hay dependencia de datos, lasinstrucciones:
No pueden ejecutarse en paralelo nisolaparse completamente.La instrucción sub necesita el valor de $1producido por la instrucción add.
Soluciones:Detección hardware.Control por el compilador.
cbed – Arquitectura de Computadores – Grupo ARCOS – http://www.arcos.inf.uc3m.es 29/66
Introducción a paralelismo a nivel de instrucción
Riesgos
Riesgos de datos
Riesgos de datos: WAR
Escritura después de lectura (Write After Read).La instrucción i+1 modifica operando antes de que lainstrucción i lo lea.
Ejemplo
i : sub $4, $1, $3i+1: add $1, $2, $3i+2: mul $6, $1, $7
Conocido como antidependencia encompiladores.
Reutilización de nombreLa instrucción add modifica $1 antes desub la lea.
No puede ocurrir en un MIPS con pipeline de 5 etapas.Todas las instrucciones de 5 etapas.Lecturas siempre en etapa 2.Escrituras siempre en etapa 5.
cbed – Arquitectura de Computadores – Grupo ARCOS – http://www.arcos.inf.uc3m.es 30/66
Introducción a paralelismo a nivel de instrucción
Riesgos
Riesgos de datos
Riesgos de datos: WAW
Escritura después de escritura (Write After Write).La instrucción i+1 modifica el operando antes de que lainstrucción i lo modifica.
Ejemplo
i : sub $1, $4, $3i+1: add $1, $2, $3i+2: mul $6, $1, $7
Conocido como dependencia de salidaen compiladores.
Reutilización de nombreLa instrucción add modifica $1 antes desub la modifique.
No puede ocurrir en un MIPS con pipeline de 5 etapas.Todas las instrucciones de 5 etapas.Escrituras siempre en etapa 5.
cbed – Arquitectura de Computadores – Grupo ARCOS – http://www.arcos.inf.uc3m.es 31/66
Introducción a paralelismo a nivel de instrucción
Riesgos
Riesgos de datos
Soluciones a los riesgos de datos
Dependencias RAW:Envío adelantado (forwarding).
Dependencias WAR y WAW:Renombrado de registros.
Estáticamente por el compilador.Dinámicamente por el hardware.
cbed – Arquitectura de Computadores – Grupo ARCOS – http://www.arcos.inf.uc3m.es 32/66
Introducción a paralelismo a nivel de instrucción
Riesgos
Riesgos de datos
Envío adelantado
Técnica para evitar algunas detenciones de datos.
Idea básica:No hace falta esperar a que el resultado se escriba en elbanco de registros.Ya está en los registros de segmentación.Se puede usar ese valor en vez del que hay en el banco deregistros.
Implantación:Los resultados de las fases EX y MEM se escriben enregistros de entrada a ALU.La lógica de forwarding selecciona entre entradas reales yregistros de forwarding.
cbed – Arquitectura de Computadores – Grupo ARCOS – http://www.arcos.inf.uc3m.es 33/66
Introducción a paralelismo a nivel de instrucción
Riesgos
Riesgos de datos
Forwarding
dadd $1, $2, $3
dsub $4, $1, $5
and $6, $1, $7
or $8, $1, $9
xor $10, $1, $11
IM Reg ALU DM Reg
IM Reg ALU DM Reg
IM Reg ALU DM Reg
IM Reg ALU DM Reg
IM Reg ALU DM Reg
cbed – Arquitectura de Computadores – Grupo ARCOS – http://www.arcos.inf.uc3m.es 34/66
Introducción a paralelismo a nivel de instrucción
Riesgos
Riesgos de datos
Limitaciones del forwarding
No todos los riesgos se pueden evitar con forwarding.¡No se puede viajar hacia atrás en el tiempo!
Ejemplo
I1 : lw $1 , ( 0 ) $2I2 : dsub $4 , $1 , $5I3 : and $6 , $1 , $7I4 : or $8 , $1 , $9I5 : xor $10 , $1 , $11
IM Reg ALU DM Reg
IM Reg ALU DM Reg
Si el riesgo no se puede evitar se debe introducir unadetención.
cbed – Arquitectura de Computadores – Grupo ARCOS – http://www.arcos.inf.uc3m.es 35/66
Introducción a paralelismo a nivel de instrucción
Riesgos
Riesgos de datos
Detenciones en acceso a memoria
lw $1, 0($2)
dsub $4, $1, $5
and $6, $1, $7
or $8, $1, $9
xor $10, $1, $11
IM Reg ALU DM Reg
IM Reg stall ALU DM Reg
IM stall Reg ALU DM Reg
stall IM Reg ALU DM Reg
IM Reg ALU DM Reg
cbed – Arquitectura de Computadores – Grupo ARCOS – http://www.arcos.inf.uc3m.es 36/66
Introducción a paralelismo a nivel de instrucción
Riesgos
Riesgos de control
2 RiesgosRiesgos estructuralesRiesgos de datosRiesgos de control
cbed – Arquitectura de Computadores – Grupo ARCOS – http://www.arcos.inf.uc3m.es 37/66
Introducción a paralelismo a nivel de instrucción
Riesgos
Riesgos de control
Riesgos de control
Un riesgo de control se produce en una instrucción dealteración del PC.
Terminología:Bifurcación tomada: Si se modifica el PC.Bifurcación no tomada: Si no se modifica el PC.
Problema:La segmentación asume que lo bifurcación no se tomará.¿Qué hacer si después de la etapa ID se determina que hayque tomar la bifurcación?
cbed – Arquitectura de Computadores – Grupo ARCOS – http://www.arcos.inf.uc3m.es 38/66
Introducción a paralelismo a nivel de instrucción
Riesgos
Riesgos de control
Alternativas ante riesgos de control
Tiempo de compilación: Prefijadas durante toda laejecución del programa.
El software puede intentar minimizar su impacto si conoceel comportamiento del hardware.El compilador puede hacer este trabajo.
Alternativas en tiempo de ejecución: Comportamientovariable durante la ejecución del programa.
Intentan predecir qué hará el software.
cbed – Arquitectura de Computadores – Grupo ARCOS – http://www.arcos.inf.uc3m.es 39/66
Introducción a paralelismo a nivel de instrucción
Riesgos
Riesgos de control
Riesgos de control: soluciones estáticas
1 Congelación del pipeline.2 Predicción prefijada.
Siempre no tomado.Siempre tomado.
3 Bifurcación con retraso.
En muchos casos el compilador necesita saber qué se vaa hacer para reducir el impacto.
cbed – Arquitectura de Computadores – Grupo ARCOS – http://www.arcos.inf.uc3m.es 40/66
Introducción a paralelismo a nivel de instrucción
Riesgos
Riesgos de control
Congelación del pipeline
Idea: Si la instrucción actual es una bifurcación→ parar oeliminar del pipeline instrucciones posteriores hasta quese conozca el destino.
Penalización en tiempo de ejecución conocida.El software (compilador) no puede hacer nada.
El destino de la bifurcación se conoce en la etapa ID.Repetir el FETCH de la siguiente instrucción.
cbed – Arquitectura de Computadores – Grupo ARCOS – http://www.arcos.inf.uc3m.es 41/66
Introducción a paralelismo a nivel de instrucción
Riesgos
Riesgos de control
Repetición de captación
Bifurcación
Instr i+1
Instr i+2
Instr i+3
IF ID EX M WB
IF IF ID EX M WB
IF ID EX M WB
IF ID EX M WB
La repetición de IF equivale a una detención.Una detención por bifurcación puede dar lugar a unapérdida de rendimiento de 10% a 30%.
cbed – Arquitectura de Computadores – Grupo ARCOS – http://www.arcos.inf.uc3m.es 42/66
Introducción a paralelismo a nivel de instrucción
Riesgos
Riesgos de control
Predicción prefijada: no tomada
Idea: Asumir que la bifurcación será no tomada.Se evita modificar el estado del procesador hasta que setiene la confirmación de que la bifurcación no se toma.Si la bifurcación se toma, las instrucciones siguientes seretiran del pipeline y se capta la instrucción en el destinodel salto.
Transformar instrucciones en NOP.
Tarea del compilador:Organizar código poniendo la opción más frecuente comono tomada e invirtiendo condición si es necesario.
cbed – Arquitectura de Computadores – Grupo ARCOS – http://www.arcos.inf.uc3m.es 43/66
Introducción a paralelismo a nivel de instrucción
Riesgos
Riesgos de control
Predicción prefijada: no tomada
Bifurcación
Instr i+1
Destino bifurc.
Instr j+1
IF ID EX M WB
IF
IF ID EX M WB
IF ID EX M WB
Cuando se sabe que el salto se tomará se capta la nuevainstrucción (j+1).
cbed – Arquitectura de Computadores – Grupo ARCOS – http://www.arcos.inf.uc3m.es 44/66
Introducción a paralelismo a nivel de instrucción
Riesgos
Riesgos de control
Predicción prefijada: tomada
Idea: Asumir que la bifurcación será tomada.Tan pronto como se decodifica la bifurcación y se calcula eldestino se comienza a captar instrucciones del destino.En pipeline de 5 etapas no aporta ventajas.
No se conoce dirección destino antes que decisión debifurcación.Útil en procesadores con condiciones complejas y lentas.
Tarea del compilador:Organizar código poniendo la opción más frecuente comotomada e invirtiendo condición si es necesario.
cbed – Arquitectura de Computadores – Grupo ARCOS – http://www.arcos.inf.uc3m.es 45/66
Introducción a paralelismo a nivel de instrucción
Riesgos
Riesgos de control
Bifurcación retrasada
Idea: La bifurcación se produce después de ejecutar las ninstrucciones posteriores a la propia instrucción debifurcación.
En pipeline de 5 etapas→ 1 ranura de retraso (delay slot).
Ejemplo
I0 : bnez $1 , e t i qI1 : addi $2 , $2 , 1I2 : mul $3 , $2 , $4. . .IN : sub $1 , $1 , 1IN +1: mul $3 , $3 , $4
Las instrucciones I1, I2, . . . , INse ejecutan independientementedel sentido de la condición debifurcación.La instrucción IN+1 solamente seejecuta si no se produce labifurcación.
cbed – Arquitectura de Computadores – Grupo ARCOS – http://www.arcos.inf.uc3m.es 46/66
Introducción a paralelismo a nivel de instrucción
Riesgos
Riesgos de control
Bifrucación retrasada
Bifurcación
Instr. retrasada
Instr. sig o destino
IF ID EX M WB
IF ID EX M WB
IF ID EX M WB
Caso de bifurcación retrasada con una ranura de retraso.Se espara siempre una instrucción antes de tomar labifurcación.Es responsabilidad del programador poner código útil en laranura.
cbed – Arquitectura de Computadores – Grupo ARCOS – http://www.arcos.inf.uc3m.es 47/66
Introducción a paralelismo a nivel de instrucción
Riesgos
Riesgos de control
Compilador y ranuras de retraso
Original
add $1 , $2 , $3beqz $2 , e t i qnopxor $5 , $6 , $7
e t i q : and $8 , $9 , $10
Mejorado
beqz $2 , e t i qadd $1 , $2 , $3xor $5 , $6 , $7
e t i q : and $8 , $9 , $10
Original
e t i q : add $1 , $2 , $3xor $5 , $6 , $7beqz $5 , e t i qnopand $8 , $9 , $10
Mejorado
add $1 , $2 , $3e t i q : xor $5 , $6 , $7
beqz $5 , e t i qadd $1 , $2 , $3and $8 , $9 , $10
Original
add $1 , $2 , $3beqz $1 , e t i qnopxor $5 , $6 , $7
e t i q : and $8 , $9 , $10
Mejorado
add $1 , $2 , $3beqz $1 , e t i qxor $5 , $6 , $7
e t i q : and $8 , $9 , $10
cbed – Arquitectura de Computadores – Grupo ARCOS – http://www.arcos.inf.uc3m.es 48/66
Introducción a paralelismo a nivel de instrucción
Riesgos
Riesgos de control
Bifurcaciones retrasadas
Efectividad del compilador para el caso de 1 ranura:Rellena alrededor del 60% de ranuras.En torno al 80% de instrucciones ejecutadas en ranurasútiles para computación.En torno al 50% de ranuras rellenados de forma útil.
Al usarse pipelines más profundos y emisión múltiplehacen falta más ranuras.
En desuso a favor de enfoque dinámicos.
cbed – Arquitectura de Computadores – Grupo ARCOS – http://www.arcos.inf.uc3m.es 49/66
Introducción a paralelismo a nivel de instrucción
Riesgos
Riesgos de control
Rendimiento y predicción prefijada
El número de detenciones de bifurcaciones depende de:Frecuencia de las bifurcaciones.Penalización por bifurcación.
Ciclos de penalización por bifurcación:
ciclosbifurc = frecuenciabifurc × penalizbifurc
Aceleración
S =profundidadpipeline
1 + frecuenciabifurc × penalizbifurc
cbed – Arquitectura de Computadores – Grupo ARCOS – http://www.arcos.inf.uc3m.es 50/66
Introducción a paralelismo a nivel de instrucción
Riesgos
Riesgos de control
Caso práctico
MIPS R4000 (pipeline más profundo).3 etapas antes de conocer destino de bifurcación.1 etapa adicional para evaluar condición.Asumiendo que no hay detenciones de datos encomparaciones.Frecuencia de bifurcaciones:
Bifurcación incondicional: 4%.Bifurcación condicional, no-tomada: 6%Bifurcación condicional, tomada: 10%
Esquema Penalizaciónbifurcación incondicional no-tomada tomadaVaciar pipeline 2 3 3Predecir tomada 2 3 2Predecir no-tomada 2 0 3
cbed – Arquitectura de Computadores – Grupo ARCOS – http://www.arcos.inf.uc3m.es 51/66
Introducción a paralelismo a nivel de instrucción
Riesgos
Riesgos de control
Solución
Esquema Bifurcación Totalbifurcación incondicional no-tomada tomadaFrecuencia 4% 6% 10% 20%Vaciar pipeline 0.04×2 = 0.08 0.06×3 = 0.18 0.10×3 = 0.30 0.56Predecir tomada 0.04×2 = 0.08 0.06×3 = 0.18 0.10×2 = 0.20 0.46Predecir no-tomada
0.04×2 = 0.08 0.06×0 = 0.00 0.10×3 = 0.30 0.38
Contribución sobre CPI ideal
Speedup de predecir tomada sobrevaciar pipeline
S =1 + 0.561 + 0.46
= 1.068
Speedup de predecir no tomadasobre vaciar pipeline
S =1 + 0.561 + 0.38
= 1.130
cbed – Arquitectura de Computadores – Grupo ARCOS – http://www.arcos.inf.uc3m.es 52/66
Introducción a paralelismo a nivel de instrucción
Riesgos
Riesgos de control
Bifurcaciones y tiempo de ejecución
Cada bifurcación condicional está fuertemente sesgada.O se toma la mayoría de las veces,O no se toma la mayoría de las veces.
Predicción basada en perfil de ejecución:Se ejecuta una vez para recoger estadísticas.Se utiliza la información recogida para modificar el código yaprovechar la información.
cbed – Arquitectura de Computadores – Grupo ARCOS – http://www.arcos.inf.uc3m.es 53/66
Introducción a paralelismo a nivel de instrucción
Riesgos
Riesgos de control
Predicciones con perfil de ejecución
SPEC92: Frecuencia de bifurcaciones 3% a 24%Coma flotante:
Fallo de predicción.Media: 9%.Desviación estándar: 4%.
Enteros:Fallo de predicción.
Media: 15%.Desviación estándar: 5%.
cbed – Arquitectura de Computadores – Grupo ARCOS – http://www.arcos.inf.uc3m.es 54/66
Introducción a paralelismo a nivel de instrucción
Riesgos
Riesgos de control
Predicciones con perfil de ejecución
5 10 15 20
compresseqntott
espressogcc
lidoduc
earhydro2d
mdljdpsu2cor
1222
1811
124
69
1015
Tasa de fallo de prediccióncbed – Arquitectura de Computadores – Grupo ARCOS – http://www.arcos.inf.uc3m.es 55/66
Introducción a paralelismo a nivel de instrucción
Riesgos
Riesgos de control
Predicción dinámica: BHT
Tabla histórica de saltos (Branch History Table)Índice: Bits menos significativos de dirección (PC).Valor: 1 bit (salto tomado o no la última vez).
Predict Taken (11)
T
Predict Taken (10)
NT
T
Predict Not Taken (00)
NT
NT
Predict Not Taken (01)
TNT
T
Mejoras: Uso de más bits para mejorar la precisión.
cbed – Arquitectura de Computadores – Grupo ARCOS – http://www.arcos.inf.uc3m.es 56/66
Introducción a paralelismo a nivel de instrucción
Riesgos
Riesgos de control
BHT: Precisión
Fallos de predicción:Predicción errónea para el salto.Historia de otro salto en la entrada de la tabla.
Resultados BHT de 2 bits y 4K entradas:
0 2 4 6 8 10 12 14 16 18
eqntottespresso
gccli
spicedoducfpppp
matrix300nasa7
185
1210
95
90
10
Tasa de fallo de predicción
cbed – Arquitectura de Computadores – Grupo ARCOS – http://www.arcos.inf.uc3m.es 57/66
Introducción a paralelismo a nivel de instrucción
Riesgos
Riesgos de control
Predicción dinámica de bifurcación
¿Por qué funciona la predicción de saltos?El algoritmo presenta regularidades.Las estructuras de datos presenta regularidades.
¿Es mejor la predicción dinámica que la predicciónestática?
Parecer serlo.Hay un pequeño número de bifurcaciones importantes enprogramas con comportamiento dinámico.
cbed – Arquitectura de Computadores – Grupo ARCOS – http://www.arcos.inf.uc3m.es 58/66
Introducción a paralelismo a nivel de instrucción
Operaciones multiciclo
1 Introducción a la segmentación
2 Riesgos
3 Operaciones multiciclo
4 Conclusión
cbed – Arquitectura de Computadores – Grupo ARCOS – http://www.arcos.inf.uc3m.es 59/66
Introducción a paralelismo a nivel de instrucción
Operaciones multiciclo
Operaciones de coma flotante
¿Operaciones de coma flotante en un ciclo?Tener un ciclo de reloj extremadamente largo.
Impacto en rendimiento global.Lógica de control de FPU muy compleja.
Consumo excesivo de recursos de diseño.
Alternativa: Segmentación de coma flotante.La etapa de ejecución se puede repetir varias veces.Múltiples unidades funcionales en EX.
Ejemplo: Unidad entera, multiplicador FP y entero, sumadorFP, divisor FP y entero.
cbed – Arquitectura de Computadores – Grupo ARCOS – http://www.arcos.inf.uc3m.es 60/66
Introducción a paralelismo a nivel de instrucción
Operaciones multiciclo
Segmentación con coma flotante
La etapa EX pasa a tener una duración mayor que 1 ciclode reloj.
IF ID EX (unidad entera) MEM WB
EX (multiplicador int/fp)
EX (sumador fp)
EX (divisor int/fp)
cbed – Arquitectura de Computadores – Grupo ARCOS – http://www.arcos.inf.uc3m.es 61/66
Introducción a paralelismo a nivel de instrucción
Operaciones multiciclo
Latencia e intervalo de iniciación
Latencia: Número de ciclos entre la instrucción queproduce un resultado y la instrucción que usa eseresultado.Intervalo de iniciación: Número de ciclos entre la emisiónde dos instrucciones que usan la misma unidad funcional.
Operación Latencia Intervalo iniciaciónALU entera 0 1Instrucciones load 1 1Suma FP 3 1Multiplicación FP 6 1División FP 24 25
cbed – Arquitectura de Computadores – Grupo ARCOS – http://www.arcos.inf.uc3m.es 62/66
Introducción a paralelismo a nivel de instrucción
Conclusión
1 Introducción a la segmentación
2 Riesgos
3 Operaciones multiciclo
4 Conclusión
cbed – Arquitectura de Computadores – Grupo ARCOS – http://www.arcos.inf.uc3m.es 63/66
Introducción a paralelismo a nivel de instrucción
Conclusión
Resumen
Una arquitectura segmentada requiere mayor ancho debanda de memoria.Los riesgos en el pipeline provocan detenciones.
Degradación del rendimiento.
Las detenciones de riesgos de datos se pueden mitigarcon técnicas de compilación.Las detenciones de riesgos de control se pueden reducircon:
Alternativas en tiempo de compilación.Alternativas en tiempo de ejecución.
Las operaciones multi-ciclo permiten mantener ciclos dereloj cortos.
cbed – Arquitectura de Computadores – Grupo ARCOS – http://www.arcos.inf.uc3m.es 64/66
Introducción a paralelismo a nivel de instrucción
Conclusión
Referencias
Computer Architecture. A Quantitative Approach5th Ed.Hennessy and Patterson.Secciones C.1, C.2 y C.5
Ejercicios recomendados:C.1, C.2, C.3, C.4 y C.5.
cbed – Arquitectura de Computadores – Grupo ARCOS – http://www.arcos.inf.uc3m.es 65/66
Introducción a paralelismo a nivel de instrucción
Conclusión
Introducción a paralelismo a nivel deinstrucción
Arquitectura de Computadores
J. Daniel García Sánchez (coordinador)David Expósito Singh
Javier García BlasÓscar Pérez Alonso
J. Manuel Pérez Lobato
Grupo ARCOSDepartamento de Informática
Universidad Carlos III de Madrid
cbed – Arquitectura de Computadores – Grupo ARCOS – http://www.arcos.inf.uc3m.es 66/66