UNIVERSIDAD NACIONAL DE INGENIERIA FACULTAD DE ELECTROTECNIA Y COMPUTACION INGENIERIA EN COMPUTACION ARQUITECTURA DE MAQUINAS III. SIMULADOR DLX (jbz)

Documentos relacionados
Arquitectura de Computadores Problemas (hoja 4). Curso

OBJETIVOS ALGUNAS CONSIDERACIONES SOBRE WINDLX

Aspectos avanzados de arquitectura de computadoras Pipeline. Facultad de Ingeniería - Universidad de la República Curso 2017

MANUAL DE INSTALACIÓN DEL DIMM ANEXOS Y FORMULARIOS Linux

Arquitectura de Computadoras. Clase 4 Segmentación de Instrucciones

Arquitectura de Computadores Problemas (hoja 2). Curso

Tutorías con Grupos Reducidos (TGR) Sesión 2: Paralelismo a Nivel de Instrucción

Procesadores segmentados. El DLX.

TEMA 2: PARALELISMO INTERNO EN SISTEMAS COMPUTADORES SEGMENTACION

COMPUTADORES SEGMENTADOS (DLX)

Introducción a la arquitectura de computadores

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

PRÁCTICAS DE ARQUITECTURA DE COMPUTADORES

Multiplicación de matrices con DLX

6. PROCESADORES SUPERESCALARES Y VLIW

APENDICE B Ensamblador IASM11/Simulador AVSIM11

Ejercicios de Paralelismo a Nivel de Instrucción

Guía de Instalación de fastpos

Tratamiento de Excepciones en MIPS

Conceptos de Arquitectura de Computadoras Curso 2015

Tema 4 (II) El procesador

GUIA DE INSTALACIÓN DEL FORMULARIO DIGITAL PARA LA PRESENTACIÓN DE PROYECTOS PARA ESTÍMULOS TRIBUTARIOS

Ejercicios del tema 4. El procesador

Java Actualizado, de no ser así descargar versión más reciente

Organización de Computadoras. Clase 6

ARQUITECTURA DE SISTEMAS PARALELOS. 3º INGENIERÍA TECNICA EN INFORMÁTICA DE SISTEMAS. PRÁCTICA 6 (curso 03/04) SEGMENTACION EN EL PROCESADOR DLX

INSTITUTO TECNOLOGICO SUPERIOR DE CIUDAD HIDALGO

Procesadores superescalares. Introducción

ServiceTonic. Guía de instalación

Qué es un programa informático?

ServiceTonic - Guía de Instalación ] ServiceTonic. Guía de instalación GUÍA DE INSTALACIÓN

SISTEMA CABILDO MANUAL DE INSTALACIÓN CLIENTE ERP CABILDO LA SOLUCIÓN TECNOLÓGICA MÁS COMPLETA E INTEGRAL PARA GOBIERNOS LOCALES

Estructura de Computadores

INSTALACION DE WINDOWS 98

HERRAMIENTAS DEL SISTEMA PRESENTADO POR: NELSON PLAZAS ANDRES CHARRY

Propósito de la. Aprendizaje:

1. Objetivo y evolución de los procesadores ILP.

ARQUITECTURA DE COMPUTADORES. Práctica 8

EPSON STYLUS COLOR 740 Manuales On-line

Manual para configurar un servidor AppServ En una computadora. Y operar el sistema SICAM en intranet. Nucúncu Tecnología

GUÍA DE INSTALACIÓN PARA RISK SIMULATOR 2016

Tema: Microprocesadores

Organización de computadoras. Clase 4. Universidad Nacional de Quilmes. Lic. Martínez Federico

Partes de una computadora. Conceptos Generales. Elementos de Computación (CU) Computación (TIG) El Hardware de una computadora

$0 Representa al parámetro cero o nombre del programa $1 Representa al parámetro uno $2 Representa al parámetro dos

DB GENERATOR. Base de datos para USB Media Player. Manual de usuario

MANUAL DE INSTALACIÓN COI

PRÁCTICA SOFTWARE OPERATIVO Y DE DESARROLLO Parte I. Objetivos

CONSEJERÍA DE AGRICULTURA Y MEDIO AMBIENTE SECRETARÍA GENERAL TÉCNICA. INFORMÁTICA Área de desarrollo ETER

