1.2. Implementación de Procesadores Superescalares

Documentos relacionados
6. PROCESADORES SUPERESCALARES Y VLIW

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

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

Procesadores superescalares. Introducción

Paralelismo en monoprocesadores. Procesadores VLIW

TEMA 2: PARALELISMO INTERNO EN SISTEMAS COMPUTADORES SEGMENTACION

Procesadores segmentados. El DLX.

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

OBJETIVOS ALGUNAS CONSIDERACIONES SOBRE WINDLX

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

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

Arquitectura de Computadores. Tema 11. Pipelining Avanzado

SISTEMAS PARALELOS Y DISTRIBUIDOS. 3º GIC. PRÁCTICA 3. PLANIFICACIÓN ESTÁTICA AVANZADA. TMS320C6713

Explotación del paralelismo a nivel de instrucción

Arquitectura de Computadores. Tema 4 PROCESADORES SEGMENTADOS

Introducción a la arquitectura de computadores

Soluciones a los problemas impares. Tema 5. Memorias. Estructura de Computadores. I. T. Informática de Gestión / Sistemas

Arquitectura de Computadores II Clase #16

COMPUTADORES SEGMENTADOS (DLX)

Arquitectura de Computadores II Clase #7

Area Académica: Sistemas Computacionales. Tema: Elementos de diseño de memoria caché

Organización lógica Identificación de bloque

Procesadores Superescalares: Paralelismo Explícito a Nivel de Instrucción

202 PROBLEMAS DE ARQUITECTURA DE COMPUTADORES

ARQUITECTURA DE COMPUTADORAS

Arquitectura de Computadores II Clase #7

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

Procesador. Memoria. Ejemplo de un Procesador: MU0. Instrucciones. Direcciones. Registros. Datos. Instrucciones y datos SETI Tr.

Autor: Longinos Recuero Bustos

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

El nivel ISA (II)! Conjunto de Instrucciones

Memoria. Organización de memorias estáticas.

Planificación estática

Métodos para escribir algoritmos: Diagramas de Flujo y pseudocódigo

CICLOS DEL PROCESADOR

Resolución de los Ejercicios de la Hoja 4

Fecha de Introducción. Velocidad de reloj. Anchura del bus. Número de transistores. (microns) Memoria direccionable.

Superescalares y VLIW - 1. Arquitectura de Computadores

Tema 4.-INTRODUCCION A LAS ARQUITECTURAS PARALELAS

LECCIÓN 14: DISEÑO DE COMPUTADORES MEDIANTE MICROPROGRAMACION

Organización del Computador 1 Memoria Cache

TEMA 4. ARQUITECTURA IA-64

Arquitectura e Ingeniería de Computadores

Objetivos. Objetivos. Arquitectura de Computadores. R.Mitnik

CPU MEMORIAS CACHE. Memorias caché. Memoria caché = memoria de tamaño pequeño y acceso rápido situada entre la CPU y la memoria principal.

Instituto Tecnológico de Morelia

Qué es Pipelining? Es una técnica de implementación en la que se superpone la ejecución de varias instrucciones.

Introducción a la Computación. Capítulo 10 Repertorio de instrucciones: Características y Funciones

0.Principios del Microprocesador

TEMA III: OPERACIONES CON LOS DATOS

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

Síntesis arquitectónica y de alto nivel

Arquitecturas RISC v.2014

Organización del Computador I. Memoria Cache. Autor: Alejandro Furfaro

MEMORIA EJERCICIO 1 EJERCICIO 2

Tema V Generación de Código

Tecnologías y Arquitecturas

Estructura de Computadores

1) Se dispone de un computador de 32 bits con la siguiente estructura:

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

Arquitectura de Computadoras. Clase 5 Posibles soluciones a atascos

Procesadores Vectoriales

Tema 2. Arquitectura de CPU avanzadas 15/03/2011

Arquitectura Segmentada: Conceptos básicosb

Complejidad computacional (Análisis de Algoritmos)

Centro Asociado Palma de Mallorca. Tutor: Antonio Rivero Cuesta

