Introducción a paralelismo a nivel de instrucción...

66
Introducción a paralelismo a nivel de instrucción Introducción a paralelismo a nivel de instrucció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 ARCOS Departamento de Informática Universidad Carlos III de Madrid cbed Arquitectura de Computadores Grupo ARCOS http://www.arcos.inf.uc3m.es 1/66

Transcript of Introducción a paralelismo a nivel de instrucción...

Page 1: Introducción a paralelismo a nivel de instrucción ...ocw.uc3m.es/ingenieria-informatica/arquitectura-de... · Introducción a paralelismo a nivel de instrucción Introducción a

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

Page 2: Introducción a paralelismo a nivel de instrucción ...ocw.uc3m.es/ingenieria-informatica/arquitectura-de... · Introducción a paralelismo a nivel de instrucción Introducción a

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

Page 3: Introducción a paralelismo a nivel de instrucción ...ocw.uc3m.es/ingenieria-informatica/arquitectura-de... · Introducción a paralelismo a nivel de instrucción Introducción a

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

Page 4: Introducción a paralelismo a nivel de instrucción ...ocw.uc3m.es/ingenieria-informatica/arquitectura-de... · Introducción a paralelismo a nivel de instrucción Introducción a

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

Page 5: Introducción a paralelismo a nivel de instrucción ...ocw.uc3m.es/ingenieria-informatica/arquitectura-de... · Introducción a paralelismo a nivel de instrucción Introducción a

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

Page 6: Introducción a paralelismo a nivel de instrucción ...ocw.uc3m.es/ingenieria-informatica/arquitectura-de... · Introducción a paralelismo a nivel de instrucción Introducción a

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

Page 7: Introducción a paralelismo a nivel de instrucción ...ocw.uc3m.es/ingenieria-informatica/arquitectura-de... · Introducción a paralelismo a nivel de instrucción Introducción a

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

Page 8: Introducción a paralelismo a nivel de instrucción ...ocw.uc3m.es/ingenieria-informatica/arquitectura-de... · Introducción a paralelismo a nivel de instrucción Introducción a

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

Page 9: Introducción a paralelismo a nivel de instrucción ...ocw.uc3m.es/ingenieria-informatica/arquitectura-de... · Introducción a paralelismo a nivel de instrucción Introducción a

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

Page 10: Introducción a paralelismo a nivel de instrucción ...ocw.uc3m.es/ingenieria-informatica/arquitectura-de... · Introducción a paralelismo a nivel de instrucción Introducción a

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

Page 11: Introducción a paralelismo a nivel de instrucción ...ocw.uc3m.es/ingenieria-informatica/arquitectura-de... · Introducción a paralelismo a nivel de instrucción Introducción a

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

Page 12: Introducción a paralelismo a nivel de instrucción ...ocw.uc3m.es/ingenieria-informatica/arquitectura-de... · Introducción a paralelismo a nivel de instrucción Introducción a

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

Page 13: Introducción a paralelismo a nivel de instrucción ...ocw.uc3m.es/ingenieria-informatica/arquitectura-de... · Introducción a paralelismo a nivel de instrucción Introducción a

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

Page 14: Introducción a paralelismo a nivel de instrucción ...ocw.uc3m.es/ingenieria-informatica/arquitectura-de... · Introducción a paralelismo a nivel de instrucción Introducción a

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

Page 15: Introducción a paralelismo a nivel de instrucción ...ocw.uc3m.es/ingenieria-informatica/arquitectura-de... · Introducción a paralelismo a nivel de instrucción Introducción a

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

Page 16: Introducción a paralelismo a nivel de instrucción ...ocw.uc3m.es/ingenieria-informatica/arquitectura-de... · Introducción a paralelismo a nivel de instrucción Introducción a

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

Page 17: Introducción a paralelismo a nivel de instrucción ...ocw.uc3m.es/ingenieria-informatica/arquitectura-de... · Introducción a paralelismo a nivel de instrucción Introducción a

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

Page 18: Introducción a paralelismo a nivel de instrucción ...ocw.uc3m.es/ingenieria-informatica/arquitectura-de... · Introducción a paralelismo a nivel de instrucción Introducción a

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

Page 19: Introducción a paralelismo a nivel de instrucción ...ocw.uc3m.es/ingenieria-informatica/arquitectura-de... · Introducción a paralelismo a nivel de instrucción Introducción a

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

Page 20: Introducción a paralelismo a nivel de instrucción ...ocw.uc3m.es/ingenieria-informatica/arquitectura-de... · Introducción a paralelismo a nivel de instrucción Introducción a

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

Page 21: Introducción a paralelismo a nivel de instrucción ...ocw.uc3m.es/ingenieria-informatica/arquitectura-de... · Introducción a paralelismo a nivel de instrucción Introducción a

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