Práctica 3 - Arquitectura del CPU

SISTEMA OPEATIVO DEFINICIÓN

Tema: Administración y respaldo de información.

Manual de usuario de Kiva

Instalación del Software DSD en un ordenador Mac

Unidad Nº II Capacidad de la unidad central. de procesamiento. Instituto Universitario Politécnico. Santiago Mariño

FUNCIONAMIENTO DEL ORDENADOR

1. Introducción... 2

Sistema electrónico digital (binario) que procesa datos siguiendo unas instrucciones almacenadas en su memoria

El Computador y sus Partes INTRODUCCIÓN A LAS TECNOLOGÍAS INFORMÁTICAS

Manual de Descarga, instalación y resguardo de datos

Guía de usuario de CardioChek Link

Introducción Mic i ro r s o of o t t W or o d r

Operaciones lógicas y repetición

1. Computadores y programación

TECNOLOGÍAS DE LA INFORMACIÓN Y DE LA COMUNICACIÓN UD 3: SISTEMAS OPERATIVOS 1. DEFINICIÓN Y COMPONENTES DE UN SITEMA OPERATIVO.

CURSO BÁSICO DE ALFABETIZACIÓN DIGITAL CENTRO INFORMÁTICO EMPEDRADO CONTENIDO: ELEMENTOS BÁSICOS DE

Programa de ayuda Modelos Fiscales PRIMERA INSTALACIÓN DEL PROGRAMA

Funcionamiento con Sistemas Operativos Windows 7 y 8

MANUAL DE INSTALACIÓN DEL DIMM FORMULARIOS GENÉRICO Windows, Macintosh y Linux

8. Diseño de la codificación binaria del repertorio de Instrucciones.

TEMA: LOS SISTEMAS OPERATIVOS

Manual de Usuario Guía de uso para las aplicaciones en Java Web Start

Programa de ayuda Modelos Fiscales

Ez3D Plus Guía de instalación

Arquitectura de Computadores II Clase #3

Manual de instalación de programas de Sucesiones y Donaciones

Programación de Sistemas. Unidad 1. Programación de Sistemas y Arquitectura de una Computadora

Ingeniería Informática. Ampliación de Estructura de Computadores. Curso

Diseño del procesador MIPS R2000

ANTECENDENTES DE LA COMPUTADORA

COMPILACIÓN Y DISCOS DE DISTRIBUCIÓN DE UNA APLICACIÓN

Instalación de VirtualBox. Prácticas adicionales

Macintosh. Requisitos. Activación y uso de EtherTalk. Mac OS 9.x. Impresora a color Phaser 8400

BANCO DE REACTIVOS DE OPCIÓN MÚLTIPLE WINDOWS VISTA

Previo al uso del sistema SAT, se deben verificar las máquinas de los usuarios, y realizar los siguientes pasos:

TOUCH DISPLAY DOWNLOADER MANUAL DE INSTRUCCIONES

ARQUITECTURA VON NEUMANN

1 Philips Electronics

Manual del padre de familia

Guía rápida de Instalación Sistemas D3xD Restaurant

TBK NEO PC Viewer Manual de usuario

INTRODUCCIóN A LA PROGRAMACIóN APUNTES DE JAVA APUNTES DE JAVA

SISTEMA DE REGISTRACIÓN DE MOVIMIENTOS RUBRO GRANOS MANUAL DE INSTALACIÓN

Tema 7: Procesadores superescalares

Guía del usuario. NVIDIA SLI Cómo configurar un PC con SLI

TEMA 2: Sistemas Operativos

Guía paso a paso de la actualización de Windows 8.1

V Bienvenidos al mundo Perfect Choice Antes de comenzar a usar el producto es importante que leas este manual.

HELPPEOPLE CLOUD AGENT Manual de usuario de la Versión 2.0

TEMA 1. IMPLANTACIÓN DE SISTEMAS OPERATIVOS MODO ESCRITORIO. 2 FPB INFORMÁTICA DE OFICINA IES NUM. 3 LA VILA JOIOSA

Transcripción:

UNIVERSIDAD NACIONAL DE INGENIERIA FACULTAD DE ELECTROTECNIA Y COMPUTACION INGENIERIA EN COMPUTACION ARQUITECTURA DE MAQUINAS III SIMULADOR DLX (jbz) Integrantes: Denis José Torres Guadamuz 2001 10500 Marconi Alexander Poveda Chacón 2001 10932 Hamerlin Ramón Silva Ruiz 2001 10552 Sección: 5T3 CO Prof. Guillermo Loaisiga 19/07/05

Universidad Nacional de Ingeniería Arquitectura de Máquinas III 1 Introducción DLX (jbz) es un simulador del procesador DLX segmentado. Es un programa hecho en JAVA lo cual permite su portabilidad a múltiples arquitecturas de sistemas de cómputo (ver Requerimientos del Sistema). El simulador DLX (jbz) después de leer un archivo conteniendo código DLX, muestra información importante sobre el CPU (pipeline, registros, memoria,...) mientras se ejecuta el código paso a paso o continuamente. DLX (jbz) ofrece estadísticas sobre el comportamiento del cause a lo largo del tiempo. La segmentación encausada es una técnica de implementación que consiste en solapar la ejecución de múltiples instrucciones en el tiempo, en los procesadores que implementan esta técnica la ejecución de una instrucción se divide en diferentes fases y el procesador se organiza en unidades o secciones de ejecución relativamente independientes llamadas segmentos o etapas. El objetivo de la segmentación es conseguir una instrucción por ciclo, aunque cada instrucción por separado ocupe varios ciclos (CPI>1).

Universidad Nacional de Ingeniería Arquitectura de Máquinas III 2 Diseño del Simulador Estructura Lógica del : El simulador DLX (jbz) cuenta con 32 registros enteros de propósito general, nombrados de R0 a R31. Está segmentado en 5 etapas, las cuales son: BUS, D/L, ALU, MEM, y ESC. Etapa BUS D/L ALU MEM ESC Descripción Etapa de búsqueda o fetch de la instrucción e incremento del PC Decodificación/Carga de operandos (registros) en ALU Ejecución de operaciones y cálculo de direcciones efectivas de datos Acceso a memoria para lectura (M->R) o para escritura (R->M) Escritura de resultados en los registros Cuenta con una memoria de 100 casillas, numeradas de 000 a 099. En la memoria se almacena el código fuente que se ejecuta en el simulador, así como valores enteros resultado de operaciones de escritura en memoria. Formato de instrucciones del DLX (jbz): El formato de instrucción del DLX (jbz) es el siguiente: Cálculo OP RD,RF1,RF2 RD = RF1 OP RF2 Acceso a Memoria LW RD,DB(RF) RD = M[RF + DB] Escritura en Memoria SW DB(RF1),RF2 M[RF1 + DB] = RF2 Significado de simbología: Símbolo OP RD RF1 RF2 DB RF Descripción Indica un tipo de operación Registro destino Registro fuente primero Registro fuente segundo Dirección de memoria base Registro Fuente

Universidad Nacional de Ingeniería Arquitectura de Máquinas III 3 Juego de instrucciones del DLX (jbz): Cada instrucción cargada en el simulador DLX (jbz) ocupa una casilla de memoria. En el código fuente del programa las MAYUSCULAS y minúsculas se tratan por igual. Instrucción Ejemplo Descripción ADDI ADDI R1,R0,7 Suma el Registro Fuente con una Constante y el resultado se almacena en el Registro Destino. SUBI SUBI R1,R0,7 Resta el Registro Fuente de una Constante y el resultado se almacena en el Registro Destino. ORI Aplica la operación OR a nivel de bits, entre el Registro ORI R1,R0,7 Fuente con una Constante y el resultado se almacena en el Registro Destino. ANDI Aplica la operación AND a nivel de bits, entre el Registro ANDI R1,R0,7 Fuente con una Constante y el resultado se almacena en el Registro Destino. XORI Aplica la operación XOR a nivel de bits, entre el Registro XORI R1,R0,7 Fuente con una Constante y el resultado se almacena en el Registro Destino. ADD ADD R3,R1,R2 Suma el Registro Fuente 1 con el Registro Fuente 2 y el resultado se almacena en el Registro Destino. SUB SUB R3,R1,R2 Resta el Registro Fuente 1 del Registro Fuente 2 y el resultado se almacena en el Registro Destino. MULT MULT R3,R1,R2 Multiplica el Registro Fuente 1 con el Registro Fuente 2 y el resultado se almacena en el Registro Destino. DIV DIV R3,R1,R2 Divide el Registro Fuente 1 entre el Registro Fuente 2 y el resultado se almacena en el Registro Destino. OR Aplica la operación OR a nivel de bits, entre el Registro OR R3,R1,R2 Fuente 1 con el Registro Fuente 2 y el resultado se almacena en el Registro Destino. AND Aplica la operación AND a nivel de bits, entre el Registro AND R3,R1,R2 Fuente 1 con el Registro Fuente 2 y el resultado se almacena en el Registro Destino. XOR Aplica la operación XOR a nivel de bits, entre el Registro XOR R3,R1,R2 Fuente 1 con el Registro Fuente 2 y el resultado se almacena en el Registro Destino. LW Carga en el Registro Destino el valor ocupado en la celda LW R3,0(R1) de memoria cuya dirección es: la suma de la Dirección Base más el valor del Registro Fuente.