FUNCIONAMIENTO DEL ORDENADOR

Tema: Microprocesadores

Tema 5 Diseño del Set de Instrucciones (ISA) Arquitectura de Computadoras

Procesadores Superescalares: Paralelismo Implícito a Nivel de Instrucción

PRACTICA 2 Ejercicio 2

Fundamentos de Hardware: Arquitectura de un ordenador

Paralelismo en monoprocesadores. Procesadores Superescalares

ISA (Instruction Set Architecture) Arquitectura del conjunto de instrucciones

3 - Arquitectura interna de un up

Arquitectura t de Computadores

Memorias RAM. Basilio B. Fraguela Rodríguez. Copyright Basilio B. Fraguela 2006

Tema 2. Diseño del repertorio de instrucciones

Arquitectura de Computadores. Apellidos, Nombre:

Unidad I: Organización del Computador. Ing. Marglorie Colina

Actividades de Teoría de Sistemas Operativos Sistemas informáticos multiusuario y en red

Espacio de direcciones de un proceso

El Diseño de un Lenguaje Máquina

Arquitectura de los Ordenadores (Teoría) Final Junio Mañana Pág 1 APELLIDOS Y NOMBRE GRUPO Nº EXPEDIENTE

Arquitectura de Computadores

Tema 2: Lenguaje máquina. La interfaz entre el hardware y el software

Organización del Computador. Memorias

Arquitectura de Computadores

Arquitecturas RISC. Arquitectura de Computadoras y Técnicas Digitales - Mag. Marcelo Tosini Facultad de Ciencias Exactas - UNCPBA

Qué es un programa informático?

Algoritmos. Medios de expresión de un algoritmo. Diagrama de flujo

Organización de la memoria

Estructura de Computadores. Contenido. Sistema de E/S. 7.- E/S y dispositivos periféricos

Paralelismo en monoprocesadores. Multithreading Ejecución de múltiples hebras

Gestión de Entrada-salida

Plataformas de soporte computacional: arquitecturas avanzadas,

Diseño del procesador MIPS R2000

Ejemplo, generación de #s aleatorios

Tema 1. Introducción a la arquitectura de computadores: diseño, coste y rendimiento

Memoria Cache. Departamento de Arquitectura de Computadores

Transcripción:

1.2. Implementación de Procesadores Superescalares Técnicas dinámicas: Complejidad alta desde el p. de v. de estructura o arquitectura Aquí las instrucciones son las normales o clásicas : compatibilidad de código. La idea teórica es fácil si se tienen varias U.F. (ver figura) DLX ENCADENADO CON VARIAS U.F. IDEA DE DLX SUPERESCALAR Enteros Enteros FP/Ent MUL IF ID ME WB FP ADD FP/Ent DIV IF ID? FP/Ent MUL? ME WB?? IF?? ID?? ME WB ADD FP FP/Ent DIV EA Cálc Direcc Lo difícil es la complejidad de la implementación, sobre todo la emisión (ID o IS). Dpto. Arquitectura y Tecnología de Computadores. ASP2: TEMA 1: Arquitecturas encadenadas avanzadas: pág 14

La fase de emisión juega un papel fundamental, y suele ser la más compleja y la que se alarga más al montar la superescalaridad: > Hay que detectar muchas más RAW en ella (de m instr) > Hay que decidir que instruc se pueden emitir (en función de las U.F. disponibles) > Hay que leer muchos registros a la vez (2m lecturas +m escrit. en la fase WB) > etc. Algunas máquinas (sobre todo primigenias, principios de los 90 y de sistemas empotrados), no disponen de planificación dinámica. En general, en estos procesadores, las m instrucciones deben cumplir ciertas reglas de emisión (fase ID) para que se emitan todas, (de lo contrario se emite un número menor que m). Si una se bloquea toda la cadena sería muy caro en cuanto a prestaciones: 1 ciclo de bloqueo se nota mucho más que en un encadenado. Ej.: Encadenado CPI = 1 + CPI bloq. Si CPI bloq = 0.2 A=1.2 Superescalar CPI= 1/m +CPI bloq. Si m=4, CPI bloq =0.2 A=(0.25+0.2)/0.25 =1.8 Tb existirán bloqueos de sólo algunas instrucciones de las m posibles. Ej: Superescalar m=4, donde en cada ciclo se consiguen ejecutar sólo 3 de las 4 instrucciones: IPC=3, CPI= 1/3 A=CPI/CPI ideal = 4/3 = 1.33 EJERCICIO: dibujar croquis del cronograma de estos casos. EJERCICIO: Calcular A si: en ciclos pares se ejec. m instr, pero en los impares sólo 1. Dpto. Arquitectura y Tecnología de Computadores. ASP2: TEMA 1: Arquitecturas encadenadas avanzadas: pág 15

