PRACTICA 2 Ejercicio 2



Documentos relacionados
PRACTICA 2 Ejercicio 3

Arquitectura de Computadoras. Clase 5 Posibles soluciones a atascos

TEMA 2: PARALELISMO INTERNO EN SISTEMAS COMPUTADORES SEGMENTACION

Arquitectura de Computadores II Clase #16

Procesadores segmentados. El DLX.

Centro Asociado Palma de Mallorca. Tutor: Antonio Rivero Cuesta

Sin embargo, la realidad es otra: Las memorias grandes son lentas Las memorias rápidas son pequeñas (y caras)

Pipelining o Segmentación de Instrucciones

Qué es Pipelining? Es una técnica de implementación en la que se superpone la ejecución de varias instrucciones.

Arquitectura de Computadores

Pipeline (Segmentación)

UNIDAD 5: Mejora del rendimiento con la segmentación.

PIPELINING: Antes de adentrarnos en el tema, veremos una analogía de un pipeline:

Plataformas de soporte computacional: arquitecturas avanzadas,

Procesadores Superescalares: Paralelismo Implícito a Nivel de Instrucción

PROBLEMAS DE FUNDAMENTOS DE TECNOLOGÍA DE COMPUTADORES T5. MEMORIAS

INVENTARIO INTRODUCCIÓN RESUMEN DE PASOS

Arquitectura de Computadores

3.8 Construcción de una ALU básica

Introducción. Ciclo de vida de los Sistemas de Información. Diseño Conceptual

COMPUTADORES SEGMENTADOS (DLX)

Arquitectura Segmentada: Conceptos básicosb

Ejercicios. 5.2 [5] < 5.3> Este ejercicio es similar al 5.1, pero ahora considere los fallos causados por permanecer en 1 (la señal es siempre 1).

Centro de Capacitación en Informática

Manual de usuario para Android de la aplicación PORTAFIRMAS MÓVIL

16.36: Ingeniería de sistemas de comunicación. Clase 15: ProtocolosARQ. Eytan Modiano

Capítulo 4 Procesos con estructuras de repetición

Tarea 4.2 Memoria Virtual

Ingeniería Informática. Ampliación de Estructura de Computadores. Curso Introducción a la segmentación de Instrucciones.

Entorno de Ejecución del Procesador Intel Pentium

Administración avanzada de paquetes. apt-proxy.

Este programa mueve cada motor de forma independiente, y cuando termina una línea pasa a la siguiente.

Test de Prueba PMP : Marco de Referencia Gestión de Proyecto

2 Sea una unidad de disco duro de brazo móvil con las siguientes características:

ESTRUCTURAS CONDICIONALES EN PHP: SWITCH, CASE, BREAK. EJEMPLOS DE USO Y EJERCICIOS RESUELTOS. (CU00820B)

Descripción y tabla de especificaciones para prueba formativa Área Matemática Año 2014

Terminales de Captura de Juegos Pax S-80

Ejercicio 1 (2 puntos. Tiempo: 25 minutos)

Siemens Industry IA/DT/BT Service&Support - Automation Service, Automation Sup...

Instituto Tecnológico de Massachussets Departamento de Ingeniería Eléctrica e Informática Circuitos electrónicos Otoño 2000

Organización de Computadoras. Turno Recursantes Clase 8

CASO PRÁCTICO DISTRIBUCIÓN DE COSTES

Sistemas Operativos II Febrero 2009 Nombre:

3.2 Operaciones aritmético-lógicas en Pascal

Tema 2. Diseño del repertorio de instrucciones

La extensión de geoprocesamiento de gvsig permite aplicar una serie de procesos

Manual de Usuario de la Aplicación de Justificación de Ayudas

TABLA DE CONTENIDO LISTA DE FIGURAS

Test: Conteste exclusivamente en HOJA DE LECTURA ÓPTICA. No olvide marcar que su tipo de examen es A.

BUS I2C: IMPLEMENTACIÓN PRÁCTICA CON MICROCONTROLADORES PIC MEMORIAS EEPROM SERIE

EDWIN KÄMMERER ORCASITA INGENIERO ELECTRÓNICO

Ejercicio 1. Desarrollar un pequeño juego para practicar mecanografía.

18. Camino de datos y unidad de control

Unidad: Representación gráfica del movimiento

Operación de Microsoft Word