Universidad Nacional de Ingeniería Arquitectura de Máquinas III 4 Instrucción Ejemplo Descripción SW Guarda el valor del Registro Fuente 2 en la celda de SW 0(R1),R2 memoria cuya dirección es: la suma de la Dirección Base más el valor del Registro Fuente 1. NOP NOP Operación de relleno. No realiza ninguna operación. TRAP TRAP Indica al simulador que el programa ha terminado ; ;comentario Todo texto a la derecha del símbolo punto y coma será omitido por el simulador Estructura del Código del : Diagrama de clases del simulador DLX (jbz)

Universidad Nacional de Ingeniería Arquitectura de Máquinas III 5 Clase Principal.java Presentacion.java Instrucciones.java InstDecode.java Descripción Contiene el método Main y es el dlx en si. Clase JFrame usada al inicio para mostrar pantalla de bienvenida. Contiene métodos y constantes para manipular, leer y procesar las instrucciones válidas para el simulador. Clase para contener la estructura decodificada de cada instrucción, usada para buscar dependencias. jfrmdependencias.java Clase tipo Ventana encargada de encontrar y mostrar mostrar las dependencias en un código. DlxFiltro.java frameayuda.java jfrmcodigo.java jfrmestadisticas.java ifrmpipeline.java jfrmregistros.java Clase usada para filtrar los archivos con extensión.dlx cuando se muestra la ventana Abrir. Clase tipo Ventana para mostrar la ayuda. Clase tipo Ventana para mostrar el código cargado en memoria. Clase tipo Ventana para mostrar las estadísticas Clase tipo Ventana para mostrar el pipeline Clase tipo Ventana para mostrar los registros

Universidad Nacional de Ingeniería Arquitectura de Máquinas III 6 Uso del simulador Como Correrlo Requerimientos del simulador DLX (jbz): Software: Es necesario para la ejecución del simulador DLX (jbz) la previa instalación de la plataforma Java 2 Standard Edition. Sistema operativo: El sistema operativo puede ser cualquiera de los mencionados en la siguiente lista, 1. Plataformas Win32 (Windows 95, Windows 98, Windows NT, o superiores). 2. Plataformas basadas en UNIX (incluye Linux y Solaris). 3. Plataforma MAC OS (Macintosh). Espacio de disco duro: Menos de 1 MB. Memoria RAM: Mínimo de 32 MB. Procesador: Mínimo de 133 MHZ. Instalación: Copie la carpeta dlxjbz a su disco duro. Ejecución del simulador: En una consola de comandos (la ventana de MS-DOS en Windows) ubicarse en el directorio dlxjbz/bin y escribir: java -jar dlxjbz.jar Nota para usuarios de Windows: en el directorio dlxjbz/bin se incluye un archivo por lotes con el nombre de: run.bat el cual puede ejecutar la aplicación con sólo ser picado dos veces.