Page 22: Introducción a paralelismo a nivel de instrucción ...ocw.uc3m.es/ingenieria-informatica/arquitectura-de... · Introducción a paralelismo a nivel de instrucción Introducción a

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

Page 23: Introducción a paralelismo a nivel de instrucción ...ocw.uc3m.es/ingenieria-informatica/arquitectura-de... · Introducción a paralelismo a nivel de instrucción Introducción a

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

Page 24: Introducción a paralelismo a nivel de instrucción ...ocw.uc3m.es/ingenieria-informatica/arquitectura-de... · Introducción a paralelismo a nivel de instrucción Introducción a

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

Page 25: Introducción a paralelismo a nivel de instrucción ...ocw.uc3m.es/ingenieria-informatica/arquitectura-de... · Introducción a paralelismo a nivel de instrucción Introducción a

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

Page 26: Introducción a paralelismo a nivel de instrucción ...ocw.uc3m.es/ingenieria-informatica/arquitectura-de... · Introducción a paralelismo a nivel de instrucción Introducción a

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

Page 27: Introducción a paralelismo a nivel de instrucción ...ocw.uc3m.es/ingenieria-informatica/arquitectura-de... · Introducción a paralelismo a nivel de instrucción Introducción a

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

Page 28: Introducción a paralelismo a nivel de instrucción ...ocw.uc3m.es/ingenieria-informatica/arquitectura-de... · Introducción a paralelismo a nivel de instrucción Introducción a

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

Page 29: Introducción a paralelismo a nivel de instrucción ...ocw.uc3m.es/ingenieria-informatica/arquitectura-de... · Introducción a paralelismo a nivel de instrucción Introducción a

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

Page 30: Introducción a paralelismo a nivel de instrucción ...ocw.uc3m.es/ingenieria-informatica/arquitectura-de... · Introducción a paralelismo a nivel de instrucción Introducción a

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

Page 31: Introducción a paralelismo a nivel de instrucción ...ocw.uc3m.es/ingenieria-informatica/arquitectura-de... · Introducción a paralelismo a nivel de instrucción Introducción a

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

Page 32: Introducción a paralelismo a nivel de instrucción ...ocw.uc3m.es/ingenieria-informatica/arquitectura-de... · Introducción a paralelismo a nivel de instrucción Introducción a

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

Page 33: Introducción a paralelismo a nivel de instrucción ...ocw.uc3m.es/ingenieria-informatica/arquitectura-de... · Introducción a paralelismo a nivel de instrucción Introducción a

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

Page 34: Introducción a paralelismo a nivel de instrucción ...ocw.uc3m.es/ingenieria-informatica/arquitectura-de... · Introducción a paralelismo a nivel de instrucción Introducción a

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

Page 35: Introducción a paralelismo a nivel de instrucción ...ocw.uc3m.es/ingenieria-informatica/arquitectura-de... · Introducción a paralelismo a nivel de instrucción Introducción a

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

Page 36: Introducción a paralelismo a nivel de instrucción ...ocw.uc3m.es/ingenieria-informatica/arquitectura-de... · Introducción a paralelismo a nivel de instrucción Introducción a

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

Page 37: Introducción a paralelismo a nivel de instrucción ...ocw.uc3m.es/ingenieria-informatica/arquitectura-de... · Introducción a paralelismo a nivel de instrucción Introducción a

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

Page 38: Introducción a paralelismo a nivel de instrucción ...ocw.uc3m.es/ingenieria-informatica/arquitectura-de... · Introducción a paralelismo a nivel de instrucción Introducción a

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

Page 39: Introducción a paralelismo a nivel de instrucción ...ocw.uc3m.es/ingenieria-informatica/arquitectura-de... · Introducción a paralelismo a nivel de instrucción Introducción a

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

Page 40: Introducción a paralelismo a nivel de instrucción ...ocw.uc3m.es/ingenieria-informatica/arquitectura-de... · Introducción a paralelismo a nivel de instrucción Introducción a

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

Page 41: Introducción a paralelismo a nivel de instrucción ...ocw.uc3m.es/ingenieria-informatica/arquitectura-de... · Introducción a paralelismo a nivel de instrucción Introducción a

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

Page 42: Introducción a paralelismo a nivel de instrucción ...ocw.uc3m.es/ingenieria-informatica/arquitectura-de... · Introducción a paralelismo a nivel de instrucción Introducción a

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

Page 43: Introducción a paralelismo a nivel de instrucción ...ocw.uc3m.es/ingenieria-informatica/arquitectura-de... · Introducción a paralelismo a nivel de instrucción Introducción a

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