Idem con las penalidades de fallo de caché, de fallo de predicción de BTB, etc. Influyen mucho en las prestaciones La tendencia en máquinas de propósito general es sofisticar al máximo para evitar cualquier bloqueo y reducir penalidades. De ahí que en estas máquinas los superescalares con planif dinámica se hayan impuesto. Los sistemas empotrados suelen llevar superescalares menos agresivos (o VLIW): > Menos transistores menos consumo. > Aplicaciones específicas (y generalm. en ROM) más fácil optimizar y sintonizar. Todas poseen EMISIÓN DINÁMICA: el procesador (ID) decide en tiempo de ejecución qué instrucciones pueden emitirse a la vez y cuales no (en los VLIW la emisión es estática, o casi estática cuando se apoya en ciertos bits del compilador: el compilador debe preparar las instrucciones a emitir para que no haya riesgos estructurales y rellena con NOP para evitarlos). Según la Emisión (Issue) y Planificación (Scheduling), siguientes modelos. Esto tampoco no es una clasificación rígida, sino modelos. Existen en la realidad muchos casos intermedios (cada procesador tiene sus peculiaridades, dependiendo de las tuberías que posee). Dpto. Arquitectura y Tecnología de Computadores. ASP2: TEMA 1: Arquitecturas encadenadas avanzadas: pág 16

Emisión Dinámica Planificación Estática (suponemos todos los bypasses). Instr. se encauzan por tuberías Dinámica (similar Algoritmo Tomasulo) Rígida (para que se emitan las m instr., deben estar en cierto orden en el código) El procesador no tiene hw para reconducir cada instr a su tubería No tiene sentido Flexible (se emitirán las m instr., sin importar el orden en que estén en el código) El procesador sí conduce cada instr a su tubería. Suelen existir reglas de emisión Superescalar planif. dinámica En los superescalares de planificación estática, suelen existir en la fase ID reglas de emisión. En ellos cada una de las m fases ID puede bloquearse por éstas (no ocurría en el DLX, excepto en las RAW de los saltos). TÉCNICAS DINÁMICAS ESPECTRO de máquinas con ILP TÉCNICAS ESTÁTICAS Superescalar con planificación dinámica, sin reglas de emisión Superescalar con planificación dinámica, pero con reglas de emisión Superescalar sin planificación dinámica, emisión dinámica (pero reglas de emisión) Superescalar sin planificación dinámica y emisión estática VLIW puro Dpto. Arquitectura y Tecnología de Computadores. ASP2: TEMA 1: Arquitecturas encadenadas avanzadas: pág 17

