Download Práctico 4
Document related concepts
no text concepts found
Transcript
Arquitectura de Computadores 1 Práctico 4 Práctico 4 Tema: Memorias ROM (Diagramas de bloques, simulación y generación del contenido). Ejercicio 1 Se dispone de memorias ROM de 8Kx8: (a) fabricar una memoria ROM de 32Kx8. (b) fabricar una memoria ROM de 16Kx16 Ejercicio 2 Se desea transformar caracteres ASCII, mediante una ROM, de forma tal que: convierta letras mayúsculas en minúsculas. convierta letras minúsculas en mayúsculas. los demás caracteres permanezcan incambiados. (a) Determinar el tamaño y la organización de la ROM especificando el significado de sus entradas y salidas. (b) Escribir en un lenguaje de alto nivel la rutina que genera el contenido de la ROM. Ejercicio 3 Se desea usar una ROM para implementar una función ROTACIÓN que tiene dos variables de entradas: un byte destinado a ser girado en forma circular (cada bit se corre al lugar siguiente y el ultimo al primero) y tres bits que indican el número de veces que se desea girar. La función devuelve el byte con sus ocho bits girados una cantidad de lugares entre 0 y 7 (según los tres bits). (a) Definir las entradas, salidas, tamaño y organización de la ROM necesaria. (b) Escribir un programa que genere el contenido de la ROM (para cada dirección calcular su contenido). Para esto se debe emplear un lenguaje de alto nivel que soporte la aritmética entera (de 16 bits por lo menos), las cuatro operaciones y modulo. Nota: no se disponen de otras operaciones sobre el tipo entero. Ejercicio 4 Se quiere utilizar una ROM para convertir un numero de 32 bit representado como punto fijo con 22 bits para la parte entera y 10 bit para la parte fraccionaria a la representación en punto flotante formato IEEE de precisión simple (1 bit para el signo, 8 bits para el exponente, 23 bits para la mantisa). Dimensionar la ROM y escribir una rutina en alto nivel que genere su contenido. Ejercicio 5 En las impresoras llamadas de "matriz de punto" los caracteres se representan como matrices de 8x8 puntos (según figura). La impresora imprime una columna de puntos por vez. La descripción de cada carácter ASCII (extendido de 8 bits) a ser impreso se almacena en una ROM. Página 1 de 3 Arquitectura de Computadores 1 f i l a s 7 6 5 4 3 2 1 0 Práctico 4 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 0 1 2 3 4 5 6 7 c o l u mn a s Se pide: (a) Definir las entradas, salidas, tamaño y organización de la ROM necesaria. (b) Como la construiría basándose en memorias ROM de 1Kx8 Ejercicio 6 Se considera un segmento de memoria de 1K bytes accesible usando las siguientes funciones: read(arg:out Byte; dir:in 0..1023) write(arg:in Byte; dir:in 0..1023) Se pide: (a) Describir un algoritmo que permita verificar, completamente, si este segmento de memoria funciona correctamente. (b) Suponiendo que pueden darse los siguientes errores en la memoria: - cuando se escribe la dirección x también se afecta la dirección x + 512 - si se almacenan más bits en 1 que en 0 se corrompen los datos de la memoria Es capaz el algoritmo descrito en (a) de detectar dichos errores. En caso de que no lo sea escribir un nuevo algoritmo que los detecte (c) Describir otros posibles errores que debieran ser detectados por el algoritmo anterior. (d) Mencionar porque la solución más general no es realizable. Ejercicio 7 Se dispone de un PC con 256 KB. de memoria. (a) Escribir un programa en alto nivel que genere TODOS los programas posibles, ejecutables o no, (en lenguaje de maquina) para dicha computadora. (b) Estimar la cantidad de programas. (c) Estimar el tiempo de ejecución del programa generador, suponiendo que se genera un programa cada menos de 1 microsegundo (1/1*2^20 s). Ejercicio 8 Determine una forma de direccionar 2n palabras de memoria, usando menos de n bits de direcciones. Ejercicio 9 (Examen 03/02/2003) Se dispone únicamente de una ROM 32K x 16 bits. Se pide: a) Construir una ROM 64K x 8 bits utilizando el chip del que se dispone y compuertas lógicas (AND, OR, NOT). Página 2 de 3 Arquitectura de Computadores 1 Práctico 4 b) Se utilizará la ROM para implementar un sumador simple (sin acarreo) de 8 bits. Especificar con un diagrama la organización del chip (entradas, salidas, esquema del contenido de la ROM). c) Indicar el contenido que se debe cargar en la ROM para la dirección 1794h para implementar el sumador de la parte (b). Ejercicio 10 (Examen 17/02/2003) Se desea transformar cualquier número en punto flotante de 16 bits (“media precisión”) a punto flotante de 32 bits (“simple precisión”). Se pide: (a) Determinar organización y tamaño, especificando el significado de sus entradas y salidas, de la ROM necesaria para realizar la transformación descrita. (b) Indicar el contenido de la ROM anterior en las direcciones 08C3h y 803Bh. (c) Suponiendo que se cuenta con compuertas lógicas y sumadores de n bits, implementar un circuito combinatorio que transforme números en punto flotante de 16 bits normalizados al correspondiente en punto flotante de 32 bits. Nota: Se recuerdan los siguientes datos del formato de punto flotante (tomado del estándar IEEE 754) Ejercicio 11 (Examen 15/03/2003) Se dispone de 4 chips de ROM: 2 chips 2K x 4 bits 1 chip 4K x 8 bits 1 chip 1K x 16 bits Se quiere implementar una única ROM de 8 bits de forma de maximizar su capacidad de almacenamiento, utilizando solamente los 4 chips de que se dispone. Se pide: (a) Especificar entradas, salidas y tamaño en kilobytes de la ROM de 8 bits a implementar. (b) Dibujar el circuito completo incluyendo todas las entradas y salidas de la ROM. Se dispone de buses, compuertas, multiplexores, buffers, decodificadores, etc. Justifique la solución propuesta. Página 3 de 3