34
Tema 7: Procesadores superescalares Arquitectura de Computadores y Sistemas Operativos I 4º Curso Plan 96 Escuela Técnica Superior Ingenieros Telecomunicaciones DISCA

Tema7 Color

Embed Size (px)

DESCRIPTION

La segmentación de mercado es el proceso, como su propio nombre indica, de dividir o segmentar un mercado en grupos uniformes más pequeños que tengan características y necesidades semejantes, la segmentación de un mercado se puede dividir de acuerdo a sus características o variables que puedan influir en su comportamiento de compra.

Citation preview

Page 1: Tema7 Color

Tema 7:Procesadores superescalares

Arquitectura de Computadores ySistemas Operativos I

4º Curso Plan 96Escuela Técnica Superior Ingenieros

Telecomunicaciones

DISCA

Page 2: Tema7 Color

2

Tema 7:Procesadores superescalares

1. Operaciones multiciclo2. Dependencias3. Gestión dinámica de instrucciones

3.1 Algoritmo de Tomasulo4. Aumento de prestaciones

4.1 Procesadores superescalares4.2 Procesadores VLIW4.3 Procesadores supersegmentados

Page 3: Tema7 Color

DIS

CA

–3

1. Operaciones multiciclo

• PROBLEMA:– Instrucciones enteras complejas (mult y div)– Instrucciones en coma flotanteNecesitan fases de ejecución mucho más largas¿Cómo segmentar entonces?

• Soluciones– Aumentar periodo de reloj (penaliza otras fases)– Más HW para mejorar fase EX (no siempre posible)– Permitir fase de EX con varios ciclos MULTICILO

Page 4: Tema7 Color

DIS

CA

–4

1. Operaciones multiciclo (2)• Múltiples operadores

– Nuevas instrucciones se ejecutan mejor en HW específico Poner operadores específicos para las operaciones.

– En la fase de ID se decide que operador se encarga de la ejecución.– Operadores: convencionales o segmentados.– Parámetros: tiempo de evaluación (Tev) y tasa de iniciación (IR)

• No todas las instrucciones durarán los mismoEX

Divisor

MEMIF

Sumador c.f.

WBID

Multiplicador

Page 5: Tema7 Color

1. Operadores multiciclo (3)• Operadores añadidos al DLX

– Sumador/restador de coma flotante.Tev=4 IR=1por ciclo– Multiplicador entero/coma flotante.Tev=7 IR=1 por ciclo– Divisor entero/coma flotante. Tev=24 IR=1 por 24 ciclos

• La fase MEM está vacía en operaciones multiciclo• Ejemplo:

…DIVDIVDIVDIVDIVDIVDIVIDIFDivd F8,F12,F22

WBMEM7M6M5M4M3M2M1IDIFmultd F4,F9,F10

WBMEM7M6M5M4M3M2M1IDIFmultd F6,F8,F10

WBMEA4A3A2A1IDIFaddd F0,F2,F4

WBMEEXIDIFadd R1,R2,R3

Page 6: Tema7 Color

DIS

CA

–6

1. Op. Multiciclo: DLX

• Necesidad de nuevos registros entre etapas• Multiplexor en la entrada de WB• ¿Aparecen nuevos riesgos?

IF ID

EX

DIV (24 ciclos)

WB

MEM

M1 M2 M3 M4 M5 M6 M6

A1 A2 A3 A4

Page 7: Tema7 Color

DIS

CA

–7

2. Dependencias: definición

• El problema:Sin multicilo pocos stall CPI ≈ 1Con multiciclo muchos stall CPI >> 1

• Debemos conseguir bajar al máximo el CPI• Paralelismo a nivel de instrucción (ILP)

– Posibilidad de solapamiento en las secuencias de instrucciones.

– Depende de si las instrucciones son independientes.ILP↑ pocos conflictos pocos stall CPI ↓

Page 8: Tema7 Color

DIS

CA

–8

2. Dependencias: Clasificación• Dos instrucciones son independientes si pueden

ejecutarse simultáneamente son ningún problema SE PUEDEN REORDENAR

• Tipos de dependencias:– Estructurales. Depende del HW y del tipo de operación.– De Datos. Dependen de las operaciones y los datos.– De Nombre. Dependen de las operaciones y los datos.– De Control. Dependen de las operaciones de salto.

Page 9: Tema7 Color

DIS

CA

–9

2.1 Dependencias Estructurales• Dependencias estructurales.

– Dos operaciones utilizan el mismo elemento de ejecución (operador).

• No generan riesgos entre operaciones DLX no multiciclo.

• Sólo aparecen riesgos con operaciones tipo DIV.• En DLX: insertar ciclos de espera (retrasa todas las

operaciones).– Escritura simultáneas en banco de registros.

