Scheduling dinámico Scoreboarding.

Slides:



Advertisements
Presentaciones similares
Procesadores Superescalares
Advertisements

Arquitectura de Computadores I
Compiladores e intérpretes
Estructuras segmentadas
III - Gestión de memoria
Procesadores Pipeline II
Operaciones combinadas
TEMA 2 Arquitectura de un Ordenador
Estructuras de Repetición Algoritmos
Datapath para las instrucciones aritméticas y lógicas
PROCESADORES SUPERESCALARES
La maquina de Turing La máquina de Turing es una caja negra (tan simple como una máquina de escribir y tan compleja como un ser humano) capaz no sólo de.
Departamento de Ingeniería de Sistemas Universidad de Antioquia
Departamento de Ingeniería de Sistemas Universidad de Antioquia
PROCESADORES SUPERESCALARES Y VLIW
Pipelines: Riesgos.
ALGORÍTMICA Dpto. Ingeniería de Sistemas y Automática
El procesador: la ruta de datos y el control (II Parte)
SEGMENTACIÓN DEL CAUCE
3. INTRODUCCIÓN A LA PROGRAMACIÓN
EL Sistemas Digitales Ing. José Alberto Díaz García Escuela de Ingeniería Electrónica Arquitectura Segmentada Pipeline (Segmentación)
Mejoras a las Máquinas Von Neumann
Composición Interna de un Procesador
Unidad aritmético-lógica
Este obra se publica bajo unalicencia de Creative Commons Reconocimiento- NoComercial-CompartirIgual 3.0 España.licencia de Creative Commons Reconocimiento-
Ley de Amdahl.
APLICACIONES DE PILAS Estructuras de Datos.
ISA (Instruction Set Architecture)
ESTRUCTURAS CONTROL SECUENCIAL
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.
MIPS Intermedio.
PLANIFICACIÓN DINÁMICA DE INSTRUCCIONES
Unidad 2: Organización del CPU
Introducción a la Ingeniería en Sistemas
INGENIERIA DE COMPUTADORES II

Modelo de Von Neumann Ana Lilia Laureano-Cruces Departamento de Sistemas Universidad Autónoma Metropolitana.
Segmentación No Lineal
Pipelines Paralelismo Temporal y Espacial Ciclo de ejecución
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.
Overview Sistemas Computacionales
Operaciones combinadas
Scheduling dinámico Algoritmo de Tomasulo.
Programación Básica con NQC Patricio A. Castillo Pizarro 25/08/2007.
Hebras Cecilia Hernández. Qué es un proceso? Consiste Espacio de direccionamiento Código a ejecutar Datos estáticos y dinámicos Pila o stack CPU: PC,
El procesador Creando un solo datapath. Universidad de SonoraArquitectura de Computadoras2 Introducción 1. Crear un solo datapath a partir de los datapaths.
Unidad 2: Segmentación Excepciones en la Segmentación Docente: Ing. José Díaz Chow ARQUITECTURA DE MÁQUINAS COMPUTADORAS III.
Programación Básica con “NQC” Pedro F. Toledo – Patricio Castillo 15/04/2007.
Datapath para las instrucciones de carga y almacenamiento (load/store)
El procesador Diseño del control.
Programación Básica con “NQC” Pedro F. Toledo – Patricio Castillo 15/08/2006.
RENDIMIENTO DEL COMPUTADOR
PROCESADORES SUPERESCALARES
Para aplicaciones.   Una variable es un espacio de memoria en donde se almacenan datos 1. VARIABLES.
Curso: Fundamentos de Computación
Santiago Restrepo Rodríguez
MIPS Intermedio.
Arquitectura básica de la computadora
Lenguaje ensamblador Resumen en diapositivas
El proceso ensamblador. José Luis Vergara Soberanis.
P ROCESO DE E NSAMBLADO Cámara Vázquez Berenice Rubí.
Katty Evangelina Hipólito Chi.   Aunque cada maquina tiene un lenguaje ensamblador distinto, el proceso de ensamblador tiene suficiente similitudes.
Arquitectura de Computadoras (Taller) Semestre II de 2008.
Ing. Barros Rodriguez D. Ronald Introducción a la Programacón.
Hiperpipeline Superescalares Arquitectura de Computadoras 2012.
Procesadores superescalares
Pipeline: Peligros de datos
Pipelining Peligros (hazards).
Pipeline: Peligros de datos
Transcripción de la presentación:

Scheduling dinámico Scoreboarding

Scheduling Scheduling. En que orden se ejecutan las instrucciones. Hay dos opciones: Estático, cuando el hardware no tiene control. Dinámico, cuando el hardware puede reordenar. Dos algoritmos clásicos de scheduling dinámico: Algoritmo de scoreboarding. Algoritmo de Tomasulo. Universidad de Sonora Arquitectura de Computadoras

Scoreboarding Usa un scoreboard (pizarrón). Pieza de hardware. Registra el progreso de las instrucciones. Decide cuando emitir instrucciones adicionales. Resuelve las dependencias durante la ejecución. Detiene (stall) el pipeline si es necesario. Universidad de Sonora Arquitectura de Computadoras

Estructura básica Emisión (issue). El scoreboard permite que una instrucción sea emitida si: Su unidad de ejecución está libre. Su registro destino está libre. En otro caso el pipeline se detiene hasta que a) y b) sean verdaderas. Esto resuelve dependencias de salida que podrían producir peligros WAW. Universidad de Sonora Arquitectura de Computadoras

