Procesadores Superescalares

Slides:



Advertisements
Presentaciones similares
Almacenamiento del sistema de archivos La gestión de archivos es uno de los componentes mas visibles de un sistema operativo. Las computadores pueden almacenar.
Advertisements

El modelo de Von Neumann
Arquitectura Introducción Paralelismo de grano muy fino
UNIVERSIDAD DEL VALLE DE MEXICO CAMPUS CHAPULTEPEC
TEMA 3 ILP, Panificación dinámica, Predicción de saltos, Especulación
Alumno: Roy R. Mercado Núñez
GESTION DE DISPOSITIVOS
III - Gestión de memoria
Multiprocesadores 3.1 Dominios de aplicación
Procesadores Pipeline II
TEMA 2 Arquitectura de un Ordenador
Scheduling dinámico Scoreboarding.
PROCESADORES SUPERESCALARES
PROCESADORES SUPERESCALARES Y VLIW
Pipelines: Riesgos.
ARQUITECTURA INTEL FORMATOS DE INSTRUCCIÓN
Tema II Unidad de memoria. 2 Unidad de memoria 2.1 Definiciones y conceptos básicos Localización Capacidad Unidad de transferencia
El procesador: la ruta de datos y el control (II Parte)
Teoría de lenguajes y compiladores
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
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-
Microcomputadores Prof : Tatiana Marín R.. Sistema basado en microprocesador de 8 bits.
TEMA II PROCESADORES SUPERESCALARES Fuente imágenes: Prof. Morillo.
Arquitectura del Computador
HILOS Y COMUNICACIÓN ENTRE PROCESOS
TRADUCTOR DE UN PROGRAMA
Práctica 7 AOC. Gestión de la pila Una pila es una estructura de datos caracterizada por que el último dato que se almacena es el primero que se obtiene.
ARQUITECTURA DE LOS MICROPROCESADORES DE 8 BITS
MICRO Y MACRO ARQUITECTURA
Como empezar en Access 2000 Abrir Access 2000 Pulsamos INICIO
PLANIFICACIÓN DINÁMICA DE INSTRUCCIONES
INGENIERIA DE COMPUTADORES II
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
Clase 10: Estructuras de datos y arreglos.
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
Unidad 2: Segmentación Dependencias de Control Docente: ing. José Díaz Chow.
Gustavo Andrés Uribe Gómez
Memoria Cachés. Universidad de SonoraArquitectura de Computadoras2 Introducción Caché es el nivel de memoria situada entre el procesador y la memoria.
Tema 10.3: Asignación de Espacio No Contiguo. Tema 10.3: 2 Silberschatz, Galvin and Gagne ©2005 Fundamentos de los Computadores (ITT, Sist. Electr.),
Asignación de Espacio No Contiguo
Soporte HW para Administración de Memoria Cecilia Hernández
Conceptos Arquitectónicos del computador
Scheduling dinámico Algoritmo de Tomasulo.
Capítulo 7 Gestión de memoria.
Diseño de la Unidad de Control Multiciclo: Microprogramación
Unidad aritmético-lógica
APRENDIZ: SANDRA L. CAICEDO C. ORDEN: 20194
Tema 2: Lenguaje máquina
La Unidad Central de Proceso o CPU
Sistemas Operativos Avanzados
Cap. 6: Pipelining. Encauzamiento de procesadores
Metodología de la programación
ARQUICTECTURA DE SERVIDORES
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
Modos de direccionamiento
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.
E.A.P. “INGENIERÍA DE SISTEMAS” UNIVERSIDAD PERUANA UNION.
REPUBLICA BOLIVARIANA DE VENEZUELA UNIVERSIDAD ALONSO DE OJEDA FACULTAD DE INGENIERÍA ESCUELA DE COMPUTACIÓN ING. PROF. LEONEL SEQUERA MEMORIAS.
3.4 PROCESAMIENTO DE LAS INSTRUCCIONES DE SALTO
Santiago Restrepo Rodríguez
Gestión de Memoria – Parte 2
Arquitectura de Computadoras (Taller) Semestre II de 2008.
Hiperpipeline Superescalares Arquitectura de Computadoras 2012.
Transcripción de la presentación:

Procesadores Superescalares

Los procesadores superescalares se caracterizan por emplear varias unidades de ejecución segmentadas que trabajan de forma paralela EU1 EU2 EU3 instrucciones

La ejecución en unidades independientes que trabajan de forma paralela plantea los siguientes problemas: Distribución de instrucciones y Decodificación paralela. Determinación de la unidad de ejecución a la que se envía cada instrucción. Despacho de instrucciones. Mantenimiento de un buffer de instrucciones para cada unidad de ejecución. Es una fase opcional que permite acelerar la distribución. Detección y resolución de dependencias de datos Detección y resolución de dependencias de control : Predicción de salto Preservación de la consistencia secuencial

Buffer de Instrucciones Distribución / Decodificación Ventana de distribución UE UE UE UE

UE Buffer de Instrucciones Distribución / Decodificación Ventana de distribución D U Shelvings Se evita el bloqueo por dependencias de datos verdaderas en la fase de distribución ya que, a pesar de existir una dependencia de este tipo, las instrucciones pueden ser distribuidas

Las dependencias estructurales en la fase de distribución pueden venir por dos motivos: Falta de entradas en el buffer de la unidad de despacho correspondiente. Conflicto en la utilización de la ruta de datos

El conflicto en la utilización de la ruta de datos FX UE Buffer de Instrucciones Distribución / Decodificación Ventana de distribución D U FP UE FP Instrucción FX Instrucción Distrib Bloq