• Ejemplo: MULD y ADDD• Se puede evitar utilizando banco de registros con

más de un puerto de escritura muy caro• En DLX: dos bancos de registros (uno para enteros

y otro para coma flotante).

Page 10: Tema7 Color

DIS

CA

–10

2.1 Dependencias Estructurales

• Ventajas doble banco de registros:– No se producen riesgos estructurales entre operaciones.– Se duplica el número total de registros, sin complicar la

lógica de decodificación, ni aumentar el tiempo de acceso.

• Inconvenientes– La operaciones enteras MUL y DIV tienen que tener

sus operandos en banco de reg. de coma flotante– Son necesarias operaciones para transferir datos entre

registros.– Se limita el número de registros de cada tipo

Page 11: Tema7 Color

DIS

CA

–11

2.2 Dependencias Estructurales

IF ID

EX

DIV (24 ciclos)

M3 M4 M5 M6 M6

A3 A4

WB Flotantes

MEM WB Enteros

A1 A2

M1 M2

Page 12: Tema7 Color

DIS

CA

–12

2.2 Dependencias de Datos

• Dadas dos instrucciones i y j, j lógicamente después de i, existe una dependencia de datos entre ellas si:– i produce un resultado usado por j.– Existe una instrucción k entre i y j y existe dependencia

de datos i k j. Esta cadena puede ser tan larga como el propio programa

– Ejemplo.…lp: LD F0, 0(R1)

ADDD F4,F0,F2SD 0(R2),F4

Page 13: Tema7 Color

DIS

CA

–13

2.3 Dependencias de Nombre• Dos instrucciones utilizan el mismo registro o

posición de memoria (elemento). No hay flujo de datos entre ellas.

• Dos instrucciones i y j, j lógicamente después de i, pueden tener:– Antidependencia. La instrucción j escribe sobre un

elemento que i lee.– Dependencia de salida. Las dos instrucciones escriben

sobre el mismo elemento.

Page 14: Tema7 Color

DIS

CA

–14

2.4 Dependencias de Control

• Es la ordenación de las instrucciones respecto a una instrucción de salto previa.

• TODA instrucción tiene una dependencia de control con algún salto.

; Dep. Nombre

LD F0,0(R1)ADDD F4,F0,F2SD 0(R1),F4LD F0,-8(R1)ADDD F4,F0,F2

;Dep. Control…

BEQZ R1,exitLD F10,0(R1)ADDD F4,F10,F2SD 0(R1),F4

…exit:

Page 15: Tema7 Color

DIS

CA

–15

2.5 Dependencias: Resumen• Indican la posibilidad de un riesgo.• ILP ↓ Presencia simultanea de instrucciones

dependientes en unidad segmentada riesgos↑• Riesgos↑ ciclos paradas ↑ CPI ↑

De ControlDe ControlWAWDe salidaWARAntidependenciaRAWDe datosRiesgos posiblesDependencia

Page 16: Tema7 Color

DIS

CA

–16

2.5 Dependencias: Conclusiones• Objetivo: aumentar ILP reducir CPI

– Bloque básico: secuencia de instrucciones entre dos instrucciones de salto.

• ¿Hay suficiente ILP en un bloque básico?– 15% de saltos 6 ó 7 instrucciones por bloque– Instrucciones dentro de un bloque pueden tener

dependencias.– Loop-level: solapar la ejecución de iteraciones de bucles

• Idea: solapar ejecución bloques básicos.– Gestión estática el compilador reordena el código.– Gestión dinámica el HW cambio el orden de ejecución

de las instrucciones.

Page 17: Tema7 Color

DIS

CA

–17

3. Gestión dinámica de instrucciones

• El HW aumenta el ILP reordenando la ejecución de las instrucciones:– Las instrucciones independientes se ejecutan lo más

simultáneamente posible.– Las instrucciones dependientes se ejecutan en orden.

• Hasta ahora, si una instrucción se para, también se paran todas las posteriores, aún cuando esas instrucciones sean independientes de las que se encuentran en la unidad.

• Ejemplo. DIVD F0,F2,F4ADDD F10,F0,F8MULTD F12,F8,F14

Page 18: Tema7 Color

DIS

CA

–18

3. Gestión dinámica de instrucciones (2)

• IDEA: el HW detecta cuando una instrucción no tiene dependencias y la ejecuta aunque haya otra parada.

• Ventajas– Compilador más sencillo.– Soluciona dependencias desconocidas en compilación.– No hay que optimizar código compatibilidad binaria

• Inconvenientes:– HW más complicado

Page 19: Tema7 Color

DIS

CA

–19

3.1 Algoritmo de Tomasulo• Objetivos:

– Procesar las instrucciones en los operadores a la misma velocidad con la que las suministra la etapa ID CPI ≈1

– Ejecutar simultáneamente instrucciones independientes.

– Detectar las instrucciones dependientes y gestionarlas correctamente.

– Permitir que las instrucciones independientes se ejecuten antes que instrucciones dependientes paradas.

Page 20: Tema7 Color

DIS

CA

–20

3.1 Algoritmo de Tomasulo(2)

Unidad de ejecución de coma flotante

DIV (24 ciclos)

WB Flotantes

EX MEM

M1 M2 M3 M4 M5 M6 M6

A1 A2 A3 A4

WB Enteros

Issue

Load/Store Flotante

Unidad de ejecución entera

IF ID

Page 21: Tema7 Color

DIS

CA

–21

3.1 Algoritmo de Tomasulo(3)• Aplicar algoritmo sólo a multiciclo• Unidad load/store coma flotante:

– Datos de mayor tamaño.– Detección de dependencias gestión dinámica posible– Fallos de cache no afectan unidad entera y otras

instrucciones• Etapa ISSUE: implementación algoritmo.

– Si el operador no disponible esperar.– Operando no disponible esperar.– Operador libre, operandos disponibles ejecutar.

• ¿Dónde esperan las instrucciones?

Page 22: Tema7 Color

DIS

CA

–22

3.1 Algoritmo de Tomasulo(3)

• ¿Dónde esperan las instrucciones?– ¿En estapa Issue?

• NO

– ¿En operador?• SI, pero…• Falla cuando otra instrucción

pide mismo operador

– ¿En estructura de datos?• OK

• Ejemplo1:DIVD F0,F2,F4ADDD F10,F0,F8MULTD F12,F6,F8

• Ejemplo2:DIVD F0,F2,F4ADDD F10,F0,F8ADDD F18,F2,F4MULTD F12,F6,F10

Page 23: Tema7 Color

DIS

CA

–23

3.1 Algoritmo de Tomasulo(4)Memoria

VALOR-DIRECCIÓN

ETAPA ISSUE

COLA DE

INSTRUCCIÓNES

F2

F1

VALOR

Registros FP

VALORTAG VALOR VALORTAG VALOR

S/R M/D

TAG-VALOR-DIRECCIÓN

BUS COMÚN

Page 24: Tema7 Color

DIS

CA

–24

3.1 Algoritmo de Tomasulo(5)• Todos las transferencias se hacen etiquetando los

datos a transferir con un nombre (TAG).• Elementos de la ruta de datos:

– Cola de instrucciones antes de la etapa ISSUE.– Banco de registros coma flotante– Operadores y estaciones de reserva. Cada entrada

contiene una instrucción en espera para su ejecución. (Operadores virtuales)

– Tampones comunicación con memoria.– Bus común. Se transfiere siempre dato y TAG

asociado. Todos los elementos “ven” el TAG y deciden si necesitan coger el dato transferido.

Page 25: Tema7 Color

DIS

CA

–25

3.1 Algoritmo de Tomasulo:Ejemplo ejecución

• Las instrucciones se marcan con un TAG.

• Se leen los operandos– VALOR o TAG

• Se espera a tener todos los operandos y el operador.

• Ejecución.• Escritura en BUS del TAG

de la instrucción junto con su resultado.

• Todos los que esperan el resultado cogen el valor

F2

F1

NOMBRE

MARCA_1_ 234567

VALOR ó TAG

VALORTAG VALOR

M/D

BUS COMÚN

MARCA_1_ 234567

Page 26: Tema7 Color

DIS

CA

–26

Tomasulo: Ejemplo 2op_1

F1 = op_1

DIVF F2,F1,F4 33.1212.7

F1 = op_1

op_1

F2 = op_2

F4=127.12op_1 op_2

ADDF F1,F2,F3

33.1212.7

F1 = op_3

op_1

F2 = op_2

127.12op_1 op_2F3=33.12 op_3op_2

SUMADOR DIVISOR

MULTIP.

DIVISORMULTIP.

MULTIP.

f2=12.7 f3=33.12MULTF F1,F2,F3

Page 27: Tema7 Color

DIS

CA

–27

4.Aumento prestaciones

• Tiempo de ejecución de un programa:Te = I × CPI × Tclk

• Segmentación CPI ≈1• Si quiero reducir Te

– Reducir el valor de CPI Superescalares– Reducir instrucciones (I) VLIW– Reducir Tclk Supersegmentados

Page 28: Tema7 Color

DIS

CA

–28

4.1 Superescalares

• Se lanzan m instrucciones en un ciclo de reloj.– Grado del computador: m

• Implicaciones:– Varios accesos simultáneos a memoria (IF,ME)– Decodificación de varias instrucciones– Ejecución de varias instrucciones– Accesos simultáneos al banco de registro.