Page 44: Introducción a paralelismo a nivel de instrucción ...ocw.uc3m.es/ingenieria-informatica/arquitectura-de... · Introducción a paralelismo a nivel de instrucción Introducción a

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

Page 45: Introducción a paralelismo a nivel de instrucción ...ocw.uc3m.es/ingenieria-informatica/arquitectura-de... · Introducción a paralelismo a nivel de instrucción Introducción a

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

Page 46: Introducción a paralelismo a nivel de instrucción ...ocw.uc3m.es/ingenieria-informatica/arquitectura-de... · Introducción a paralelismo a nivel de instrucción Introducción a

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

Page 47: Introducción a paralelismo a nivel de instrucción ...ocw.uc3m.es/ingenieria-informatica/arquitectura-de... · Introducción a paralelismo a nivel de instrucción Introducción a

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

Page 48: Introducción a paralelismo a nivel de instrucción ...ocw.uc3m.es/ingenieria-informatica/arquitectura-de... · Introducción a paralelismo a nivel de instrucción Introducción a

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

Page 49: Introducción a paralelismo a nivel de instrucción ...ocw.uc3m.es/ingenieria-informatica/arquitectura-de... · Introducción a paralelismo a nivel de instrucción Introducción a

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

Page 50: Introducción a paralelismo a nivel de instrucción ...ocw.uc3m.es/ingenieria-informatica/arquitectura-de... · Introducción a paralelismo a nivel de instrucción Introducción a

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

Page 51: Introducción a paralelismo a nivel de instrucción ...ocw.uc3m.es/ingenieria-informatica/arquitectura-de... · Introducción a paralelismo a nivel de instrucción Introducción a

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

Page 52: Introducción a paralelismo a nivel de instrucción ...ocw.uc3m.es/ingenieria-informatica/arquitectura-de... · Introducción a paralelismo a nivel de instrucción Introducción a

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

Page 53: Introducción a paralelismo a nivel de instrucción ...ocw.uc3m.es/ingenieria-informatica/arquitectura-de... · Introducción a paralelismo a nivel de instrucción Introducción a

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

Page 54: Introducción a paralelismo a nivel de instrucción ...ocw.uc3m.es/ingenieria-informatica/arquitectura-de... · Introducción a paralelismo a nivel de instrucción Introducción a

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

Page 55: Introducción a paralelismo a nivel de instrucción ...ocw.uc3m.es/ingenieria-informatica/arquitectura-de... · Introducción a paralelismo a nivel de instrucción Introducción a

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

Page 56: Introducción a paralelismo a nivel de instrucción ...ocw.uc3m.es/ingenieria-informatica/arquitectura-de... · Introducción a paralelismo a nivel de instrucción Introducción a

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

Page 57: Introducción a paralelismo a nivel de instrucción ...ocw.uc3m.es/ingenieria-informatica/arquitectura-de... · Introducción a paralelismo a nivel de instrucción Introducción a

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

Page 58: Introducción a paralelismo a nivel de instrucción ...ocw.uc3m.es/ingenieria-informatica/arquitectura-de... · Introducción a paralelismo a nivel de instrucción Introducción a

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

Page 59: Introducción a paralelismo a nivel de instrucción ...ocw.uc3m.es/ingenieria-informatica/arquitectura-de... · Introducción a paralelismo a nivel de instrucción Introducción a

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

Page 60: Introducción a paralelismo a nivel de instrucción ...ocw.uc3m.es/ingenieria-informatica/arquitectura-de... · Introducción a paralelismo a nivel de instrucción Introducción a

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

Page 61: Introducción a paralelismo a nivel de instrucción ...ocw.uc3m.es/ingenieria-informatica/arquitectura-de... · Introducción a paralelismo a nivel de instrucción Introducción a

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

Page 62: Introducción a paralelismo a nivel de instrucción ...ocw.uc3m.es/ingenieria-informatica/arquitectura-de... · Introducción a paralelismo a nivel de instrucción Introducción a

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

Page 63: Introducción a paralelismo a nivel de instrucción ...ocw.uc3m.es/ingenieria-informatica/arquitectura-de... · Introducción a paralelismo a nivel de instrucción Introducción a

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

Page 64: Introducción a paralelismo a nivel de instrucción ...ocw.uc3m.es/ingenieria-informatica/arquitectura-de... · Introducción a paralelismo a nivel de instrucción Introducción a

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

Page 65: Introducción a paralelismo a nivel de instrucción ...ocw.uc3m.es/ingenieria-informatica/arquitectura-de... · Introducción a paralelismo a nivel de instrucción Introducción a

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

Page 66: Introducción a paralelismo a nivel de instrucción ...ocw.uc3m.es/ingenieria-informatica/arquitectura-de... · Introducción a paralelismo a nivel de instrucción Introducción a

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