Descarga Automática. Manual de Usuario. Operador del Mercado Ibérico de Energía - Polo Español Alfonso XI, Madrid

Diagramas del UML. A continuación se describirán los diagramas más comunes del UML y los conceptos que representan: Diagrama de Clases

La memoria principal. Los subsistemas de E/S. Los buses del sistema

Introduccion al Lenguaje C. Omar Andrés Zapata Mesa Grupo de Fenomenología de Interacciones Fundamentales, (Gfif) Universidad de Antioquia

OBTENER DATOS EXTERNOS

GE Power Management. 6S``O[WS\bORS1]\TWUc`OQWÕ\g. GE-FILES 7\ab`cQQW]\Sa 539$ &

ISTP CIDET COMPUTACION E INFORMATICA ARREGLOS EN JAVA

Aplicaciones clientes servidor y sockets

Práctica 0. Emulador XENON de la computadora CESIUS

Examen de Arquitectura de Computadores

Memoria La memoria es la parte del ordenador en la que se guardan o almacenan los programas (las instrucciones y los datos).

MICROECONOMÍA II PRÁCTICA TEMA III: MONOPOLIO

1. VIRTUALIZACION DEL PROCESO REAL.

Servicio de Informática Vicerrectorado de Tecnologías de la Información y la Comunicación

UN SIMULADOR DE UNA MAQUINA COMPUTADORA COMO HERRAMIENTA PARA LA ENSEÑANZA DE LA ARQUITECTURA DE COMPUTADORAS

ELECTRONICS WORKBENCH

DISCOS RAID. Se considera que todos los discos físicos tienen la misma capacidad, y de no ser así, en el que sea mayor se desperdicia la diferencia.

MANUAL PARA REALIZAR LA SOLICITUD ELECTRÓNICA

Arquitectura t de Computadores Clase 10: Diseño del microprocesador monociclo pt.2

Programa Presupuestos de Sevillana de Informática.

Sea el siguiente programa de nombre "c0p1" para copiar archivos (por simplicidad se ha eliminado todo control de errores): Se pide:

V-Safe 100. Guía del usuario. Febrero de 2005

TEMA II: REPRESENTACIÓN DE LA INFORMACIÓN

Modelo de estimación de speedup factor mediante umbralización en multicores asimétricos

Es de aplicación a aquellos estudios o situaciones en que es necesario priorizar entre un conjunto de elementos.

Arndt & Voß GmbH Elektronik - Meßtechnik

Organización del Computador I Verano. Memoria Virtual Basado en el capítulo 5 del libro de Patterson y Hennessy

Circuito de refresco de un Display

LA PARRILLA DEL PERFIL DEL PROFESOR DE IDIOMAS - BREVE INTRODUCCIÓN

EL GOOGLE EARTH PARA EL LEVANTAMIENTO DEL MAPA DE LA FINCA

PLANES DE EMPRESA ICEX CONSOLIDA. Manual de Usuario

Microsoft Excel Unidad 6. La Hoja de Cálculo

PROGRAMA INFORMÁTICO PARA LA CUMPLIMENTACIÓN DE RECETAS EN FORMATO XML VERSIÓN: 1.0

INSTRUCCIÓN DE SERVICIO NOCIONES BÁSICAS PARA DIAGRAMAS DE FLUJO. MICROSOFT VISIO

GUÍA BÁSICA DE USO DEL SISTEMA RED

TEMA 7: DIAGRAMAS EN UML

MANUAL DE ACCESO PARA LOS AYUNTAMIENTOS DE LA APLICACIÓN TRIBUTARIA

Compartir en línea. Cargar archivos. Principios básicos. Compartir en línea

Índice. Esta Guía rápida del usuario le ayudará a empezar a utilizar IRISPen TM Executive 7.

Índice 1 Instalación de la herramienta 2 Descripción de la herramienta 2 Arranque de la aplicación 3 Proyecto 4 Diagrama de clases 5

Ejercicios resueltos con acumuladores. Pseudocódigo y diagramas de flujo. Bucle desdesiguiente (for-next). (CU00160A)

Transcripción:

PRACTICA 2 Ejercicio 2 Simulación de Procesadores con Ejecución en Orden DESCRIPCIÓN GENERAL En esta práctica se utilizará el simulador KScalar y su interfaz gráfica con el objeto de estudiar el funcionamiento de un procesador con ejecución en orden cuya microarquitectura es segmentada, superescalar, y con memoria cache real. Se realizarán sucesivamente varias actividades de análisis de prestaciones que permitirán al alumno descubrir, de forma gradual, cómo afectan a las prestaciones globales del sistema procesador-memoria ciertos aspectos de su microarquitectura. OBJETIVOS DOCENTES ¾ Comprender la problemática que introducen las dependencias de datos y control en las prestaciones de los procesadores segmentados ¾ Estudiar el funcionamiento de los procesadores con microarquitectura superescalar, en el caso de que la ejecución de instrucciones sea en orden. ¾ Estudiar la influencia de varias técnicas de predicción de saltos sobre las prestaciones del procesador ¾ Analizar la interacción entre el procesador y la jerarquía de memoria en el nivel de la memoria cache. TIPOS BASICOS DE MICROARQUITECTURAS Parte 1. Ejecución en Orden a. Procesador segmentado Ideal (Modelo Ideal ) : cache ideal (tiempo de acceso siempre 1 ciclo), predicción perfecta de saltos, monoescalar. b. Procesador segmentado con predicción de saltos : cache ideal, predicción de saltos real, monoescalar. ¾ Modelo Branch : suponiendo que los saltos nunca saltan ¾ Modelo BTB : usando un BTB ( Branch Target Buffer ) c. Procesador segmentado y superscalar (modelo SuperScalar ) : 2 instrucciones por ciclo (escalaridad 2), sin restricciones de unidades funcionales, cache ideal, predicción perfecta de saltos. d. Procesador segmentado con cache de datos (modelo Dcache ) : cache L1 de datos real, predicción perfecta de saltos, monoescalar. 1

Parte 1. Ejecución en Orden A. Procesador Segmentado Ideal (Modelo Ideal ) Resumen de Características Memoria cache ideal (siempre acierta con tiempo de acceso de 1 ciclo (clk)) Predicción de saltos ideal (siempre acierta) 1 instrucción buscada, decodificada, y ejecutada por ciclo (monoescalar) Descripción del Sistema Procesador/Memoria 5 etapas de segmentación: I : Cache L1 de instrucciones ideal (1 clk, siempre acierta) Predicción perfecta de la dirección de la siguiente instrucción para los saltos condicionales e incondicionales (dependencias de control) ID: Detección de dependencias RAW (pueden frenar la ejecución de la instrucción) y dependencias WAW (se anotan, pero no frenan la ejecución) Arbitraje del puerto de escritura de resultados (puede frenar la ejecución) Lectura de hasta dos operandos fuente (registros) EX: Ejecución comienza siempre en orden Unidades funcionales segmentadas ALU (operaciones enteras y cálculo de direcciones): Suma/Resta Punto lotante: Multiplicación Punto lotante: MEM: Cache L1 de datos ideal (1 clk, siempre acierta) 1 clk 4 clks 4 clks WB: Escritura de hasta 1 resultado: si se detecta la violación de una dependencia WAW, la última escritura (fuera de orden) no se realiza, ya que el resultado no debe ser utilizado por las instrucciones posteriores Diagrama de Bloques 0 (QWHURV (; 0XOWLSOL DGRU3) 0 0,),' 0(0 :% 6XPD5HVWD3) 2

