EMISION MULTIPLE DE INSTRUCCIONES

Slides:



Advertisements
Presentaciones similares
Procesadores Superescalares
Advertisements

El modelo de Von Neumann
Arquitectura Introducción Paralelismo de grano muy fino
UNIVERSIDAD DEL VALLE DE MEXICO CAMPUS CHAPULTEPEC
1.3. PROGRAMACION PARALELA
PROCESADORES SUPERESCALARES
Microprocesadores.
Fecha: 11/09/13.  Todos los sistemas distribuidos constan de varias CPU, organizadas de diversas formas.  La forma de interconectarlas entre sí. 
Pipelines: Riesgos.
ALGORÍTMICA Dpto. Ingeniería de Sistemas y Automática
Tema II Unidad de memoria. 2 Unidad de memoria 2.1 Definiciones y conceptos básicos Localización Capacidad Unidad de transferencia
EL Sistemas Digitales Ing. José Alberto Díaz García Escuela de Ingeniería Electrónica Arquitectura Segmentada Pipeline (Segmentación)
Arreglos Ing. Nahiby Castillo.
Unidad 3. Arquitecturas SIMD
Composición Interna de un Procesador
Este obra se publica bajo unalicencia de Creative Commons Reconocimiento- NoComercial-CompartirIgual 3.0 España.licencia de Creative Commons Reconocimiento-
Tema 6: Procesadores Vectoriales
PLANIFICACIÓN DINÁMICA DE INSTRUCCIONES
Introducción a la Ingeniería en Sistemas
INGENIERIA DE COMPUTADORES II
ARQUITECTURAS SIMD TIPOS
ARQUITECTURA DE MÁQUINAS COMPUTADORAS III
TABLAS Definición. El tipo tabla permite definir objetos formados por un conjunto de elementos del mismo tipo. Ejemplos. El tipo tabla se utiliza para.
Programación en los procecesadores Intel® Multi Core.
P(C) = m * nMAXIMO GRADO DE PARALELISMO WSBS ha sido llamado el procesamiento en serie de bits, ya que se procesa un bit por vez (n = m = 1). Es el procesamiento.
5º Microprocesadores para comunicaciones
Procesador Introducción - Funcionamiento - Memoria caché
Segmentación No Lineal
Estructura y Tecnología de Ordenadores Noviembre 2004.
INSTITUTO TECNOLÓGICO DE CD. GUZMÁN
Clase 10: Estructuras de datos y arreglos.
Arquitectura de Máquinas Computadoras II
Memoria Cachés. Universidad de SonoraArquitectura de Computadoras2 Introducción Caché es el nivel de memoria situada entre el procesador y la memoria.
Universidad Tecnológica de la Selva Ing. Emmanuel Gordillo Espinoza.
Contenido Marco de referencia Arquitectura de computadoras paralelas
ARQUITECTURAS SIMD Clase Práctica No Vector Processor M-M 1. Estime el tiempo de ejecución de una suma vectorial en un Vector Processor M-M basado.
INTRODUCCIÓN FACTORES QUE IMPULSAN LA RENOVACIÓN EN ARQUITECTURA
TEMA 2: Organización de computadores
Organización de Computadoras
UNIDAD 2. ALGORITMOS Y ESTRUCTURAS DE DATOS.
Diseño de la Unidad de Control Multiciclo: Microprogramación
TEMA 10. SISTEMAS OPERATIVOS DISTRIBUIDOS
Inst. Tec. de Morelia ISC BASES DE DATOS DISTRIBUIDAS VERANO DEL 2006 MC. Anastacio Antolino Hernández TAXONOMÍA DE FLYNN.
14 de diciembre de 2005 Universidad de Murcia1 Modelos de computadores paralelos Domingo Giménez Departamento de Informática y Sistemas Universidad de.
Nombre: Cristian Achina Curso: 4to «A» Fecha:
Microprocesador para el cálculo de la transformada rápida de Fourier ( CEMISID-FFT) - Andrade P. Liliana L. - Díaz M. Omar A. - Erazo P. Amilcar J. - Fuguet.
ALGORITMOS La palabra algoritmo se deriva de la traducción al latín de la palabra árabe alkhowarizmi, nombre de un matemático y astrónomo árabe que escribió.
Magnitudes físicas Escalares Vectoriales
Sistemas Operativos Avanzados
Universidad Politécnica de Tulancingo Catedrático Ing. Jorge Luis Neri Trejo Asignatura Ing. De Hardware III Tema Procesamiento Paralelo Presenta Verónica.
Microprocesador.
Fundamentos de Sistemas Expertos
ARQUICTECTURA DE SERVIDORES
ARQUITECTURA ALTERNATIVA DE SERVIDORES SISTEMAS OPERTIVOS DE RED En un sistema operativo de red los usuarios saben que están conectados a la red y que.
PROCESADORES SUPERESCALARES
Son los atributos de un sistema que son visibles para un programador, es decir aquellos atributos que impactan directamente en la ejecución lógica de un.
Principio unidad 1.
* UNIVERSIDAD TECNOLOGICA DE PUEBLA TECNOLOGIAS DE LA INFORMACION Y COM. AREA REDES Y TELECOMUNIC IONES ADMINISTRACION DE SERVIDORES «ARQUITECTURA DE COMPUTADORAS»
ARQUITECTURAS DE LOS SERVIDORES El computador tiene 2 aspectos para entender su funcionamiento al nivel de programación: Almacenamiento Procesamiento Para.
75.41 Algoritmos y Programación II Cátedra Ing. Patricia Calvo Complejidad algorítmica.
Programación de Sistemas
SISTEMAS OPERTIVOS DE RED Los usuarios están conectados a la red y que pueden compartir recursos. Cada equipo ejecuta con sus propios recursos su propio.
Santiago Restrepo Rodríguez
La CPU Leidy Yazmin Castro Santana II semestre Formacion Complementaria Grado
Trabajo practico: Microprocesadores Escuela: Rodolfo Walsh Rodolfo WalshRodolfo Walsh Materia: Tecnologia| Tecnologia Profesor: Gustavo Cucuzza Integrantes:
UNIVERSIDAD TECNOLÓGICA DE PANAMÁ Facultad de Ingeniería de Sistemas Computacionales Programa de Lic. en Informática Educativa Computación.
Arquitectura de Computadoras (Taller) Semestre II de 2008.
ORGANIZACIÓN DE COMPUTADORAS DRA. LETICIA FLORES PULIDO.
Hiperpipeline Superescalares Arquitectura de Computadoras 2012.
Transcripción de la presentación:

EMISION MULTIPLE DE INSTRUCCIONES

ARQUITECTURA AVANZADA TRABAJO REALIZADO POR UCIEL COHEN

PROCESADORES VECTORIALES INTRODUCCION QUE ES UN VECTOR? “Secuencia de datos escalares del mismo tipo almacenados en memoria” DEFINICION DE PROCESADOR VECTORIAL “Conjunto de recursos para efectuar operaciones sobre vectores”

PROCESAMIENTO VECTORIAL Operando Vectorial Cada componente del vector es un escalar de cualquier tipo (entero, punto flotante, etc.). Instrucción Vectorial Paralelismo en operaciones

PROCESAMIENTO (CONT.) Las instrucciones vectoriales tienen unas propiedades importantes y que significan ventajas sobre las instrucciones escalares: El cálculo de cada resultado es independiente de los resultados anteriores en el mismo vector Una sola instrucción vectorial especifica una gran cantidad de trabajo. El requisito de anchura de banda de las instrucciones se reduce considerablemente. Las instrucciones vectoriales que acceden a memoria tienen un patrón de acceso conocido. Si los elementos de la matriz son todos adyacentes, entonces extraer el vector de un conjunto de bancos de memoria entrelazada funciona muy bien.

TIEMPOS DE EJECUCION VECTORIAL Factores que influyen en el tiempo de ejecución de una secuencia de operaciones vectoriales: La longitud de los vectores sobre los que se opera. Los riesgos estructurales entre las operaciones. Las dependencias de datos. Dada la longitud del vector y la velocidad de inicialización, que es la velocidad a la cual una unidad vectorial consume nuevos operandos y produce nuevos resultados, podemos calcular el tiempo para una instrucción vectorial