Proc. Superescalares con Planificación estática Recordar : IF ID MEM WB para procesadores sin planif dinámica. CONCEPTO: EMISIÓN depende de TUBERÍAS (cadenas) Trabajaremos con un caso simple de grado m=2, donde las dos tuberías o cadenas son casi totalmente independientes (muchos de los primeros superescalares eran así): o 1 Tubería FP o 1 Tubería INT + Acceso a Memoria o La única relación entre ambas tuberías, son los Ld/St para FP. Ejemplos simples para éste: o si las instrucciones vienen por parejas INT/FP: se emiten 2 instr en ese ciclo o si todas las instrucciones son INT (programa entero) se emiten 1 instr/ciclo o Los bloqueos de emisión suelen afectar a todas las tuberías (suponemos que la fase ID no se ha completado y no se ha decodificado totalmente la instr.: no se sabe cuál es y por tanto, no se puede continuar emitiendo otras) o Los bloqueos de datos afectan por separado a cada tubería (son casi independientes) excepto en los Ld/St para FP. Para evitar cualquier bloqueo por dependencia (un bloqueo es muy caro) vamos a suponer que sólo se producen los bloqueos estrictamente necesarios. Dpto. Arquitectura y Tecnología de Computadores. ASP2: TEMA 1: Arquitecturas encadenadas avanzadas: pág 18

En lugar de: FP MUL F1,F2,F3 IF ID M1 M2 M3 MEM WBF INT SF 0(R4),F1 IF ID - - MEM WBI FP ADDF F0,F4,F5 IF ID - - A1 A2 MEM WBF INT XOR R5,R1,R2 IF ID - - MEM WBI Ahora las dos cadenas o tuberías se montan lo más independientemente posibles, y por tanto quedaría así (los bloqueos de una no afectan a la otra). FP MUL F1,F2,F3 IF ID M1 M2 M3 MEM WBF INT SF 0(R4),F1 IF ID - - MEM WBI FP ADDF F0,F4,F5 IF ID A1 A2 - (*) MEM WBF INT XOR R5,R1,R2 IF ID - - MEM WBI Se han resaltado las fases que realmente usan recursos estructurales (U.F./acc. a caché datos, puertos de los fich registros); nótese que sólo se bloquea por la RAW la segunda tubería o cadena. NOTA: el ciclo de bloqueo de la primera tubería marcado con (*), sería más correcto dibujar en WBF, puesto que MEM no hace nada para FP. Recordar. no permitimos emisión fuera de orden (out of order issue) Si se bloquea ID, se deben bloquear todas las instr. posteriores. Dpto. Arquitectura y Tecnología de Computadores. ASP2: TEMA 1: Arquitecturas encadenadas avanzadas: pág 19

Implementación (Superescalares Planif. estática) IF: Políticas de búsqueda: ventana de instrucciones > Un superescalar de grado m puede lanzar o emitir hasta m instrucciones por ciclo, de forma que la caché debe ser capaz de atender esta demanda. Aumentar el ancho del bus de datos del caché sólo supone invertir más (chip mayor o de tecnología más precisa). Recordar que lo que no se puede rebajar son los tiempos de latencia ( no se puede sobrepasar la velocidad de la luz!!) > El conjunto de instrucciones leídas en IF y susceptibles de entrar en las cadenas se le denomina ventana de instrucciones. Dos tipos de implementaciones: - Ventana fija: hasta que no se han lanzado o emitido todas las instrucciones de la ventana en su cadena correspondiente, no se puede acceder a caché a por otras m instrucciones (el búfer que recoge las instrucciones es fijo; está unido al bus). - Ventana deslizante: A medida que las instrucciones se van emitiendo a su correspondiente tubería, nuevas instrucciones son leídas de la caché para rellenar las posiciones inferiores de la ventana. Debe existir un registro (búfer) de desplazamiento. Más complejidad de IF, pero actualmente (para superesc. planif estática) es habitual que IF u otra fase prepare las m instr. siguientes para ID. Prestaciones mucho mayores sin gran complejidad. (unidad o búfer de prebúsqueda, prefetch buffer). Problema si las m instrucciones están en dos líneas distintas de caché Dpto. Arquitectura y Tecnología de Computadores. ASP2: TEMA 1: Arquitecturas encadenadas avanzadas: pág 20