Tipos de Shelvings Una única unidad de despacho central para todas las unidades de ejecución Un número reducido de unidades de despacho compartidas por varias unidades de ejecución Una unidad de despacho individual para cada unidad de ejecución

Formato de distribución Recodificación del campo código de las instrucciones Dirección de los operandos Operandos en sí No tiene en cuenta la posibilidad de que el operando no esté disponible debido a una dependencia de datos verdadera Se debe incluir un bit que indique si el operando está pendiente de la resolución de una dependencia Cuando el operando está pendiente de búsqueda, el espacio destinado a él contiene es ese caso su dirección

Operandos en sí La unidad de despacho se encarga de resolver las dependencias de datos existentes La información que se transmite corresponde al identificador del registro que ha sido calculado junto con el valor obtenido de la unidad de ejecución Una búsqueda dentro de la unidad de despacho permite conocer si es necesario actualizar con el valor calculado los campos operandos de las instrucciones contenidas en el buffer Además los resultados deben ser actualizados en los registros utilizados para el “renombramiento” con el fin de que estén disponibles de forma anticipada para las instrucciones pendientes de distribución

Búsqueda de operandos durante la distribución Búsqueda durante la distribución Búsqueda durante el despacho

Política de despacho Las instrucciones sólo se pueden despachar si todos sus operandos están disponibles Distribución: chequeo de los bits de operando pendiente Despacho: Información se toma directamente de los registros

Detección y resolución de dependencias Dependencias verdaderas: nada que hacer Dependencias falsas: renombramiento MUL R1, R5, R5 … SUB R1, R2, R6 DIV R1, R3, R4 ADD R1, R2, R3 MUL R6, R1, R4

ROB La explotación del paralelismo a nivel de instrucción lleva a "ejecutar" las instrucciones fuera del orden secuencial determinado por el programa lo que se realiza fuera de orden es el calculo de los resultados de las instrucciones mientras que la ejecución real de las instrucciones no es efectiva hasta que los resultados son actualizados, bien en los registros bien en la memoria El ROB (Reorder Buffer) es el elemento de la estructura de los superescalares que permite preservar la consistencia secuencial Para ello mantiene un buffer en el que se almacenan las instrucciones en el orden en el que han sido distribuidas, es decir, en el orden secuencial de ejecución

ROB Además de una instrucción cada entrada tiene un campo para almacenar el resultado calculado por la misma Mientras la instrucción permanece en el ROB el resultado está pendiente de ser actualizado en los registros o en la memoria El orden en el que se sacan las instrucciones del ROB es el orden secuencial determinado por el programa cargado en memoria. De esa forma los resultados son actualizados en dicho orden

Técnicas de Predicción de salto Las instrucciones de salto suponen un inconveniente para la obtención de un rendimiento alto Cuando se decodifica una instrucción de salto, el procesador bloquea el fetch de instrucciones hasta que el salto no es resuelto (burbuja). La ventana de instrucciones tiene pocas instrucciones Una solución = métodos precisos que predigan la dirección de los saltos condicionales, así como anticipar lo antes posible el cálculo de la dirección destino Se hace un prefetching y se ejecutan instrucciones del camino destino antes de que el salto sea resuelto (ejecución especulativa)

Técnicas de Predicción de salto Introducir cuando es tomado Introducir cuando es ejecutado por 1ª vez Tipos: Predicción estática (tiempo de compilación) Predecir todos los saltos como tomados Predicciones basadas en el código de operación Predicciones en función de su dirección (ejemplo hacia atrás predecirlos como tomados y hacia delante como no) Predicción dinámica (tiempo de ejecución) BHT (Branch History Table) Información sobre las últimas ejecuciones de los saltos BTAC (Branch Target Address Cache) Dirección destino de los últimos saltos tomados

Técnicas de Predicción de salto El Branch Target Buffer (BTB) es una pequeña memoria asociativa que guarda las direcciones de los últimos saltos ejecutados así como su destino. A su vez guarda información que permite predecir si el salto será tomado o no. En la etapa de fetch se mira si la dirección de la instrucción está en el BTB. Si es así se miran los bits de predicción y se decide si el salto ha de ser tomado o no. Si el salto no es tomado o la dirección no está en el BTB en el siguiente ciclo se hace el fetch de la siguiente instrucción en orden. Si el salto es tomado en el siguiente ciclo e hace el fetch del nuevo camino de ejecución.

Técnicas de Predicción de salto Fallo en la predicción Se comprueba si la predicción es correcta al ejecutar la instrucción de salto. Si no, el procesador deberá realizar un vaciado del pipe, quitando todas las instrucciones del camino incorrecto pendientes de ser ejecutadas y restaurando el estado de los registros como estaban antes de predecir el salto. Una nueva burbuja Realizará el fetch de las instrucciones del camino correcto

Resumen

Resumen La fase de emisión juego un papel fundamental Hay que decidir qué instrucciones se pueden emitir (en función de las unidades funcionales disponibles) Hay que leer muchos registros a la vez Si una se bloquea sería muy caro en cuanto a prestaciones Idem con las penalidades de fallo caché Por tanto, salvo en sistemas empotrados que suelen llevar superescalares menos agresivos, todos poseen emisión dinámica: el procesador decide en tiempo de ejecución qué instrucciones pueden emitirse a la vez y cuáles no

Resumen IF Un superescalar de grado m, puede emitir m instrucciones por ciclo, de forma que la caché debe ser capaz de atender esta demanda Ventana de Instrucciones: Fija. Hasta que no se han emitido todas las instrucciones de la ventana, no se puede acceder a caché a por otras Deslizante. A medida que las instrucciones se van emitiendo, nuevas instrucciones son leídas de la caché.

Intel Pentium 4

Intel Pentium Pro

R10k