Estructura básica Leer operandos. El scoreboard permite que una instrucción lea sus operandos si no están siendo escritos por alguna instrucción en ejecución o recién emitida. En otro caso, el pipeline se detiene. Esto resuelve dependencias de datos verdaderas que podrían producir peligros RAW. Las escrituras a los operandos se completan antes de que la instrucción pueda leerlos. Universidad de Sonora Arquitectura de Computadoras

Estructura básica Ejecución. La ejecución puede proceder sin problemas. Write back. La instrucción puede escribir su resultado si no hay instrucciones anteriores sin leer sus operandos. Esto resuelve antidependencias que podrían producir peligros WAR. La salida de instrucciones anteriores no puede ser reescrita. Universidad de Sonora Arquitectura de Computadoras

Scoreboard Guarda el status de cada unidad de ejecución. Ocupada/no ocupada. Instrucción. Registro destino. Registros fuente, incluyendo si están siendo procesados en otra unidad. Guarda el status de cada registro. Ocupado/no ocupado. Guarda el status de cada instrucción. En que etapa del pipeline está. Universidad de Sonora Arquitectura de Computadoras

Ejemplo Una máquina con 4 unidades de ejecución: Entera. Maneja aritmética entera, incluyendo cálculo de direcciones en operaciones carga/guarda. Multiplicación. Maneja la multiplicación de punto flotante. División. Maneja la división de punto flotante. Suma/Resta. Maneja la suma y resta de punto flotante. Las unidades de multiplicación y división son más lentas que las otras. Universidad de Sonora Arquitectura de Computadoras

Ejemplo Considerar el siguiente código: lw r6, 8(t0) ; r6 = Mem[t0+8] mul r1, r2, r4 ; r1 = r2 * r4 sub r8, r6, r2 ; r8 = r6 – r2 div r10, r1, r6 ; r10 = r1 / r6 add r6, r8, r2 ; r6 = r8 + r2 Universidad de Sonora Arquitectura de Computadoras

Ejemplo Dependencias: Verdaderas de datos. Entre instrucciones 1 y 4; 1 y 5; 2 y 3; 2 y 4; 2 y 6; 3 y 5; 4 y 6. Salida. Entre instrucciones 1 y 6. Antidependencias. Entre instrucciones 6 y 4; 6 y 5. Universidad de Sonora Arquitectura de Computadoras

Ejemplo Después de emitir las instrucciones 1 a 5. Status de las instrucciones: Instrucción ¿Emitida? ¿Operandos leídos? ¿Ejecutada? ¿Resultado escrito? lw r6, 8(t0) si lw r2, 4(t1) no mul r1, r2, r4 sub r8, r6, r2 div r10, r1, r6 add r6, r8, r2 Universidad de Sonora Arquitectura de Computadoras

Ejemplo Status de las unidades de ejecución: Und ¿Ocup? Op Dest Fte1 ¿Lst? Fte2 Ent Si lw r2 t1 -- 4 Mul mul r1 No r4 S/R sub r8 r6 Div div r10 Universidad de Sonora Arquitectura de Computadoras

Ejemplo r1, r2, r8 y r10 están ocupados. No se pueden emitir instrucciones que escriban en esos registros por peligros WAW. La dependencia de salida entre 1 y 6 no es un peligro porque 1 ya salió y 6 no ha sido emitida. Las instrucciones 3 (mul) y 4 (sub) están esperando a r2. r2 va a ser escrito por las instrucción 2 (lw). Universidad de Sonora Arquitectura de Computadoras

Ejemplo Los peligros RAW entre las instrucciones 2 y 3 y entre 2 y 4 están deteniendo las unidades de Multiplicación y de Suma/Resta. La instrucción 2 puede seguir. No hay peligros WAR. No se puede escribir en registros cuyos operandos estén listos (Lst = “si”), porque todavía no han sido usados. Lst = “—” indica que los operandos ya fueron leídos. Universidad de Sonora Arquitectura de Computadoras

Ejemplo Mas adelante. Status de las instrucciones: Instrucción ¿Emitida? ¿Operandos leídos? ¿Ejecutada? ¿Resultado escrito? lw r6, 8(t0) si lw r2, 4(t1) mul r1, r2, r4 no sub r8, r6, r2 div r10, r1, r6 add r6, r8, r2 Universidad de Sonora Arquitectura de Computadoras

Ejemplo Status de las unidades de ejecución: Und ¿Ocup? Op Dest Fte1 ¿Lst? Fte2 Ent No Mul Si mul r1 r2 -- r4 S/R add r6 r8 Div div r10 Universidad de Sonora Arquitectura de Computadoras

Ejemplo r1, r6 y r10 están ocupados. La instrucción 5 (div) está esperando a la 3 (mul). La instrucción 6 (add) no puede escribir en r6 hasta que la instrucción 5 (div) lea sus argumentos. Universidad de Sonora Arquitectura de Computadoras

Ejemplo Todas las instrucciones han terminado, excepto la 5 que no ha escrito su resultado. Status de las instrucciones: Instrucción ¿Emitida? ¿Operandos leídos? ¿Ejecutada? ¿Resultado escrito? lw r6, 8(t0) si lw r2, 4(t1) mul r1, r2, r4 sub r8, r6, r2 div r10, r1, r6 no add r6, r8, r2 Universidad de Sonora Arquitectura de Computadoras

Ejemplo Status de las unidades de ejecución: Und ¿Ocup? Op Dest Fte1 ¿Lst? Fte2 Ent No Mul S/R Div Si div r10 r1 -- r6 Universidad de Sonora Arquitectura de Computadoras