ID > Se distribuyen (emisión) las instrucciones en la fase ID por tuberías (cadenas) con los bypasses necesarios entre ellas. > Suele haber reglas de emisión o emparejamiento. Ejemplos de reglas de emisión: - No tener RAW ni WAW (Pentium y otros). Nosotros supondremos que el bloqueo se producirá en la fase que necesita el dato. - Ir en cierto orden (ej: 1º entera/ld/st/salto y 2º flotante, HP 7100) o estar balanceadas en ciertos porcentajes (ej: Una entera/ld/st/salto y otra flotante, en cualquier orden). Hw simple porque la primera tubería es entera y la segunda es flotante: usan recursos distintos, excepto instrucc. Ld/St de FP. - Aquí la planificación estática o scheduling (del compilador) puede jugar un papel importante e intentar agrupar instrucciones sin dependencias y que cumplan los criterios. En general podemos hablar de dos modelos de emisión para los de planif estática: Emisión rígida: Superescalar de planificación estática y emisión rígida. Las instrucciones son emitidas desde la ventana de instrucciones (buffer de instrucciones de la fase IF) en el mismo orden en que llegaron, de manera que si una instrucción no es para la tubería (cadena) que le corresponde por su posición en la ventana, en el siguiente ciclo repetirá su etapa ID pero para otra cadena. Si tiene ventana fija: idea similar a VLIW pero con emisión dinámica. Dpto. Arquitectura y Tecnología de Computadores. ASP2: TEMA 1: Arquitecturas encadenadas avanzadas: pág 21

(ej: 1º entera/ld/st/salto y 2º flotante, HP 7100, Alpha 21064) Sólo han de replicarse las IF, ID, y más puertos en WB. MEM se deja igual (se permite un único acc. a mem.). En se aprovechan las mismas U.F. Ej: El procesador Pentium (1992) fue un superescalar sin planif dinámica, construido alrededor de dos tuberías casi genéricas, capaces de ejecutar dos instrucciones en paralelo. Las tuberías son denominadas como U y V, y al proceso de emisión de dos instrucciones en paralelo se le llama emparejamiento. La tubería U puede ejecutar cualquier instrucción de la arquitectura Intel (tubería genérica), mientras que la tubería V puede ejecutar sólo las instrucciones simples (similares a las de un RISC, ver tabla 1). Cuando dos instrucciones se emparejan, la instrucción emitida en la tubería V es siempre la siguiente instrucción, (secuencialmente hablando según el código original) a la emitida en la tubería U. Las dos instrucciones no pueden tener dependencia RAW, ni WAW, y deben de cumplir ciertas restricciones (relacionadas con instr. CISC). Los saltos sólo pueden ser emparejados si van en la tubería V (se permite el emparejamiento de las instrucciones de comparación CMP o TEST, que escriben sobre una bandera (bit de estado), con un salto condicional (Jcc, cc=ne, EQ, GE, LE, NZ, etc.), que lea esa misma bandera). EJERCICIO: Qué tipo es? Está claro que el Pentium debe tener replicada la unidad entera (dos U.F. ALU INT, una en cada tubería). Además la decodificación de las instrucc. CISC es compleja y sólo dispone de un decodificador para ellas. Vamos a suponer que siempre se emite al menos una instrucción por ciclo (si no, sería peor que un encadenado) Emisión rígida no resulta eficiente cuando el compilador no hace una buena planificación estática al ordenar instrucciones según las cadenas. Presentará bloqueos debidos a dependencias estructurales cuando la instrucción o instrucciones no estén en el mismo orden que las cadenas. Dpto. Arquitectura y Tecnología de Computadores. ASP2: TEMA 1: Arquitecturas encadenadas avanzadas: pág 22