TIEMPOS (CONT.) Tiempo de arranque vectorial y tasa de inicialización Unidades de carga/almacenamiento vectorial

Características de los lenguajes para proceso vectorial Objetivo: paralelismo de algoritmos Flexibilidad para declarar diferentes clases de objetos con distintas estructuras y formas de almacenamiento. Efectividad para la manipulación de matrices y vectores dispersos, (la mayoría de sus elementos nulos). Disponer de operaciones vectoriales nativas que trabajen directamente con las estructuras de datos anteriormente declaradas sin necesidad de bucles. Ejemplos reales de computadores vectoriales cray-1, Cyber-205, IBM-3090, Earth Simulator

TAXONOMIA DE FLYNN Las cuatro clasificaciones definidas por Flynn se basan en el número de instrucciones concurrentes y en los flujos de datos disponibles en la arquitectura: Una instrucción, un dato (SISD) Múltiples instrucciones, un dato (MISD) Una instrucción, múltiples datos (SIMD) Múltiples instrucciones, múltiples datos (MIMD)

PROCESADORES SUPERESCALARES “término utilizado para designar un tipo de micro-arquitectura de procesador capaz de ejecutar más de una instrucción por ciclo de reloj” El término se emplea por oposición a la micro-arquitectura escalar que sólo es capaz de ejecutar una instrucción por ciclo de reloj. En la clasificación de Flynn, un procesador superescalar es un procesador de tipo MIMD (multiple instruction multiple data).

PROCESADORES SUPERESCALARES(CONT.) La micro-arquitectura superescalar utiliza el paralelismo de instrucciones además del paralelismo de flujo. La estructura típica de un procesador superescalar consta de un pipeline con las siguientes etapas:  • Lectura (fetch) • Decodificación (decode) • Lanzamiento (dispatch) • Ejecución (execute) • Escritura (writeback).  • Finalización (retirement)

PROCESADORES SUPERESCALARES(CONT.) El procesador maneja más de una instrucción en cada etapa. El número máximo de instrucciones en una etapa concreta del pipeline se denomina grado, así un procesador superescalar de grado 4 en lectura (fetch) es capaz de leer como máximo cuatro instrucciones por ciclo. El grado de la etapa de ejecución depende del número y del tipo de las unidades funcionales.

TIPOS DE DEPENDENCIA Un procesador superescalar es capaz de ejecutar más de una instrucción simultáneamente únicamente si las instrucciones no presentan algún tipo de dependencia (hazard). •Dependencia estructural :cuando dos instrucciones requieren el mismo tipo unidad funcional y su número no es suficiente.  • Dependencia de datos :cuando una instrucción necesita del resultado de otra instrucción para ejecutarse, por ejemplo R1<=R2+R3 y R4<=R1+5.  • Dependencia de escritura o falsa dependencia o nombre: cuando dos instrucciones necesitan escribir en la misma memoria, por ejemplo R1<=R2+R3 y R1<=R1+5.  • Dependencia de control: cuando una instrucción depende de una estructura de control y no se puede determinar el flujo correcto hasta la evaluación de la estructura de control, por ejemplo, if R1<="R4+R5" else="" r6<="R7+5." La detección y resolución dinámica de las dependencias entre instrucciones suele realizarse mediante alguna variante del algoritmo de Tomasulo que permite la ejecución de instrucciones en un orden distinto al del programa también llamada ejecución en desorden

