Estructura de Computadores
Grado en Ingeniería Informática
Curso 2018/2019

Proyecto de programación en ensamblador

Información General, Distribución de Software y Documentación


Tutorías Documentación Herramientas Anuncios Gestor de Prácticas Calificaciones

Profesores Responsables y Horas de Tutoría

Las posibles preguntas relacionadas con el proyecto se atenderán por correo electrónico en la dirección pr_ensamblador @ datsi.fi.upm.es. o personalmente en los despachos 4105 y/o 4106. El horario de atención personal a los alumnos para cuestiones relacionadas con este proyecto es el que se especifica en la siguiente dirección web para los profesores encargados del proyecto durante el presente semestre (José L. Pedraza, Manuel M. Nieto): Tutorías

Documentación del proyecto

La documentación del proyecto incluye el enunciado así como las normas de entrega, ejemplos de casos de prueba y fechas de corrección y exámenes. Debe tomarse como referencia el primer documento (Enunciado) aunque se facilita también una copia de la explicación realizada en clase (Presentación) que puede utilizarse como resumen.

En el siguiente enlace puede descargar la documentación asociada a las herramientas a emplear en el desarrollo el proyecto: manual de usuario del simulador y del ensamblador y una descripción completa del juego de instrucciones. También tiene disponible un breve resumen sobre la instalación de las herramientas utilizadas para la emulación del 88110::

Herramientas

M88110

La herramienta que se utiliza en la realización de este proyecto es el simulador del MC88110.

El MC88110 es un microprocesador RISC superescalar que forma parte de la familia 88000 de Motorola. Es capaz de iniciar dos instrucciones cada ciclo de reloj, respetando siempre la apariencia de ejecución secuencial del programa a través del mecanismo de pipeline del secuenciador. Las instrucciones se despachan hacia diez unidades funcionales que trabajan en paralelo.

El simulador del MC88110 que se utiliza en este proyecto permite configurar distintos parámetros de la memoria principal, de las memorias cache de instrucciones y datos y de la CPU.

El proyecto se realizará utilizando el ensamblador nativo del 88110 y empleando la configuración del fichero serie que se incluye en la distribución. Este fichero configura la CPU según los siguientes parámetros:

  • Cache de datos e instrucciones inhibidas
  • Memoria de un solo bloque con tiempo de acceso de 10 ciclos.
  • Ejecución serie.
  • Ordenamiento de bytes en memoria little-endian.
  • Modo de redondeo al más cercano.
Este modo de ejecución se invoca en Linux o en Solaris mediante el shellscript mc88100 de la distribución. En el caso de sistemas basados en Windows, se facilita, para realizar la misma labor, el archivo de órdenes de ejecución mc88100.bat .

Distribuciones

A continuación se listan las distribuciones disponibles del simulador. Todas ellas contienen los siguientes ficheros:
  • 88110e / 88110e.exe : Programa ensamblador. Permite ensamblar un fichero con un programa ensamblador a un fichero binario que puede leer el simulador.
  • em88110 / 88110.exe : Simulador del MC88110. Al invocarlo se le pasan dos parámetros: el fichero de configuración de la máquina y el fichero que contiene el programa compilado.
  • serie: Fichero de configuración de un computador serie sin caches.
Además, las versiones para sistemas Linux también contienen:
  • 88110ins: Programa que permite generar o modificar un fichero de configuración.
     
  • paralelo: Fichero de configuración de un computador superescalar con cache de instrucciones y datos.
     
  • INSTALL: ShellScript que instala la aplicación. Además genera el script mc88110 que invoca al emulador con el fichero de configuración serie. Se invoca con ./INSTALL ó sh INSTALL
     
Las distribuciones disponibles de la versión 1.9 del simulador son las siguientes (16-octubre-2018):

Sistema de entrega

La entrega de los ficheros especificados en el enunciado de este proyecto se realizará mediante la utilidad disponible a través del Gestor de entrega de prácticas y proyectos.
Página actualizada el 29 de noviembre de 2018

Noticias