Emisión flexible: Superescalar de planificación estática y emisión flexible. Una instrucción de la ventana de instrucciones puede entrar en cualquier cadena que esté libre y admita dicha instrucción. Esta cualidad necesita de más complejidad en la cadena, que englobaremos en una nueva etapa SW (swap) donde las instrucciones son redirigidas a la cadena correspondiente. Esta etapa será para nosotros posterior a ID (IF ID SW MEM WB). Cuando una instrucción no pueda entrar en ninguna cadena tendrá que esperar al siguiente ciclo. > Como vemos poco a poco se va complicando la fase ID/SW (o IS), que es quizás el principal cuello de botella de los superescalares. Vamos a suponer que en la fase van todas las U.F. (Si queremos independizar la ALU INT de los accesos a memoria, sólo hace falta añadir un sumador para calcular la dirección de acceso (EA, Effective Address). MEM: Vamos a suponer sólo un acceso a la vez (estos superesc. son sencillos) WB: Habrá que escribir en el fichero INT y FP a la vez. Si los Ld/St de FP están en la primera tubería, necesitan acceder al Fich de Reg FP en WB o ID. Contención en el fichero de registros por múltiples accesos. Si además el resultado del LD es usado por la instrucción FP tendremos un riesgo RAW. O esta contención es un riesgo estructural (que podría bloquear) o se duplican los puertos del fichero de registros. Dpto. Arquitectura y Tecnología de Computadores. ASP2: TEMA 1: Arquitecturas encadenadas avanzadas: pág 23

> A pesar de ser emisión flexible, sigue bloqueándose cuando las parejas o el balanceo de instrucciones no es el adecuado. Ej.(se ha puesto un subíndice en los decodificadores para aclarar más la ejecución) Int ID Int ID SW Int - ID FP ID SW Int - ID Int ID SW FP ID FP ID SW FP ID Int ID SW FP - ID FP ID SW IPC= 6 instr/5 ciclos IPC= 6 instr/3 ciclos = 2 En proc reales, ID serían varias subetapas, y los bloqueos estarían en una de ellas. Habría que duplicar la U.F. INT como en el Pentium (el % instr. INT es mayor que el de FP), para evitar esto. Pero entonces... > Para m mayor y para evitar esto, interesa más la Planificación dinámica. Además las técnicas dinámicas aseguran la compatibilidad siempre. EJEMPLOS DE CASOS EMISIÓN Y VENTANA DE INSTR. Dpto. Arquitectura y Tecnología de Computadores. ASP2: TEMA 1: Arquitecturas encadenadas avanzadas: pág 24

Ejemplo 2: Superescalar planif. estática Supongamos un DLX superescalar de grado 2 (sin planificación dinámica) con las siguientes reglas de emisión: o 1 tubería de operación INT/salto/Acceso a memoria o 1 tubería de FP Notar que la detección de dependencias de datos (p. ej. RAW) la hace el hardware, pero los bloqueos hardware detienen la tubería. Sería interesante que el compilador reordenara las instrucciones para atenerse a las reglas de emisión y para evitar dependencias de datos. Supongamos (similar al DLX, duración FP=4 ciclos). Las UF están totalmente segmentadas (esto es habitual hoy día). Instrucción que Instrucción Latencia genera un dato que lo usa FP ALU otra FP ALU 3 FP ALU Store (FP) 2 Load (FP) FP ALU 1 Load (FP) Store (FP) 0 Se pide: Dpto. Arquitectura y Tecnología de Computadores. ASP2: TEMA 1: Arquitecturas encadenadas avanzadas: pág 25

a) Estudiar los conflictos estructurales b)dibujar un cronograma y hallar el IPC, y el número de ciclos por elemento del vector procesado c) Desenrollar el código dado en 5 iteraciones y reordenar en función de las reglas de emisión y las dependencias. d)comparar prestaciones y tamaño de código con el no desenrollado (notar que al desenrollar, el número de ciclos por elemento es la medida que interesa). e) Influye en el IPC la restricción en el orden de la pareja a emitir (emisión rígida/flexible)? Proponer un código donde influya. Suponer BTB que siempre acierta. Suponer que ID/SW es una sola fase ID. for (i=n-1; i>0; i++) x[i] = x[i] +s; //N es divisible por P // F2 s ; R1 &x[n-1] Loop: LD F0, 0(R1) ADDD F4, F0, F2 SD 0(R1), F4 SUBI R1, R1, 8 BNEZ R1, Loop Dpto. Arquitectura y Tecnología de Computadores. ASP2: TEMA 1: Arquitecturas encadenadas avanzadas: pág 26