Cap. 6: Pipelining. Encauzamiento de procesadores

Slides:



Advertisements
Presentaciones similares
Lic. Juan Gabriel Bernal López
Advertisements

Procesadores Superescalares
Arquitectura de Computadores I
TEMA 3 ILP, Panificación dinámica, Predicción de saltos, Especulación
Estructuras segmentadas
Camino de Datos y Control
Arquitectura de Computadores I
Arquitectura de Computadores I PIPELINING. Pipelining Un pipeline es una serie de etapas, en donde en cada etapa se realiza una porción de una tarea.
PROCESADORES SUPERESCALARES
Temas Operaciones básicas Instalando el compilador
Predicción de saltos.
Departamento de Ingeniería de Sistemas Universidad de Antioquia
UNIVERSIDAD LATINA (UNILA) IV. IMPLANTACION DE ALGORITMOS.
Pipelines: Riesgos.
Ingeniería de sw.
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
Mejoras a las Máquinas Von Neumann
UNIDAD DE CONTROL (CU) Universidad Nacional Autónoma De Honduras UNAH
Circuitos Combinacionales Comunes
Este obra se publica bajo unalicencia de Creative Commons Reconocimiento- NoComercial-CompartirIgual 3.0 España.licencia de Creative Commons Reconocimiento-
CLASE 11.
INGENIERIA DEL SOFTWARE
TRADUCTOR DE UN PROGRAMA
Tema 10: Gestión de Memoria
PLANIFICACIÓN DINÁMICA DE INSTRUCCIONES
Sistemas Operativos Procesos.
PROGRAMACIÓN PARALELA Tema 4: Metodología de la programación
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.
Segmentación No Lineal
Pipelining Predicción dinámica de brincos. Universidad de SonoraArquitectura de Computadoras2 Introducción En base a la historia de la instrucción, predecir.
Unidad 2: Segmentación Dependencias de Control Docente: ing. José Díaz Chow.
Gustavo Andrés Uribe Gómez
ARQUITECTURA DE COMPUTADORES Semestre A-2009 Clase 18 La mayor parte del contenido de estas láminas, ha sido extraído del libro Computer Organization and.
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.
Funcionamiento de la CPU
Capítulo 5. El procesador: Camino de datos y control.
Unidad 2: Segmentación Excepciones en la Segmentación Docente: Ing. José Díaz Chow ARQUITECTURA DE MÁQUINAS COMPUTADORAS III.
Departamento de Ingeniería de Sistemas Universidad de Antioquia
“Organización y Arquitectura de Computadores” William Stallings
Organización del Computador I Verano Procesador Segmentado Basado en el capítulo 6 del libro de Patterson y Hennessy Verano 2004 Profesora Borensztejn.
El procesador Diseño del control.
Introducción a los programas
Metodología de la programación
ARQUITECTURA DE COMPUTADORES Semestre A-2009 Clase 20 La mayor parte del contenido de estas láminas, ha sido extraído del libro Computer Organization and.
INTRODUCCIÓN El rendimiento, costo de compra y costo de operación forman la base para la toma de decisiones, sobre que PC es mejor que otra y así adquirir.
Rendimiento de la CPU y sus factores
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.
TIPOS DE PRUEBAS DEL SOFTWARE
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
INTERRUPCIONES – ABRAZO MORTAL
Objetivos del tema. Hemos visto lo que es la estructura de un programa, los datos, que esos datos en realidad se convierten en variables de distinto.
Metodología de Programación Ayudantía 4 lelagos.ublog.cl 2009.
¿Qué es la tecnología? Introducción 3º ESO.
Curso: Fundamentos de Computación
Arquitecturas de Computadoras Capitulo 2 Aritmética de enteros.
Prof. Jonathan Silva Ingeniería Civil – Informática I Ingeniería Civil Informática I Clase 3 – Diseño de Programas.
P ROCESO DE E NSAMBLADO Cámara Vázquez Berenice Rubí.
Arquitectura de Computadoras (Taller) Semestre II de 2008.
LE, EI, Profesor Ramón Castro Liceaga UNIVERSIDAD LATINA (UNILA) IV. IMPLANTACION DE ALGORITMOS.
Arquitectura de Computadores Clase 22 Pipelining IIC 2342 Semestre Rubén Mitnik Pontificia Universidad Católica de Chile Escuela de Ingeniería Departamento.
Pipeline: Peligros de datos
Pipelining Peligros (hazards).
Arquitectura 2013 Explicación 4.
Pipelining Introducción.
Pipeline: Peligros de datos
El procesador Datapath y control.
Transcripción de la presentación:

Cap. 6: Pipelining. Encauzamiento de procesadores Normalmente traducido como segmentación. Una técnica que mejora ostensiblemente la productividad. Paralelismo a nivel de instrucciones (ILP) Overview: De este capítulo, sólo estamos interesados en los conceptos.

Pipelining. Traducción: Segmentación. Usada en la versión española del libro de texto –la más usada. Encauzamiento. Usada traducciones de otros libros sobre computadores –¿La más apropiada?

Pipelining: Concepto Técnica de mejora del rendimiento del procesador: Permite la ejecución de varias instrucciones al mismo tiempo. Incrementa la productividad del procesador Pero, el tiempo empleado por cualquier instrucción es el mismo que en el procesador no encauzado.

Estructuras básicas: Unidad de memoria dividida en datos e instrucciones

Estructuras básicas Cola prioritaria: Las instrucciones se ejecutan en su orden natural 5 etapas La mejora productividad obtenida tiende a ser x5. Pero, surgen conflictos entre las instrucciones Estructurales De datos De control

Las instrucciones de ejemplo base para este capítulo. lw, sw, add, sub, and, or, slt y beq. En principio, asumiremos que todas ellas son ejecutadas en 5 fases. La pipa (La cola de instrucciones): 5 etapas. Mejora de velocidad = x5. Mas fases  Mas mejora de velocidad Es necesario un compromiso

La ruta de datos uniciclo encauzada

Ejejmplo de ejecución encauzada ¿Ves un “bug” en este diseño? Este computador no es funcionalmente equivalente al computador uniciclo conocido ¿Cómo arreglamos el “bug”?

Solución al “bug” anterior Etapas de la pipa desacopladas entre sí mediante registros de pipa: Deben ser de suficiente ancho 128, 97, 64, ... Pero, todavía existe un “bug” en el diseño ¿? Pensemos en una instrucción lw ¿A qué registro se transfiere el dato procedente de la memoria?

Registros inter-fase: La instrucción “conserva” el registro de destino para usarlo en su 5ª fase A medida que una instrucción progresa en su ejecución, lleva consigo la información necesaria para su ejecución completa. Esta información se pasa de una fase a la siguiente, a través de los registros inter-fase

Diseño de la unidad de control Necesitamos generar el conjunto de microórdenes que controlen cada etapa de la pipa. ¿En qué instante deben estar listas? Las microórdenes serán generadas cuando conozcamos la clase de instrucción de la que se trata...

Detección de conflictos entre instrucciones.

Adelantamiento de resultados. (Forwarding)

Conflictos de datos y detenciones de la pipa. Un caso de conflicto no resoluble mediante forwarding es una instrucción que lee un registro seguida de una instrucción que carga ese registro. La pipa debe ser detenida temporalmente (stall)

Pipa detenida: Reg/load.

Fallos debidos a instrucciones de salto condicional Fallos debidos a instrucciones de salto condicional. (Fallos de control) Al principio de la presentación hemos asumido que todas las instrucciones se ejecutan en 5 etapas. beq $1, $3, 7 también se ejecuta en 5 etapas En la etapa MEM se toma la decisión (branch) ¿Qué ocurre con las instrucciones inmediatamente siguientes si de hecho se produce el salto condicional? Deben ser descartadas... Un ejemplo:

Vaciado de la pipa debido a un salto condicional ejecutado

Saltos condicionales en la pipa ¿Asumir que no se producirán? Cuando no acertemos habrá que vaciar la pipa. ¿Observar los condicionales a ver si en el pasado se produjo el salto? Branch target buffer (BTB). Más trucos con los condicionales: Branch delay slot La instrucción que sigue al condicional se ejecuta siempre. Acortar las fases de un salto Menos instrucciones que descartar si el salto se produce.

Branch delay slot

Excepciones y pipelining Las excepciones tienen lugar con la pipa llena de instrucciones ¿Cómo afecta esto al resto de instrucciones que están en el medio? ¿Vaciar la pipa? A veces es tan complicado saber la instrucción origen de la excepción que las excepciones se manejan con imprecisión. Peticiones de i/o, invocación de servicios del SO, instrucción no definida, overflow, fallo h/w.

Procesadores superescalares. Comenzar mas de una instrucción en cada ciclo de reloj. El procesador puede planificar la ejecución de código para que resulte más eficiente -“al vuelo”. Ejecución especulativa de condicionales sujeta a predicción de saltos.