Universidad Nacional de Ingeniería Arquitectura de Máquinas III 7 Referencia rápida a los menús: Menú Archivo Ejecutar Configurar Ventana Ayuda Submenú Acceso Rápido Descripción Reset Ctrl + R Reinicia el Simulador Abrir Ctrl + A Abrir un archivo dlx para ejecutar Salir Ctrl + S Salir del simulador Un Ciclo F5 Ejecuta un ciclo (un paso) Múltiples Ciclos F6 Ejecuta una cantidad de ciclos según se especifique Correr F7 Corre por completo todo el programa Instrucciones en el Pipeline Ctrl + I Establece la cantidad de instrucciones que pueden estar en el pipeline Registros Ctrl + 1 Muestra la ventana Registros Código Ctrl + 2 Muestra la ventana Código Pipeline Ctrl + 3 Muestra la ventana Pipeline Estadísticas Ctrl + 4 Muestra la ventana Estadísticas Dependencias Ctrl + 5 Muestra la ventana Dependencias Contenido F1 Muestra la ayuda Acerca de Ctrl + F1 Muestra información sobre los autores del simulador Sientase libre de crear su propios códigos DLX y experimentar con diferentes configuraciones.

Universidad Nacional de Ingeniería Arquitectura de Máquinas III 8 Plan de Pruebas y Resultados Prueba 1: ;Ejemplo de código para DLX (jbz) ;Programa que suma 8+9 y guarda el resultado en R3 ;Asegurar que el valor de R0 sea 0 XOR R0,R0,R0 ;Cargar 8 en R1 ADDI R1,R0,8 ;Cargar 9 en R2 ADDI R2,R0,9 ;Sumar R1+R2 y guardar en R3 ADD R3,R1,R2 ;Final del programa TRAP El objetivo de la prueba es comprobar el correcto funcionamiento del simulador DLX (jbz) con un código sencillo. Resultados obtenidos mediante el simulador: Valores finales de los Registros R0 = 0 R1 = 8 R2 = 9 R3 = 17 Dependencias (0) XOR R0,R0,R0 (1) ADDI R1,R0,8 RAW0 (2) ADDI R2,R0,9 RAW0 (3) ADD R3,R1,R2 RAW1 RAW2

Universidad Nacional de Ingeniería Arquitectura de Máquinas III 9 Estadísticas Variable Valor Numero de Instrucciones Total 5 Ciclos Ejecutados 9 Instrucciones Ejecutadas 4 CPI 2.25 ILP 0.44 Instrucciones en el Pipeline 1 Dependencias RAW 4 Dependencias WAR 0 Dependencias WAW 0 Instrucciones Simultaneas en el Pipe Line 5 Resultado de la prueba: OK

Universidad Nacional de Ingeniería Arquitectura de Máquinas III 10 Prueba 2: ; Ejemplo DLX (jbz) ; Carga y lectura de valores en memoria XOR R0,R0,R0 ADDI R1,R0,15 ADDI R2,R0,4 ; Asegurar 0 en R0 ; Cargar 15 en R1 ; Cargar 4 en R2 ; Escritura en memoria SW 0(R1),R2 ; M[15]=4 en la casilla 15 escribir 4 SW 1(R1),R2 ; M[15+1]=4 en la casilla 15+1 escribir 4 ; Lectura de memoria LW R3,0(R1) LW R4,1(R1) ADD R4,R2,R3 ; r3 = M[15] ; r4 = M[15+1] ; r4 = r4+r3 ;FIN TRAP El objetivo de la prueba es comprobar el correcto funcionamiento del simulador DLX (jbz) con instrucciones de acceso a memoria. Resultados obtenidos mediante el simulador: Valores finales de los Registros R0 = 0 R1 = 15 R2 = 4 R3 = 4 R4 = 8 Valores finales de la Memoria M[015] = 4 M[016] = 4

Universidad Nacional de Ingeniería Arquitectura de Máquinas III 11 Dependencias (0) XOR R0,R0,R0 (1) ADDI R1,R0,15 RAW0 (2) ADDI R2,R0,4 RAW0 (3) SW 0(R1),R2 RAW1 RAW2 (4) SW 1(R1),R2 RAW1 RAW2 (5) LW R3,0(R1) RAW1 (6) LW R4,1(R1) RAW1 (7) ADD R4,R2,R3 RAW2 RAW5 WAW6 Estadísticas Variable Valor Numero de Instrucciones Total 9 Ciclos Ejecutados 13 Instrucciones Ejecutadas 8 CPI 1.62 ILP 0.62 Instrucciones en el Pipeline 1 Dependencias RAW 10 Dependencias WAR 0 Dependencias WAW 1 Instrucciones Simultaneas en el Pipe Line 5 Resultado de la prueba: OK

