Tema 7: Procesadores superescalares

Documentos relacionados
Arquitectura de Computadores Problemas (hoja 2). Curso

Paralelismo al nivel de instrucciones

Arquitectura de Computadores Problemas (hoja 4). Curso

6. PROCESADORES SUPERESCALARES Y VLIW

Departamento de Automática

Tutorías con Grupos Reducidos (TGR) Sesión 2: Paralelismo a Nivel de Instrucción

Introducción a los procesadores ILP (Instruction-Level Parallel)

Arquitectura e Ingeniería de Computadores. Examen Parcial. 7/02/2012

Tema 5. Segmentación: conceptos básicos

Arquitectura de Computadores II Clase #16

Explotación del paralelismo a nivel de instrucción

Cuestionario Unidad 4: Procesamiento paralelo 2012

Procesadores segmentados. El DLX.

ARQUITECTURA DE COMPUTADORAS

Tema 10. Introducción a la op5mización de código

Ejercicios de Paralelismo a Nivel de Instrucción

Arquitectura de Computadoras. Clase 4 Segmentación de Instrucciones

Unidad 4 - Procesamiento paralelo. Arquitectura de computadoras. D o c e n t e : E r n e s t o L e a l. E q u i p o : J e s s i c a F i e r r o

ADDI R4,R0,#2 ADDI R1,R0,#40 LOOP: LW R2,0(R1) SUBI R3,R2,#1 MUL R2,R3,R2 DIV R2,R3,R4 SW 0(R1),R2 SUBI R1,R1,#4 BNEZ R1, LOOP ADDI R4,R0,#0

Procesadores superescalares. Introducción

1. Objetivo y evolución de los procesadores ILP.

1.2. Implementación de Procesadores Superescalares

2. SEGMENTACIÓN ENCAUZADA AVANZADA Y PARALELISMO DE INSTRUCCIONES: EJERCICIOS Y CUESTIONES

2. SEGMENTACIÓN ENCAUZADA AVANZADA Y PARALELISMO DE INSTRUCCIONES: EJERCICIOS Y CUESTIONES

Tema 1: PROCESADORES SEGMENTADOS

TEMA 3. PLANIFICACIÓN (SCHEDULING) DE INSTRUCCIONES Arquitectura de Sistemas Paralelos 1. pág 2. direcc MEM

Introducción a la arquitectura de computadores

Arquitectura de Computadores (obligatoria)

int vector[100]; // en principio vector tiene al menos // cien elementos aunque pueda tener más... for (i=0; i<100; i++) vector[i] = vector[i] + 1;

Arquitectura de Computadores. Tema 11. Pipelining Avanzado

COMPUTADORES SEGMENTADOS (DLX)

Departamento de Automática

TEMA 2: PARALELISMO INTERNO EN SISTEMAS COMPUTADORES SEGMENTACION

Definición de prestaciones

OBJETIVOS ALGUNAS CONSIDERACIONES SOBRE WINDLX

Docente Cargo Carga Horaria Carlos A. Correa Profesor Titular Exclusivo 10hs

Arquitectura de Computadoras Trabajo Práctico N 8 Pipeline de Instrucciones 1 Primer Cuatrimestre de 2016

FUNDAMENTOS DE COMPUTADORES

Procesadores de palabra de instrucción muy larga (VLIW) v.2012

Arquitectura de Computadoras Trabajo Práctico N 7 Pipeline de Instrucciones Primer Cuatrimestre de 2010

Paralelismo en monoprocesadores. Procesadores VLIW

Arquitectura de Computadores II Clase #16

Autor: Longinos Recuero Bustos

CAPÍTULO 2 PROCESADORES SUPERESCALARES

TEMA 3 PLANIFICACIÓN O REORDENAMIENTO (SCHEDULING) DE INSTRUCCIONES ÍNDICE

UNIVERSIDAD NACIONAL DE INGENIERIA FACULTAD DE ELECTROTECNIA Y COMPUTACION INGENIERIA EN COMPUTACION ARQUITECTURA DE MAQUINAS III. SIMULADOR DLX (jbz)

ARQUITECTURA DE COMPUTADORES Problemas TEMA 4: Microprocesadores avanzados

2EMHWLYRV 5HIHUHQFLDV

Sistema electrónico digital (binario) que procesa datos siguiendo unas instrucciones almacenadas en su memoria

PROGRAMA ANALÍTICO. Fecha de aprobación: 9 de octubre de Departamento de Electrónica Obligatoria X X. Optativa.

Aspectos avanzados de arquitectura de computadoras Pipeline. Facultad de Ingeniería - Universidad de la República Curso 2017

Arquitectura del MIPS: Introducción

202 PROBLEMAS DE ARQUITECTURA DE COMPUTADORES

Arquitectura de Computadores. E.P.S. Alcoi Curso

Centro Asociado Palma de Mallorca. Tutor: Antonio Rivero Cuesta

Ingeniería Informática. Ampliación de Estructura de Computadores. Curso Introducción a la segmentación de Instrucciones.

Tema 4. Condiciones para el paralelismo: Dependencias