PROCESADORES VLIW Very Long Instruction Word. Arquitectura de CPU que implementa una forma de paralelismo a nivel de instrucción. Es similar a las arquitecturas superescalares, ambas usan varias unidades funcionales (por ejemplo varias ALUs, varios multiplicadores, etc.) para lograr ese paralelismo. Los procesadores con arquitecturas VLIW se caracterizan por tener juegos de instrucciones muy simples en cuanto a número de instrucciones diferentes, pero muy grandes en cuanto al tamaño de cada instrucción. Esto es así porque en cada instrucción se especifica el estado de todas y cada una de las unidades funcionales del sistema, con el objetivo de simplificar el diseño del hardware al dejar todo el trabajo de planificar el código en manos del programador/compilador, en oposición a un procesador superescalar, en el que es el hardware en tiempo de ejecución el que planifica las instrucciones.

SEGUIMIENTO DE PROGRAMACION Muchos compiladores para procesadores ILP de primera generación utiliza un método de tres fases para generar código. Las fases fueron: Generar un programa secuencial. Analizar cada bloque básico en el programa secuencial de operaciones independientes. Calendario de operaciones independientes en el mismo bloque en paralelo si hay suficientes recursos de hardware disponibles. Trasladar las operaciones entre los bloques cuando sea posible.

SEGUIMIENTO DE PROGRAMACION(CONT.) Este enfoque de tres fases no explota gran parte de la ILP disponibles en el programa por dos razones. Dependencia Decisiones arbitrarias La programación de rastreo es un método de perfil impulsado desarrollado por Joseph Fisher para evitar este problema.

SUPERBLOCK SCHEDULING Algoritmo de programación de la región desarrollada en conjunto con el Compilador de Impacto en la Universidad de Illinois.  Se basa en la premisa que la extracción de ILP de los programas secuenciales requiere el movimiento de código a través de múltiples bloques básicos.  A diferencia de la programación de rastreo, está impulsado por el análisis estático.  Un Superblock es un conjunto de elementos básicos en los que el control puede entrar sólo en la parte superior, pero puede salir en más de un punto. Superblocks se identifican primero a través de las huellas y luego se eliminan de las entradas laterales por un proceso llamado cola de duplicación Las huellas se identifican mediante el análisis estático de la rama, basado en la detección de bucles, prevención de riesgos heurística y la heurística de selección de ruta

EJECUCION ESPECULATIVA Ejecución de codigo por parte del procesador que no tiene por qué ser necesaria a priori. Objetivos Desplazar la complejidad de la programación de instrucciones desde el componente hardware, la CPU, al componente software, el compilador, que puede realizar la programación de instrucciones de forma estática (con la ayuda de la información de retroalimentación de rastros). Conseguir una mayor explotación del ILP (paralelismo en el nivel de instrucciones) mediante el uso del compilador para encontrar y explotar oportunidades adicionales para la ejecución en paralelo.

PARALELISMO A NIVEL INSTRUCCIÓN (ILP) ILP es una medida de cómo muchas de las operaciones en un programa de computadora se pueden realizar simultáneamente. Sea el programa: 1. e = a + b 2. f = c + d 3. g = e * f 3 depende de los resultados de 1 y 2. Debe esperar que ambos se hayan completado. 1 y 2 no dependen de ninguna otra operación. Se puede calcular de forma simultánea.  Si suponemos que cada operación se puede completar en una sola unidad de tiempo, estas tres instrucciones se puede completar en un total de dos unidades de tiempo, dando una ILP de 3 / 2. Uno de los objetivos del compilador y el procesador de los diseñadores es el de identificar y aprovechar las ILP tanto como sea posible. 

PARALELISMO A NIVEL PROCESO (TLP) Habilidad de correr múltiples procesos (programas) al mismo tiempo En procesadores individuales, las dos metodologías principales usadas para lograr el TLP son: Multiprocesamiento a nivel de chip (CMP) Multiprocesador simultáneo (SMT) En múltiples CPU totalmente independientes podemos encontrar: Multiprocesamiento simétrico (SMP) Acceso de memoria no uniforme (NUMA)

1 CPU/1 Thread 2 CPU/1 Thread 1 CPU/2 Thread

FIN