Gustavo Andrés Uribe Gómez

Slides:



Advertisements
Presentaciones similares
ESTRUCTURAS DE CONTROL
Advertisements

Procesadores Superescalares
Arquitectura Introducción Paralelismo de grano muy fino
A FAST ALGORITHM FOR DNA SEQUENCES.
Diseño y análisis de algoritmos
UNIVERSIDAD DEL VALLE DE MEXICO CAMPUS CHAPULTEPEC
PROCESADORES SUPERESCALARES
Sentencias Repetitivas y Condicionales en C++
Predicción de saltos.
Arquitectura de Computadores
Pipelines: Riesgos.
ALGORÍTMICA Dpto. Ingeniería de Sistemas y Automática
EL Sistemas Digitales Ing. José Alberto Díaz García Escuela de Ingeniería Electrónica Arquitectura Segmentada Pipeline (Segmentación)
EMISION MULTIPLE DE INSTRUCCIONES
El nivel de la Microprogramación
PARADIGMA Es un esquema de pensamiento que nos lleva a concebir las cosas de una manera determinada. el término paradigma puede indicar el concepto de esquema.
Mejoras a las Máquinas Von Neumann
Composición Interna de un Procesador
Gustavo Andrés Uribe Gómez
CLASE 11.
Teo 2: Plataformas para programación paralela
MICRO Y MACRO ARQUITECTURA
PLANIFICACIÓN DINÁMICA DE INSTRUCCIONES
EL MICROPROCESADOR.
Programación en Matlab
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.
Tipos de memoria RAM.
Organización del Computador I Verano MIPS (1 de 2) Basado en el capítulo 3 del libro de Patterson y Hennessy Verano 2004 Profesora Borensztejn.
Capítulo 2 – Estructuras de Control
Administración de Memoria Memoria Virtual
Pipelining Predicción dinámica de brincos. Universidad de SonoraArquitectura de Computadoras2 Introducción En base a la historia de la instrucción, predecir.
PROCESADORES SUPERESCALARES
Pipelines Paralelismo Temporal y Espacial Ciclo de ejecución
Unidad 2: Segmentación Dependencias de Control Docente: ing. José Díaz Chow.
Memoria Interna Ing. Gustavo Andrés Uribe Gómez. Tipos de Memoria.
Memoria Cachés. Universidad de SonoraArquitectura de Computadoras2 Introducción Caché es el nivel de memoria situada entre el procesador y la memoria.
Soporte HW para Administración de Memoria Cecilia Hernández
Scheduling dinámico Algoritmo de Tomasulo.
TEMA 2: Organización de computadores
Informática Ingeniería en Electrónica y Automática Industrial
1002 JM while not detener: adivina = int(raw_input('Ingrese un entero : ')) if adivina == numero: print 'Felicitaciones, haz adivinado!.' detener = True.
Funcionamiento de la CPU
EXPRESIONES Y SENTENCIAS
José Estay A / jea I semestre académico 2014 Computadores (TU Sistemas Computacionales) Elementos de estructura de computadores.
Unidad 2: Segmentación Excepciones en la Segmentación Docente: Ing. José Díaz Chow ARQUITECTURA DE MÁQUINAS COMPUTADORAS III.
Diseño de la Unidad de Control Multiciclo: Microprogramación
Programación de Sistemas
Gustavo Andrés Uribe Gómez
Cap. 6: Pipelining. Encauzamiento de procesadores
CLASE 14.
Sánchez Manjarrez Silvana Ing. Daniel Domínguez C. México, D.F. a 13 de septiembre del 2006 Arquitectura de Computadoras Arquitecturas CISC Y RISC Campus.
Como es de saber el mundo se deja llevar mucho por la competencia en el sentido tecnológico, a estas formas de competencia y de relación se les llama.
ARQUITECTURA DE COMPUTADORES Semestre A-2009 Clase 14 La mayor parte del contenido de estas láminas, ha sido extraído del libro Computer Organization and.
Instruction fetch cycle (IF) IR
ARQUITECTURA DE COMPUTADORES Semestre A-2009 Clase 17 La mayor parte del contenido de estas láminas, ha sido extraído del libro Computer Organization and.
PROCESADORES SUPERESCALARES
E.A.P. “INGENIERÍA DE SISTEMAS” UNIVERSIDAD PERUANA UNION.
Introducción a los TADs
Estructuras de Decisión
Programación de Sistemas
ARQUITECTURA DE COMPUTADORES
Curso: Fundamentos de Computación
Modos de Direccionamiento y Formatos
PROGRAMACION DE APLICACIONES EN MEMORIA DEL COMPUTADOR = ALGORITMOS Y ESTRUCTURAS DE DATOS.
Hiperpipeline Superescalares Arquitectura de Computadoras 2012.
Pipelining Peligros de control.
Datapath para las instrucciones de brinco
Arquitectura 2013 Explicación 4.
Pipelining Peligros de control.
Pipelining Peligros de control.
Transcripción de la presentación:

Gustavo Andrés Uribe Gómez Pipeline Pipeline es una técnica para mejorar el rendimiento de los procesadores. Gustavo Andrés Uribe Gómez

Pipeline FI: Fetch Instruction DI: Decode Instruction   FI: Fetch Instruction DI: Decode Instruction CO:Calculate Operands FO: Fetch Operands EI: Execute Instruction WO: Write Operand CO, FO y WO acceden a memoria y pueden ocasionar que existan conflictos si estas posiciones de memoria no están en la caché. Este problema sin embargo no entorpece la eficiencia del Pipeline.   Sin embargo los saltos condicionales son un problema pues no se puede predecir cual es la siguiente instrucción. Por otro lado las interrupciones son eventos fortuitos que cambian el curso del programa.

Pipeline   La instrucción 3 es un salto condicional hasta la instrucción15. Adicional al problema mostrado en la diapositiva esta la dependencia entre instrucciones. Es decir es posible que la instrucción 5 dependa de la 4 y deba esperar el resultado de esta. ¿Que pasa en un salto incondicional?

Pipeline Speedup Sk=T1/Tk= nk / [k+(n-1)] n: Número de instrucciones entre dos saltos k: Número de etapas del pipeline Tk:Tiempo en realizar las n instrucciónes con un pipeline de k etapas. T1:Tiempo en realizar las n instrucciónes. Si n tiende a infinito el speedup se hace igual a k (constante).    Los diseñadores intentan aumentar el k para tener mejores rendimientos, pero esto aumenta considerablemente los costos.

Pipeline Speedup

Pipeline Speedup

Manejo de los Saltos Flujos Múltiples (Multiple Streams) Precargado del destino del salto (Prefetch branch target)  Loop buffer Predicción de saltos Saltos retrasados (Delayed branch)

Flujos Múltiples Los saltos condicionales provocan demoras porque la maquina no sabe cual de dos instrucciones será la siguiente. Las máquinas con flujos múltiples manejan paralelamente las dos posibles opciones hasta que se resuelva cual es la que debió seleccionarse. Problemas: Redundancia de los registros y de la memoria. En caso de encontrarse un salto antes de resolver el anterior necesita crear más flujos paralelos.

Pre-cargado del Destino del Salto Se carga (fetch) la instrucción destino del salto y la instrucción siguiente al salto. Problemas: La mejora de este tipo de máquina es muy mínima.

Loop Buffer Estas máquinas cargan en una memoria de alta velocidad las n instrucciones más frecuentemente usadas en secuencia. Estas máquinas presentan una ventaja considerable para las instrucciones del tipo if-else y ciclos cortos.  El funcionamiento de esta memoria es similar al de la caché de instrucciones pero de menor tamaño.

Predicción de Saltos Existen varias técnicas: Predicción nunca se realiza (Predict never taken ) Predicción siempre se realiza (Predict always taken) Predicción por opcode Cambio tomar/no tomar salto (Taken/not taken switch) Tabla de historia de saltos (Branch history table) Las tres primeras son estáticas, es decir no dependen de la historia de ejecución del programa. La primera técnica carga las instrucciones como si el salto no se realizara. La segunda técnica carga las instrucciones como si el salto siempre se realizara. Estudios han demostrado que en máquinas no paginadas la segunda técnica es mejor que la primera, dado que los saltos se realizan más del 50% de las veces. En la tercera técnica la decisión de salto se toma de acuerdo al opcode de la instrucción de salto. Con esta aproximación se tiene un 75% de aciertos.   La tabla de historia de saltos es una pequeña cache asociada con las instrucciones cargadas en el pipeline. La table tiene 3 entradas: la instrucción de salto, la dirección destino del salto y 3 bits indicando el estado actual de la maquina.

Predicción de Saltos Cambio tomar/no tomar salto  

Práctica Pipeline Mediante varios programas mostrar las perdidas de rendimiento causadas por: Saltos incondicionales Saltos condicionales Instrucciones dependientes      2.  Por medio de un programa intentar descubrir el tipo de algoritmo que usa la máquina para manejar los saltos.

Gracias