Examen de Estructura de Computadores. Convocatoria ordinaria ( 23de Junio de 2005) Nombre y apellidos : .......................................................................................................................... UNIVERSIDAD DE VALLADOLID 2. (2 puntos) Un computador tiene una memoria principal de 64Kpalabras de 16 bits. También tiene una memoria caché totalmente asociativa de 2Kpalabras y 256 palabras por bloque. Suponemos que la caché está inicialmente vacía y que el algoritmo de reemplazo es MRU (Most Recently Used, más recientemente usado). Suponemos que la CPU ejecuta un bucle 5 veces, en el que accede a 2301 palabras, desde la dirección 0 a la 2300. Si la caché es 7 veces más rápida que la memoria principal, se pide: a) Formato de direcciones de memoria. b) Calcular el tiempo que se tarda en realizar estos accesos a memoria principal si el computador no tuviera memoria caché. c) Evolución de la memoria caché al ejecutar los bucles. d) Calcular cuántos fallos de caché se producen y sus causas e) Si cada vez que se produce un fallo primero se mueve el bloque completo de memoria principal a memoria caché y luego se lee el dato de la caché, calcular el tiempo que tarda la CPU en realizar estos accesos a memoria. a) Las direcciones son de 16 bits al tener 64 Kpalabras. El campo de palabra es de 8 bits porque cada bloque tiene 256 palabras. La memoria principal tiene 256 bloques, por tanto el campo de etiqueta es de 8 bits. Etiqueta (8 bits) Palabra (8 bits) b) Si el tiempo de acceso a caché tc , a memoria principal será de 7 tc . Por lo que el tiempo total será : 2301x7 tc x5 c) Vamos a construir una tabla auxiliar para ver los bloques que intervienen en el bucle. Direcciones en decimal 0-255 256-511 512-767 768-1023 1024-1279 1280-1535 1536-1791 1780-2047 2048-2303 Direccional en hexadecimal 0000-00FF 0100-01FF 0200-02FF 0300-03FF 0400-04FF 0500-05FF 0600-06FF 0700-07FF 0800-08FF Etiqueta de bloque 00 01 02 03 04 05 06 07 08 La caché tiene 8 bloques (2Kpalabras/256 palabras/bloque). Su evolución es la siguiente: Bloque caché 0 1 Bucle 1 0 1 Bucle 2 0 1 Bucle 3 0 1 Bucle 4 0 1 Bucle 5 0 1 2 3 4 5 6 7 2 3 4 5 6 7/8 2 3 4 5 6/7 8 2 3 4 5/6 7 8 2 3 4/5 6 7 8 2 ¾ 5 6 7 8 En el bucle 1 al llegar el bloque 8 desaloja al último que se ha usado que es el 7. En los demás bucles el problema es similar. d) Según la tabla anterior se producen 8 fallos en frío y 5 fallos por capacidad. e) En cada acceso fallido se tiene que cargar la caché con el bloque en cuestión y luego se vuelve a acceder a la caché para leer la palabra. Tendremos pues dos componentes en el tiempo total: Tiempo de lectura de las 2301x5 palabras en caché = 2301x5xt c Tiempo de carga de los bloques en cache = 13x256x7t c Tiempo total = (2301x5 + 13x256)xtc 3.- (1 punto) En un microprocesador de 8 bits se utiliza el siguiente formato para números en punto flotante: Bit de signo S (1 bit) Exponente en exceso a 4 (3 bits) Mantisa normalizada entre 1 y 2 con bit oculto (4 bits) Dados los números: 0x26 y 0xDC a) ¿A qué números decimales representan? b) Realizar los pasos necesarios para realizar la resta y la multiplicación de dichos números explicando detalladamente los algoritmos utilizados. a) A = 0x26 = 0 010 0110 = (-1)0 1.375 22-4 = + 1.375 2-2 = + 0.34375 B = 0xDC = 1 101 1100 = (-1)1 1.75 25-4 = - 1.75 21 = - 3.50 b) A-B Para efectuar la operación seguimos los siguientes pasos: Elegir el exponente menor ( es el de A que vale 2) Calcular el número de desplazamientos |A-B| = 3 Desplazar a la derecha la mantisa completa de A 3 posiciones 1.0110 0.0010110 Examen de Estructura de Computadores. Convocatoria ordinaria ( 23de Junio de 2005) Nombre y apellidos : .......................................................................................................................... UNIVERSIDAD DE VALLADOLID Restar las mantisas ( como la segunda es negativa en realidad sumamos las mantisas 0.0010110 + 1.1100000 = 1.1110110 Para redondear la mantisa usamos truncamiento ya que no se indica el modo en que lo realiza. 1.1110 El resultado está normalizado A-B = 0 101 1110 A*B Para efectuar esta operación seguimos los siguientes pasos Signo es el resultado de efectuar la operación signoA exor signoB = 1 Exponente = expA +expB = -2 +1 +4 = 3 Mantisa : vamos a usar el algoritmo de booth B = 011100 Registro A 000000 000000 100100 110010 111001 010101 001010 101110 110111 010011 001001 Registro MQ 010110 001011 001011 000101 000010 000010 100001 100001 010000 010000 101000 C 0 0 0 0 1 0 0 1 0 0 Reg. A 00000 00000 11100 01110 01010 10101 01010 00110 10011 01001 Reg. MQ 10110 01011 01011 00101 00101 00010 10001 10001 01000 10100 MQ-1 0 0 0 1 1 1 0 0 1 1 0 MQ0 0 1 1 1 1 0 1 1 0 Acción desplaza resta Desplaza desplaza suma Desplaza resta Desplaza suma Desplaza 1 0010 0011 Contador I 6 5 4 3 2 1 0 Acción Desplazar Sumar Desplazar sumar Desplazar desplazar Sumar desplazar desplazar final El resultado es A*B = (-1)1 0.10011 21 y normalizando nos queda A*B = (-1)1 1.0011 20 -B = 100100 I 5 4 3 2 1 0 4.- (2 puntos) Responder brevemente a las siguientes preguntas: 1.- Define tiempo de acceso efectivo de un sistema de memorias 2.- ¿Para qué sirve un circuito DMA? Describe detalladamente su funcionamiento 3.- Dispositivos RAID 4.- Algoritmo de Robertson. Aplícalo a la operación 23x-7 5.- .Haz un esquema de un circuito que implemente un sumador condicional de 4 bits. 5.- (1 punto). Sobre un sistema con bus de datos de 16 bits y bus de direcciones de 20 bits, se desea implementar una memoria central con 256 Kpalabras de memoria ROM y 512 Kpalabras de memoria RAM. Para ello se dispone de módulos de memoria ROM de 128Kx1, 64Kx8 y 128Kx8 y módulos RAM de 128kx1 y 256 Kx8. Diseñar la memoria usando el menor número de circuitos de memoria y ocupando la RAM las posiciones mas bajas de memoria y la ROM las siguientes. RAM 512Kx16 necesitamos 4 circuitos de 256Kx8 ROM 256Kx16 necesitamos 4 circuitos de 128Kx8 6.- ( 1 punto) Multiplicadores binarios hardware en complemento a dos.