• Gestión dinámica de instrucciones.– Se extrae el máximo ILP de los programas.– Compatibles a nivel binario con proc. escalares

Page 29: Tema7 Color

DIS

CA

–29

4.1 Superescalares (2)• PROBLEMA: HW demasiado caro• COMPUTADOR SUPERESCALAR NO UNIFORME

– Se imponen limitaciones en el tipo de instrucciones que se pueden lanzar a la vez.

– Ejemplos: Comp. Superescalar de grado 2:• 2 instrucciones enteras• 1 entera + 1 coma flotante• 1 load/store + 1 aritmética• 1 salto + 1 no de salto

– Aparecen riesgos estructurales No siempre es posible lanzar m instrucciones

– Optimización del código fundamental para obtener las máximas prestaciones Compatibilidad binaria poco eficiente

Page 30: Tema7 Color

DIS

CA

–30

4.2 Procesadores VLIW

• VLIW: Very long Instruction Word.– Se codifican varias operaciones un una palabra.– Se reduce el número de instrucciones a ejecutar– El compilador es el encargado de extraer ILP.

• Las palabras tienen un campo por cada uno de los tipos de operación que pueden se simultaneas.– Riesgos de datos y de control resueltos por el

compilador.– El HW no aplica gestión dinámica.– Ejemplo de formato de instrucción:

Entera/SaltoAritmet_CF2Aritmet_CF1Mem2Mem1

Page 31: Tema7 Color

4.2 Procesadores VLIW(2)• Si el compilador es malo

o el código tienen una ILP bajo, el tamaño del código generado es mucho mayor.

• No hay compatibilidad binaria.

• Código convencional:loop:

LD F0,0(R1)ADDD F4,F0,F2SD 0(R1),F4SUB R1,R1,#8BNEZ R1,loop

BNEZ R1,loopSD –48(R1),F4SUB R1,R1,#56SD –40(R1),F24SD –32(R1),F20

SD –24(R1),F16SD –16(R1),F12ADDD F28,F26,F2SD –8(R1),F8SD 0(R1),F4

ADDD F24,F22,F2ADDD F20,F18,F2ADDD F16,F14,F2ADDD F12,F10,F2LD F26,-48(R1)ADDD F8,F6,F2ADDD F4,F0,F2LD F22,-40(R1)LD F18,-32(R1)

LD F14,-24(R1)LD F10,-16(R1)LD F6,-8(R1)LD F0,0(R1)

Entera/SaltoAritmet_CF2Aritmet_CF1Mem2Mem1

Page 32: Tema7 Color

DIS

CA

–32

4.3 Procesadores supersegmentados

• Se divide cada etapa en t subetapas. Se disminuye el tiempo de ciclo manteniendo la cota máxima de CPI.– t = grado de supersegmentación.

• Necesita menos HW que superescalar.• Menor Tclk mayor sobrecarga potencial de los

registros intermedios y desfase de reloj (clock skew).

• Se super-segmentan sólo las etapas consideradas como cuello de botella.

• Versiones superescales-supersegmentadas.

Page 33: Tema7 Color

DIS

CA

–33

Ejemplos máquinas reales

ItaniumItanium2

Compilador marca riesgos

Estática(Excepciones)

SW/HWEstática(Excepciones)

EPIC

Trimedia, i860,Transmeta Crusoe

Sin riesgos entre inst.

EstáticaSWEstáticaVLIW

Pentium III y 4MIPS R10K

Athlon, OpteronPowerPC

Reordenación y

especulación

Dinámica y especulación

HWDinámicaSuperescalar(Especulación)

IBM Power2,PowerPC

Fuera de orden en

algunas op.

DinámicaHWDinámicaSuperescalar(Dinámico)

Sun UltraSparcIISun UltraSparcIII

Ejecución en orden

EstáticaHWDinámicaSuperescalar(estático)

MIPS R4000Pentium 4

8 etapasEstáticaHWEstáticaSupersegmentado

EjemplosComentarios adicionalesReordenación Detección

riesgosSiguiente

InstrucciónTipo

Page 34: Tema7 Color

DIS

CA

–34

Bibliografía• J.L. Hennesy, D.A. Patterson, “Computer

Architecture: A Quantitave Approach”, 3ª edición, Morgan Kauffmann Publishers, 2002.

• William Stallings, “Organización y Arquitectura de Computadores”, 5ª Edición, Prentice-Hall 2000

• D.A. Patterson, J.L. Hennesy, “Estructura y diseño de computadores: interficie circuitería/programación”, Ed. Reverté, 2000

• M. Johnson, “Superescalar Microprocessor Design”, Prentice-Hall, 1999

• http://www.transmeta.com/