Introducción PROCESADOR SUPERESCALAR. Paralelismo. Grado m: en cada ciclo se buscan/decodifican m instrucciones. supes

#define MAX 1024 void escala_vect (float A[MAX], float B[MAX], float k) { int i; for (i=0; i < MAX; i++) B[i]=k*A[i]; }

CICLOS DEL PROCESADOR

GRADO EN INFORMÁTICA CURSO 2011/2012. Arquitectura de Computadores

Paralelismo en el procesador

TEMA 3. ILP BASADO EN PLANIFICACIÓN DINÁMICA Sistemas Paralelos y Distribuidos 3º GIC. pág 1

HISTORIA DEL PIPELINE. Juan Antonio Romano Largo. Arquitectura de Computadores.

Plataformas de soporte computacional: arquitecturas avanzadas,

Arquitectura de Computadores. Tema 4 PROCESADORES SEGMENTADOS

Capitulo 1 Fundamentos de Computadores - I.T.Telecomunicación - Segundo cuatrimestre. INTRODUCCION A LOS FUNDAMENTOS DE COMPUTADORES

ORGANIZACION DE COMPUTADORES

Arquitectura de Computadores II Clase #5

ARQUITECTURA DE COMPUTADORES. Práctica 8

ARQUITECTURA DE COMPUTADORAS

GUÍA DE APRENDIZAJE ARQUITECTURA DE COMPUTADORES

Arquitectura. TEMA 5 Lanzamiento múltiple, Límites de ILP, Multithreading. Curso

ORGANIZACIÓN DE COMPUTADORES I

Práctica 1 - Rendimiento *

Ingeniería Informática. Ampliación de Estructura de Computadores. Curso

ASIGNATURA: Arquitectura de Computadores

ARQUITECTURA DE COMPUTADORES

Procesadores Superescalares v.2014

TEMA 12: MEJORA DE LAS PRESTACIONES DE LA MEMORIA

Dpto. Arquitectura y Tecnología de Computadores SPD. Práctica 5. pág 1

Tratamiento de Excepciones en MIPS

ORGANIZACIÓN DOCENTE del curso

ARQUITECTURA SPARC: FORMATO DE INSTRUCCIÓN

Estructura de Computadores Tema 1. Introducción a los computadores

Procesadores Superescalares

Arquitectura de Computadores

Planificación Dinámica - 1. Arquitectura de Computadores

Grado en Ingeniería de Computadores Universidad de Alcalá Curso Académico 2010/2011 Primer curso Primer cuatrimestre

Arquitectura de Computadores. TEMA 2 ILP, Panificación dinámica, Predicción de saltos, Especulación

Superescalares y VLIW - 1. Arquitectura de Computadores

TEMA VI DISEÑO DEL PROCESADOR

Tema 2: Conceptos básicos. Escuela Politécnica Superior Ingeniería Informática Universidad Autónoma de Madrid

1.1.1 Libros básicos. P. de Miguel Anasagasti Fundamentos de computadores Paraninfo, 1999 (6ª edición)

Segmentación del ciclo de instrucción v.2014

Multiplicación de matrices con DLX

Estrategias de predicción dinámicas.

(Arquitectura de Computadores)

Unidad 5 Unidad central de proceso

Objetivos Generales. Conocimientos Previos Recomendados. CONTENIDOS TEORICOS (Temporización)

Transcripción:

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

Tema 7: Procesadores superescalares 1. Operaciones multiciclo 2. Dependencias 3. Gestión dinámica de instrucciones 3.1 Algoritmo de Tomasulo 4. Aumento de prestaciones 4.1 Procesadores superescalares 4.2 Procesadores VLIW 4.3 Procesadores supersegmentados 2

1. Operaciones multiciclo PROBLEMA: Instrucciones enteras complejas (mult y div) Instrucciones en coma flotante Necesitan 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 DISCA 3

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 (T ev ) y tasa de iniciación (IR) No todas las instrucciones durarán los mismo EX Sumador c.f. IF ID Multiplicador Divisor MEM WB DISCA 4

1. Operadores multiciclo (3) Operadores añadidos al DLX Sumador/restador de coma flotante.t ev =4 IR=1por ciclo Multiplicador entero/coma flotante.t ev =7 IR=1 por ciclo Divisor entero/coma flotante. T ev =24 IR=1 por 24 ciclos La fase MEM está vacía en operaciones multiciclo Ejemplo: add R1,R2,R3 IF ID EX ME WB addd F0,F2,F4 IF ID A1 A2 A3 A4 ME WB multd F6,F8,F10 IF ID M1 M2 M3 M4 M5 M6 M7 ME WB multd F4,F9,F10 IF ID M1 M2 M3 M4 M5 M6 M7 ME WB Divd F8,F12,F22 IF ID DIV DIV DIV DIV DIV DIV DIV

1. Op. Multiciclo: DLX EX MEM A1 A2 A3 A4 IF ID M1 M2 M3 M4 M5 M6 M6 WB DIV (24 ciclos) Necesidad de nuevos registros entre etapas Multiplexor en la entrada de WB Aparecen nuevos riesgos? DISCA 6