Universidad Nacional de Ingeniería Arquitectura de Máquinas III 12 Prueba 3: ; Ejemplo para mostrar que el simulador DLX (jbz) ; reconoce la división entre cero como un error ;I0 XOR R0,R0,R0 ;I1 ADDI R1,R0,8 ;I2 DIV R1,R1,R0 ; poner cero en r0 ; cargar 8 en R1 ; dividir 8/0 ERROR división por cero ;I3 TRAP ; Finaliza el programa El objetivo de la prueba es comprobar el correcto funcionamiento del simulador DLX (jbz) cuando un programa intenta dividir ente cero. Resultado de la prueba: OK, el simulador avisó sobre el intento de división entre cero. Prueba 4: ; Ejemplo DLX (jbz) ; Demostración de manejo de acceso no valido a memoria XOR R0,R0,R0 ADDI R1,R0,8 ADDI R2,R0,9 ADD R3,R1,R2 ; poner cero en r0 ; cargar 8 en r1 ; cargar 9 en r2 ; r3 = r1 + r2 ; Intenta acceder a la dirección 120+9 ; la cual no existe y provoca un acceso no valido a memoria SW 120(R2),R3 ; M[120+9] = r3 ; Finaliza el programa TRAP El objetivo de la prueba es comprobar el correcto funcionamiento del simulador DLX (jbz) cuando un programa intenta acceder a una dirección de memoria no existente. Resultado de la prueba: OK, el simulador avisó sobre el intento de acceso a una dirección de memoria no existente. Estas pruebas y otras se incluyen en el directorio ejemplos_dlx dentro del directorio del simulador.

Universidad Nacional de Ingeniería Arquitectura de Máquinas III 13 Estudio del Simulador Variar Parámetros Repitiendo la prueba 1, pero variando la cantidad de instrucciones que pueden estar en el Pipeline. Antes de ejecutar el mismo código que el ejemplo de la prueba 1 se ha configurado al simulador DLX (jbz) para que solo permita 3 instrucciones en el pipeline. Resultados: Todos los resultados son idénticos a los mostrados en la Prueba 1, no así las estadísticas, las cuales se muestran a continuación. Estadísticas Variable Valor Numero de Instrucciones Total 5 Ciclos Ejecutados 11 Instrucciones Ejecutadas 4 CPI 2.75 ILP 0.36 Instrucciones en el Pipeline 1 Dependencias RAW 4 Dependencias WAR 0 Dependencias WAW 0 Instrucciones Simultaneas en el Pipe Line 5 Observación: Los resultados importantes que destacar son: el CPI resultó ser 2.75 contra 2.25 obtenido antes lo cual significa que al haber menos instrucciones en el pipeline la cantidad de ciclos promedios que hay que ejecutar por cada instrucción aumenta, en cambio el ILP disminuye. Además de que la cantidad total de ciclos necesarios para ejecutar el programa incrementó.

Universidad Nacional de Ingeniería Arquitectura de Máquinas III 14 Conclusiones Desde un punto de vista general: el uso de un simulador del procesador DLX, con la capacidad de poder realizar distintas pruebas, con distintos códigos, y ejecuciones paso a paso, ayuda grandemente a comprender los conceptos de segmentación encausada o pipeline. En nuestra experiencia: de los datos obtenidos en las distintas pruebas que realizamos con nuestro simulador, encontramos que: mientras más instrucciones a la vez hay en el pipeline la cantidad de ciclos necesarios para ejecutar todo el programa disminuye, lo cual también significa que el CPI disminuye y el ILP aumenta, lo cual se traduce en un aumento del rendimiento del procesador.

Universidad Nacional de Ingeniería Arquitectura de Máquinas III 15 Bibliografía Segmentación Encausada Prof. José L. Díaz Chow Depto. de Arquitectura y Sistemas WinDLX DLX-Pipeline Simulator TU Vienna, Inst. fr Technische Informatik