820 likes | 1.44k Views
Arquitectura. Introducción Paralelismo de grano muy fino Paralelismo en la familia 80x86. Introducción. Paralelismo. Introducción y generalidades Paralelismo producido internamente dentro de la CPU Paralelismos a nivel de máquina . Introducción al paralelismo.
E N D
Arquitectura • Introducción • Paralelismo de grano muy fino • Paralelismo en la familia 80x86
Introducción Paralelismo. • Introducción y generalidades • Paralelismo producido internamente dentro de la CPU • Paralelismos a nivel de máquina
Introducción al paralelismo Introducción y generalidades Definición y conceptos asociados al paralelismo.
Introducción al paralelismo Paralelismo producido internamente dentro de la CPU • Estructura pipeline. • Arquitectura RISC. • Arquitecturas superescalar y supersegmentada. • Aplicación a las familias de Intel 80x86 y Pentium.
Introducción al paralelismo Paralelismos a nivel de máquina • Máquinas para el aprovechamiento del paralelismo de datos. • Multiprocesadores. • Arquitecturas específicas diseñadas para ámbitos de aplicación concretos.
Introducción al paralelismo Necesidades de mayor capacidad de computación: • Tratamiento de complejos modelos matemáticos (meteorología, ecología, bioquímica, …) • Manejo masivo de datos en tiempo real, fundamentalmente aplicables al campo de las comunicaciones. • Explotación de grandes bases de datos; extracción de patrones y tendencias de los datos. • Aplicaciones multimedia: imágenes de alta definición, música de alta fidelidad, reconocimiento del lenguaje hablado... • Inteligencia artificial y sistemas expertos.
Introducción al paralelismo Mejora de la capacidad de computación: • Aumento de la velocidad (frecuencia de funcionamiento de los circuitos electrónicos). Limitaciones tecnológicas y físicas. • Uso del Paralelismo. Paralelismo: Capacidad de una máquina para simultanear acciones. Vinculado al aumento del rendimiento de la máquina (velocidad, capacidad de proceso).
Introducción al paralelismo Exclusiones: • Simultaneidad entre acciones de CPU y periféricos (Operaciones en segundo plano). • Redundancia en procesos para conseguir fiabilidad.
Introducción al paralelismo Estructuras que producen el paralelismo: Unidades funcionales: Cada parte de una máquina capaz de realizar acciones indpendientemente del resto. Configuración de las UFs. • Pipeline (segmentada). • Paralela. • Pseudopipeline.
Introducción al paralelismo Configuración pipeline:
Introducción al paralelismo Configuración pipeline: • Conexión en cascada, cada unidad recibe como entrada la salida de la anterior. • Acciones uniformes en fases y tiempos. • Solapa el tiempo de proceso de las acciones. • Una acción finalizada en cada intervalo si la cadena está llena.
Introducción al paralelismo Configuración paralela:
Introducción al paralelismo Configuración paralela: • Las entradas y las salidas son comunes a todas las unidades. • UFs sincronizadas. • Las acciones se realizan completas en cada UF. • Conflicto: acceso a recursos compartidos.
Introducción al paralelismo Configuración pseudopipeline:
Introducción al paralelismo Configuración pseudopipeline : • Conexión de UFs en paralelo. • Desfase en la entrada de acciones de n ciclos ( al menos 1). • Resultado indistinguible de PIPELINE. • Reduce conflictos de PARALELA pero obtiene peor respuesta en el tiempo.
Introducción al paralelismo Conflictos del paralelismo, tipos : • Desajustes de tiempo: Diferentes tiempos entre diferentes UFs. Imponen parones en el pipeline. • Accesos a recursos compartidos: Afectan fundamentalmente a configuraciones paralelas. • Dependencias: Afectan a la simultaneidad de acciones. • De operandos • De saltos (condicionales e incondicionales)
Introducción al paralelismo Conflictos del paralelismo: Parón en un pipeline
Introducción al paralelismo Grado de paralelismo: • Número de acciones simultáneas que se realizan. • Aplicable a la máquina o a parte de ella. • El máximo lo establece el número de unidades funcionales existentes. • Queda limitado por las características de la aplicación en curso.
Introducción al paralelismo Eficiencia: • Relación entre el Grado de paralelismo conseguido y la capacidad teórica de paralelismo de la máquina. • El aumento de UFs, aumenta los conflictos y disminuye la eficiencia. • Se trabaja con valores medios.
Introducción al paralelismo Grano de paralelismo: Tamaño de cada una de las acciones en las que se divide el proceso para su realización simultánea. Clasificación cualitativa: • Muy grueso: programas. • Grueso: subprogramas, tareas hijas, ... • Fino: instrucción. • Muy fino: fases de instrucción. Clasificación cualitativa: Medido en nº de instrucciones
Introducción al paralelismo Tipos de paralelismo: En función de quién especifique las acciones que se pueden realizar simultáneamente. • Explícito: El propio programa identifica las acciones (programación concurrente). • Implícito: No lo especifica el programa sino la máquina. • Por azar: Acciones independientes. Entorno multiusuario. • Extraído por la máquina (compilador).
Introducción al paralelismo Fuentes de paralelismo: Control. Diferentes acciones que se pueden realizar simultáneamente.
Introducción al paralelismo Fuentes de paralelismo: Datos. Misma acción sobre un conjunto estructurado de datos.
Introducción al paralelismo Fuentes de paralelismo: Flujo. Mismos procesos sobre una gran conjunto de datos.
Introducción al paralelismo Clasificación de Flynn: • También conocida como taxonomía de Flynn • Surge en los principios de los 70 • Aunque no es definitiva para caracterizar todos los tipos de ordenadores se sigue utilizando como una primera aproximación para definir un ordenador. • Concibe al ordenador como un conjunto de unidades de cjto. de uds. de control y proceso. • Esas uds. reciben flujos de instrucciones y de datos.
Introducción al paralelismo Clasificación de Flynn: Computadora SISD: (Single instruction (flow), single data(flow). Sistemas clásicos de monoprocesadores.
Introducción al paralelismo Clasificación de Flynn: Computadora SIMD: (Single instruction (flow), multiple data(flow). Sistemas vectoriales y matriciales.
Introducción al paralelismo Clasificación de Flynn: Computadora MISD: (Multiple instruction (flow), single data(flow). Enunciado de forma teórica. Se discute si hay alguna máquina de este tipo. Quizás los ordenadores sistólicos
Introducción al paralelismo Clasificación de Flynn: Computadora MIMD: (Multiple instruction (flow), multiple data(flow). Pertenecen a esta categoría los sistemas pluriprocesadores.
Introducción al paralelismo Clasificación de Flynn:
Paralelismo de grano muy fino RISC vs. CISC: Años 80. Implantación de modelos de control del rendimiento. Nueva tecnología RISC: Simplificar la unidad de control para mejorar su eficiencia. Tecnología CISC: La existente hasta el momento. Instrucciones muy complejas, a veces específicas y muy numerosas. • Salto semántico. • Reducción de los ciclos de fetch. • Tamaño del programa.
Paralelismo de grano muy fino Procesadores CISC: Consecuencias. • Compiladores simples. • Unidades de control complejas, microprogramadas. • Bajo rendimiento en cadenas pipeline.
Paralelismo de grano muy fino Procesadores CISC: Ejecución deuna instrucción:
Paralelismo de grano muy fino Procesadores CISC: Lectura delos operandos:
Paralelismo de grano muy fino Procesadores CISC: Almacenamientodel resultado:
Paralelismo de grano muy fino Procesadores CISC: Pipeline de dos etapas (instrucciones poco homogéneas): • Conflicto de desajuste de tiempos. • Conflicto de acceso a recursos. • Conflicto de dependencia de saltos. • No hay conflicto de dependencia de operandos.
Paralelismo de grano muy fino Procesadores CISC: Pipeline de seis etapas: Máquinas de una sola dirección sin direccionamiento indirecto ni ejecución múltiple. • Pasos 3, 5, y 9 una sola vez. • Pasos 4, 7 y 8 desaparecen.
Paralelismo de grano muy fino Procesadores CISC: Pipeline de seis etapas, conflictos: • Desajustes de tiempos. Inevitables. No usar toda las UFs. Tipo de instrucciones o dir. Fallos de caché. • Acceso a recursos: FE, LO y ER acceden a memoria Sol: Más registros, caché doble pto., doble caché. • Dependencia de operandos: Requiere identificación para evitar errores, reduce el rendimiento. • Operandos registros: Bit de bloqueo. • Operandos en memoria: Lista de direcciones bloqueadas. • Dependencia de saltos.
Paralelismo de grano muy fino Proc. CISC. Dependencia de operandos: Ejemplo: A + B A C + (A + 8) C
Paralelismo de grano muy fino Proc. CISC. Dependencia de saltos: • Saltos incondicionales: Identificación temprana, más simple. Durante FE o LO. • Saltos condicionales: Incertidumbre. Pérdida de rendimiento. • Salto retardado (Se verá en procesadores RISC). • Flujos múltiples. • Precaptar destino del salto. • Buffer de bucles. • Predicción de salto.
Paralelismo de grano muy fino Proc. CISC. Dependencia de saltos: • Flujos múltiples. • Duplicar primeras etapas del pipeline. • Se opta por los dos caminos y cuando se ejecuta la instrucción se descarta el camino fallido. • A veces más de dos caminos para trabajar con instrucciones de salto condicional encadenadas. • Aumento significativo de los conflictos de acceso a los recursos (memoria). • Eliminación de la mayoría de los huecos debidos a saltos.
Paralelismo de grano muy fino Proc. CISC. Dependencia de saltos: • Precaptar destino del salto. • Leer la siguiente instrucción y la del destino del salto. • Se limita a la fase de fetch de ambas instrucciones. • Reduce el hueco en el pipeline.
Paralelismo de grano muy fino Proc. CISC. Dependencia de saltos: • Buffer de bucles. • Similar a una cola de Prefetch pero de mayor tamaño. • Se pone en marcha al detectar un salto condicional hacia atrás (típico de los bucles). • Se pretende mantener en la cola todas las instrucciones del bucle. • Si sobra espacio se almacenan también las instrucciones que siguen al bucle. • Importante ahorro de ciclos de fetch en bucles pequeños.
Paralelismo de grano muy fino Proc. CISC. Predicción de saltos: Optar por una alternativa: Saltar / No saltar. Si acierta sigue, si no deshacer proceso realizado (FE, DE, CD y LO). • Criterios estáticos, no depende de la historia anterior. • No cumple condición. Alternativa más simple. • Cumple condición. Mantener antiguo PC. • Decisión según el código de operación. Instr. bucle. • Evaluación previa de la condición. Ayuda del compilador. Consideraciones: • Dirección del salto. • Entornos paginados y saltos de página.
Paralelismo de grano muy fino Proc. CISC. Predicción de saltos: • Saltos dinámicos, depende de la historia anterior. • Conmutador saltar/ no saltar. Asignación de un estado a cada instrucción de salto. Al ejecutarla se observa el resultado, que podrá cambiar de nuevo el estado. • Tabla de historias de saltos (BHT). Similar al anterior, almacena además del estado la dirección de destino del salto. Mayor tamaño de la tabla y no aplicable a todos los direccionamientos.
Paralelismo de grano muy fino Proc. CISC. Predicción de saltos: Saltos dinámicos, diferentes ejemplos:
Paralelismo de grano muy fino Proc. CISC. Predicción de saltos: Saltos dinámicos, diferentes ejemplos:
Paralelismo de grano muy fino Procesadores RISC. • Justificación: • Instrucciones complejas poco utilizadas. • Set amplio y complejo Mayor dificultad de optimización. • Instrucciones y operandos largos posible mayor uso de memoria a pesar del menor número de instrucciones. • Ciclos de fetch más largos y cambios de página frec. • Efectividad pipeline mermada por los desajustes de tiempos. • Solución: Conjunto de instrucciones simples, uniformes, generales y poco numerosas.
Paralelismo de grano muy fino Procesadores RISC. • Principios generales: • Aumentar el número de registros internos del micro. Esto reduce los conflictos de acceso a memoria y el tiempo empleado. • Optimizar diseño del pipeline para mejorar su rendimiento. Una instrucción por ciclo. Evitar conflictos y desajustes de tiempos. • Conjunto de instrucciones limitado, sencillo y homogéneo. Única manera de mejorar el pipeline.
Paralelismo de grano muy fino Procesadores RISC. • Características: • Instrucciones de mismo tamaño (32 bits) y mismo formato. Facilita diseño decodificador y control de ajuste de tiempos. • Unidad de control cableada. Mejora de la eficiencia. • Pocos modos de direccionamiento de memoria. No al direccionamiento indirecto. • Máximo un operando en memoria. • Instrucciones de proceso (ALU) sólo con registros. • Operandos en memoria siempre alineados.