__ Convocatoria de febrero 2019 __

  • 29-noviembre-2018. Errata en ejemplo del enunciado

    Se nos ha comunicado una nueva errata en el enunciado, en este caso referida al ejemplo sobre la subrutina FiltRec que aparece en las páginas 22 y siguientes. La errata consistía en que la definición de la imagen utilizada en el ejemplo contenía los bytes de cada palabra intercambiados, como si se almacenaran en formato big-endian. El resto del ejemplo era correcto (imágenes inicial y final en forma de matriz, datos en memoria antes y después de ejecutar la subrutina, programa principal). La definición correcta de la imagen de entrada es la siguiente (ya incorporada a la versión actual del enunciado):

            org 0x8000
    IMAGEN: data 4, 8
            data 0xFF0201FF, 0xFF0403FF
            data 0xFF0605FF, 0xFF0807FF
            data 0xFF0605FF, 0xFF0807FF
            data 0xFF0201FF, 0xFF0403FF

  • 22-noviembre-2018. Recordatorio sobre normas de entrega

    Por lo que observamos en algunas tutorías con alumnos del proyecto, conviene recordar que se deben cumplir las normas indicadas en las páginas 19 y 20 del enunciado bajo el epígrafe "Avisos importantes". En particular, queremos llamar la atención sobre el cumplimiento de los puntos 5 y 6 de dichos avisos.

  • 21-noviembre-2018. Errata en caso de prueba 14

    Se nos ha comunicado que el resultado del caso de prueba nº 14 era incorrecto. Tras comprobar que efectivamente había una errata, se ha corregido y ha quedado disponible una nueva versión del documento correspondiente (puede descargarla aquí).
    La errata no estaba en el resultado, sino en el elemento (2,2) de la imagen de entrada, el único cuyo valor no estaba comprendido en el rango 0x40 a 0x4F. Este píxel se mostraba erróneamente como un 0 (0x00) y en realidad debería aparecer como un 0x99.

  • 5-noviembre-2018. Errata en fechas de corrección

    Se ha detectado y corregido una errata en las fechas de corrección indicadas en el documento correspondiente a las diapositivas de la presentación. El documento ha quedado actualizado con las fechas correctas, que son las siguientes:

    • -Una corrección entre los días 5 a 8 ó 12 a 15 de noviembre.
    • -Segundo hito, el viernes día 16 de noviembre.
    • -Tres correcciones adicionales en días a elegir entre los siguientes: 19 a 23, 26 a 30 de noviembre, 3 a 5, 10 a 14 y 17 a 19 de diciembre.
    • -Última corrección, el jueves día 20 de diciembre.
  • 29-octubre-2018. Casos de prueba

    Se ha publicado el documento que contiene distintos casos de prueba para todas las subrutinas del proyecto. Está disponible en la sección de documentación de esta página y también aquí.

  • 16-octubre-2018. Software Linux

    Ha quedado disponible la versión 1.9 del simulador del 88110 para Linux (compilación estática) tanto para 32 bits como para 64 bits.

  • 15-octubre-2018. Aclaraciones/Preguntas Frecuentes

    Se ha habilitado una nueva página de aclaraciones sobre el enunciado del proyecto que se irá rellenando a partir de las cuestiones que puedan ir surgiendo durante el desarrollo del mismo.

    Está disponible a través del siguiente enlace: Aclaraciones

  • 15-octubre-2018. Alta en el Gestor del proyecto

    Hasta el viernes día 19/10 en que se abre oficialmente el entregador del proyecto para esta convocatoria, no será posible dar de alta los grupos de proyecto, ya que no estará configurada la relación de alumnos definitiva.

  • 9-octubre-2018. Explicación del proyecto en clase

    Los días anunciados para la explicación de este proyecto en aula son los siguientes: día 10/octubre a las 12h en los grupos 3S1M y 3S1M-B, el día 11/octubre a las 10h en los grupos 3S2M y 3S2M-B, y el día 15/octubre a las 15h en el grupo 3S3T. La explicación se realizará en el aula de teoría correspondiente a cada grupo.