Parte 1. Ejecución en orden B. Procesador Segmentado con Predicción de Saltos (Modelo Branch y BTB ) Resumen de Características Memoria cache ideal (siempre acierta con tiempo de acceso de 1 ciclo (clk)) Predicción realista de saltos (en ocasiones acierta y en otras falla) 1 instrucción buscada, decodificada, y ejecutada por ciclo (monoescalar) Descripción del Sistema Procesador/Memoria 5 etapas de segmentación: I, ID, EX, MEM, WB I : Predicción de Saltos simple (Modelo Branch ): Salto no Tomado Se buscan instrucciones consecutivas hasta que, en la etapa EX, se ejecute algún salto que resulte tomado (la penalización por fallo de predicción es de 2 clks) Predicción de Saltos con BTB (Modelo BTB ) Tamaño BTB: 32 entradas Asociatividad: 4 vías (8 conjuntos) Si la dirección de la instrucción buscada en la cache de instrucciones no reside en el BTB, se sigue la estrategia de predicción estática anterior (suponer salto no tomado) Si se detecta un error de predicción con la estrategia anterior (aparece un salto tomado), la dirección de la instrucción de salto que provoca el error, junto con la dirección donde salta, se introducen en el BTB (penaliza 2 clks) Si la dirección de la instrucción buscada reside en el BTB, se utiliza la dirección almacenada en el BTB para predecir la dirección de la siguiente instrucción a buscar en la cache de instrucciones. Si se detecta un error de predicción con la estrategia anterior (un salto registrado en la BTB resulta no tomado), se anula la entrada de la BTB (penaliza 2 clks) Diagrama de bloques,) 3& %7% /&D KH,QVWUX LRQHV (QWHURV (; 0XOWLSOL DGRU3) 0 0 0,' 0(0 :% 6XPD5HVWD3) 3

Parte 1. Ejecución en orden C. Procesador Segmentado y Superescalar (Modelo Superescalar ) Resumen de Características Memoria cache ideal (siempre acierta con tiempo de acceso de 1 ciclo (clk)) Predicción de saltos ideal (siempre acierta) 2 instrucciones buscadas, decodificadas y ejecutadas por ciclo Descripción del Sistema Procesador/Memoria 5 etapas de segmentación: I : 2 accesos independientes a la cache L1 de instrucciones Hasta 2 predicciones de saltos por ciclo ID: Detección de dependencias RAW y WAW, incluyendo dependencias entre las dos instrucciones decodificadas Arbitraje de los dos puertos de escritura de resultados (puede frenar ejecución) Arbitraje del puerto de acceso a la memoria cache L1 de datos (puede frenar ejecución) Lectura de hasta cuatro operandos fuente (registros) EX: Ejecución comienza siempre en orden 2 unidades funcionales segmentadas para cada tipo de operación (sin restricciones funcionales en la etapa EX) MEM: Cache L1 de datos ideal con un único puerto de acceso (1 clk, siempre acierta) WB: Escritura de hasta dos resultados (puede ser que se haga fuera de orden) Diagrama de bloques (QWHURV 0XOWLSOL DGRU3) 0 (; 0 0,),',' 0(0 :% :% 6XPD5HVWD3) 4

Parte 1. Ejecución en Orden D. Procesador Segmentado con Cache de Datos (Modelo Dcache ) Resumen de Características Memoria cache L1 de datos real (64 KB, 2-way associative) Predicción de saltos ideal (siempre acierta) 1 instrucción buscada, decodificada, y ejecutada por ciclo (monoescalar) Descripción del Sistema Procesador/Memoria 5 etapas de segmentación: I, ID, EX, MEM, WB MEM: cache L1 de datos Tamaño de la Dirección: 32 bits Tiempo de acierto: 1 clk Tamaño en bytes: 64 KBytes Tamaño línea: 64 Bytes Asociatividad: 2 vías (512 conjuntos) Política de remplazo: LRU Bus L1: 16 Bytes / clk Bus Memoria: 8 Bytes / clk Tiempo adicional para traer dato crítico de cache L2: 5 clks (1+3+1) Tiempo adicional para traer el resto de la línea: 3 clks (1+1+1) Secuenciamiento del acceso a la jerarquía de memoria: (a) Acceso a cache L1 y verificación del tag (comprobar si está el dato o no) (b) Si falla L1, se accede a L2 (se pide el dato crítico en primer lugar) (c) El dato crítico, una vez recibido, es accesible por el procesador (d) Una vez recibida toda la línea de cache desde L2 se copia en L1 Diagrama de bloques (QWHURV (; /&D KH 'DWRV &RQWURO 0HPRULD %86 / 0XOWLSOL DGRU3) 0 0 0 %86 /,),' 0(0 :% 6XPD5HVWD3) /&D KH 'DWRV 5

Programa Ejemplo vectprod.eio ; Subroutine Vector_Product ; ------------------------- ; multiplies vector A times vector B and puts result into variable C ; ; Pseudocode (C-like) ; ------------------- ; void VectProd(int len, float *A, float *B, float *C) ;{ ; float tmp=0; ; for (;len; len--, A++, B++) ; tmp= tmp + (*A) * (*B); ; *C=tmp; ;} ; ; Input Variables: ; --------------- ; r1: len (16) r2: A (0xA00) ; r3: B (0x A40) r4: C (0xA80) ; ; Local Variables: ; --------------- ; tmp: f0 0> adds f31, f31, f0 1> beq r1, @10 2> lds f1, 0(r2) 3> lds f2, 0(r3) 4> muls f1, f2, f3 5> adds f0, f3, f0 6> addqi r2, 4, r2 7> addqi r3, 4, r3 8> subqi r1, 1, r1 9> br r31, @1 10> sts f0, 0(r4) 11> ret r31,(r26) 6

Microarquitecturas a estudiar en Práctica 2 Ejercicio 2 ¾ Modelo Ideal con Anticipación. Configuración Kscalar = <default> ¾ Modelo Ideal sin Anticipación. Configuración Kscalar = <default> (Exec Core) Result Bypass = ALSE ¾ Modelo Branch. Configuración Kscalar = <default> (Branch Pred) Perfect TargPred= ALSE ( etch) Branch Perfect= ALSE ¾ Modelo BTB. Configuración Kscalar = <default> (Branch Pred) Perfect TargPred= ALSE (Branch Pred) BTB Active=TRUE ( etch) Branch Perfect= ALSE ¾ Modelo SuperScalar. Configuración Kscalar = <default> (Superscalar) Decode Width=2 (Superscalar) Execution Width=2 (Superscalar) etch Width=2 (Superscalar) Retire Width=2 ¾ Modelo Dcache. Configuración Kscalar = <default> (Exec Core) dcache Perfect= ALSE 7

Cuestionario de la Práctica 2 Ejercicio 2 1. Cuáles son las combinaciones de instrucciones que producen ciclos de penalización por los tipos de riegos denominados WB y RAW en el programa vectprod.eio para el "Modelo Ideal con Anticipación"?. Rellenar la siguiente tabla para todos los casos de la primera y segunda iteración del programa vectprod.eio Tipo de Riesgo Ciclo de ejecución Instrucción genera dato (etapa segmentación) Instrucción consume dato (etapa segmentación) Ciclos de penalización Justificar los resultados. 2. Después de ejecutar todo el programa del apartado anterior y tomando los datos obtenidos por la utilidad de cálculo de estadísticas, justificar el número total de ciclos de penalización que el simulador indica. 3. Ejecutar todo el programa vectprod.eio para cada uno de los modelos descritos anteriormente y realizar los cálculos necesarios para rellenar la siguiente tabla: Modelo Ciclos CPI Speed-Up La medida del Speed-Up se realiza tomando como referencia el Modelo Ideal con Anticipación, que aparece referenciado más arriba como "<default>". Comentar y justificar los resultados. 4. Mencionar cuál es la configuración que produce mayor Speed-Up y cuáles son las razones que ocasionan el mayor nivel de prestaciones. Por qué el procesador superescalar no proporciona un Speed-Up=2?. 5. Cuáles son las instrucciones que producen penalización debido a fallos en la predicción de saltos en el modelo BRANCH?. Justificar el número total de ciclos de penalización que el simulador indica. 6. Por qué sólo se producen 7 ciclos de penalización cuando se activa el predictor de saltos de tipo BTB (Modelo BTB )?. 8

7. Qué instrucciones de acceso a memoria producen las penalizaciones por fallo de acceso a la memoria cache L1 de datos en el modelo Dcache?. Justificar el número total de ciclos de penalización que el simulador indica. 8. Combinar en un gráfico los resultados obtenidos respecto al número de ciclos totales, CPI, y los números de ciclos para cada tipo de penalización. En el eje de abscisa se visualizarían los distintos modelos, y para cada uno de estos aparecería varias barras indicando ciclos (ejecución o penalización diferenciada por tipo). Incluir también una tabla donde aparezcan los datos numéricos de la figura. 9. Repetir el apartado 3 para el programa go.eio después de haber ejecutado al menos 20 Millones de instrucciones. 10. Realizar una gráfica donde se visualicen en un diagrama de barras los resultados obtenidos para CPI y Speed-Up en los apartados 3 y 9. En el eje de abscisa se pondrán un grupo de barras para cada programa, y existirá una barra por cada modelo de microarquitectura. Comentar la gráficas y los resultados obtenidos. 11. Repetir los apartados 9 y 10 para los programas: GCC (gcc.eio), PERL (perl.eio), APPLU (applu.eio), SU2COR (su2cor.eio), MGRID (mgrid.eio), IJPEG (ijpeg.eio). Todos estos programas se encuentran en el fichero eio.zip. Comentar y justificar los resultados. 9