2. Dependencias: definición El problema: Sin multicilo pocos stall CPI 1 Con 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 DISCA 7

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. DISCA 8

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). DISCA 9

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 DISCA 10

2.2 Dependencias Estructurales EX MEM WB Enteros A1 A2 A3 A4 IF ID M1 M2 M3 M4 M5 M6 M6 WB Flotantes DIV (24 ciclos) DISCA 11

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,F2 SD 0(R2),F4 DISCA 12

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. DISCA 13

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,F2 SD 0(R1),F4 LD F0,-8(R1) ADDD F4,F0,F2 ;Dep. Control BEQZ R1,exit LD F10,0(R1) ADDD F4,F10,F2 SD 0(R1),F4 exit: DISCA 14

2.5 Dependencias: Resumen Indican la posibilidad de un riesgo. ILP Presencia simultanea de instrucciones dependientes en unidad segmentada riesgos Riesgos ciclos paradas CPI Dependencia De datos Antidependencia De salida De Control Riesgos posibles RAW WAR WAW De Control DISCA 15

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. DISCA 16

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,F4 ADDD F10,F0,F8 MULTD F12,F8,F14 DISCA 17

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 DISCA 18

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. DISCA 19

3.1 Algoritmo de Tomasulo(2) Unidad de ejecución entera EX MEM WB Enteros IF ID Load/Store Flotante Issue A1 A2 A3 A4 M1 M2 M3 M4 M5 M6 M6 WB Flotantes DIV (24 ciclos) Unidad de ejecución de coma flotante DISCA 20

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? DISCA 21

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,F4 ADDD F10,F0,F8 MULTD F12,F6,F8 Ejemplo2: DIVD F0,F2,F4 ADDD F10,F0,F8 ADDD F18,F2,F4 MULTD F12,F6,F10 DISCA 22

3.1 Algoritmo de Tomasulo(4) Memoria COLA DE INSTRUCCIÓNES Registros FP TAG-VALOR-DIRECCIÓN VALOR-DIRECCIÓN F1 VALOR F2 ETAPA ISSUE BUS COMÚN TAG VALOR VALOR TAG VALOR VALOR S/R M/D DISCA 23

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. DISCA 24

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 NOMBRE VALOR ó TAG F1 MARCA_1_ 234567 F2 TAG VALOR VALOR M/D BUS COMÚN MARCA_1_ 234567 DISCA 25

Tomasulo: Ejemplo 2 MULTF F1,F2,F3 f2=12.7 f3=33.12 op_1 MULTIP. F1 = op_1 DIVF F2,F1,F4 12.7 33.12 op_1 op_1 F4=127.12 op_2 F2 = op_2 MULTIP. DIVISOR F1 = op_1 ADDF F1,F2,F3 op_2 F3=33.12 op_3 12.7 33.12 op_1 op_1 127.12 op_2 F2 = op_2 SUMADOR MULTIP. DIVISOR F1 = op_3 DISCA 26

4.Aumento prestaciones Tiempo de ejecución de un programa: T e = I CPI T clk Segmentación CPI 1 Si quiero reducir T e Reducir el valor de CPI Superescalares Reducir instrucciones (I) VLIW Reducir T clk Supersegmentados DISCA 27

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 DISCA 28

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 DISCA 29

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: Mem1 Mem2 Aritmet_CF1 Aritmet_CF2 Entera/Salto DISCA 30

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,F2 SD 0(R1),F4 SUB R1,R1,#8 BNEZ R1,loop Mem1 LD F0,0(R1) LD F10,-16(R1) LD F18,-32(R1) LD F26,-48(R1) SD 0(R1),F4 SD 16(R1),F12 SD 32(R1),F20 SD 48(R1),F4 Mem2 LD F6,-8(R1) LD F14,-24(R1) LD F22,-40(R1) SD 8(R1),F8 SD 24(R1),F16 SD 40(R1),F24 Aritmet_CF1 ADDD F4,F0,F2 ADDD F12,F10,F2 ADDD F20,F18,F2 ADDD F28,F26,F2 Aritmet_CF2 ADDD F8,F6,F2 ADDD F16,F14,F2 ADDD F24,F22,F2 Entera/Salto SUB R1,R1,#56 BNEZ R1,loop

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 T clk 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. DISCA 32

Ejemplos máquinas reales Tipo Siguiente Instrucción Detección riesgos Reordenación Comentarios adicionales Ejemplos Super segmentado Estática HW Estática 8 etapas MIPS R4000 Pentium 4 Superescalar (estático) Dinámica HW Estática Ejecución en orden Sun UltraSparcII Sun UltraSparcIII Superescalar (Dinámico) Dinámica HW Dinámica Fuera de orden en algunas op. IBM Power2, PowerPC Superescalar (Especulación) Dinámica HW Dinámica y especulación Reordenación y especulación Pentium III y 4 MIPS R10K Athlon, Opteron PowerPC VLIW Estática SW Estática Sin riesgos entre inst. Trimedia, i860, Transmeta Crusoe EPIC Estática (Excepciones) SW/HW Estática (Excepciones) Compilador marca riesgos Itanium Itanium2 DISCA 33

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/ DISCA 34