View
229
Download
1
Category
Preview:
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
Tema 7:Procesadores superescalares
Arquitectura de Computadores ySistemas Operativos I
4º Curso Plan 96Escuela Técnica Superior Ingenieros
Telecomunicaciones
DISCA
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
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
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
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
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
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 ↓
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.
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).
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
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
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
…
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.
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:
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
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.
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
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
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.
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
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?
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
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
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.
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
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
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
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
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
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
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
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.
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
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/
Recommended