Examen de Estructura de Computadores (10-02-2012) Solución teoría 1) Calcula las funciones de selección que determinan la ubicación de una ROM de 32K a partir de la dirección 0000 (CSrom), una RAM de 8K a partir de la dirección 8000 (CSrom) y un puerto de E/S de 8K en las últimas direcciones del espacio (CSes) sabiendo que el procesador dispone de 16 líneas de dirección (A15,…A0). Calcula también la ecuación lógica de una línea NM que valga 1 cuando se genere una dirección no perteneciente a ninguno de los elementos anteriores. Solución Para generar líneas que estén activas (1) durante el intervalo de 8K tenemos que descomponer los 64K en 8 bloques de 8K tenemos que decodificar las 3 líneas más significativas: 0 1 A13 + 2 CSrom 3 A14 DEC CSram 4 5 A15 + 6 NM CSe/s 7 2) Diseña una memoria de 4K palabras y 4 bits útiles de longitud de palabra, tolerante a un fallo simple, utilizando el código de Hamming. Se dispone de módulos de memoria de 2Kx 1 bits, 1K x 4 bits y módulos combinacionales. Dibuja el esquema de interconexión. A11 Datos de entrada 10 Datos de salida Libre de errores simples F SC 4 SC SC 1K x 4 bits 11 10 0 Direcciones SC A10 Memoria SC 1 11 1 11 1 2K x 1bit 2K x 1bit 2K x 1bit SC SC SC 4 1K x 4 bits 1 2 A11 A11 3 R/W DEC 10 SC 4 1K x 4 bits 11 F CORR 10 SC 1 2K x 1bit COMP 11 1 2K x 1bit 11 1 2K x 1bit 4 1K x 4 bits Funciones F y F’ d4 d3 d2 d1 C4 C2 C1 ------------------------------------------------------------------------------------m7 m6 m5 m4 m3 m2 m1 ------------------------------------------------------------------------------------1 1 1 1 0 0 0 1 1 0 0 1 1 0 1 0 1 0 1 0 1 ------------------------------------------------------------------------------------d4 d3 d2 d4 d3 d1 d4 d2 d1 datos paridades mensaje C4 C2 C1 = C4 = C2 = C1 3) El sistema de memoria virtual de un computador dispone de una memoria física de 3 marcos de página. Sobre él se ejecuta un programa que hace referencia a las páginas 1,2,3,2,1,4,5,3,5,5,1. Dibuja la evolución del contenido de la memoria física a lo largo de la ejecución del programa y determina el número de fallos de página para las siguientes políticas de sustitución de página: LRU, FIFO, FINUFO. Solución 1 2 3 1 4 5 1 1 1 1 1 1 1 3 3 3 3 2 2 2 2 2 5 5 5 5 5 3 3 3 4 4 4 4 4 1 F F F 1 4 5 3 LRU 2 5 5 1 f f 1 2 3 1 1 1 1 1 4 4 4 4 4 4 2 2 2 2 2 5 5 5 5 5 3 3 3 3 3 3 3 3 1 F F 1 4 5 FIFO f 3 2 f f 1 2 3 2 1 1 1 1 1* 1 5 2 2 2* 2* 2 3 3 3 FINUFO f f f f Nº fallos = 3f +4F = 7 F 5 5 1 Nº fallos = 3f +3F = 6 F 3 5 5 1 5 5* 5* 5* 2 3 3 3 3 4 4 4 4 4 1 F F F F Nº fallos = 3f +4F = 7 4) Un procesador trabaja a una f de 50 MHz. Se desea acoplar una memoria caché SRAM cuyo tiempo de acceso coincide con la duración del ciclo del procesador. Si la memoria principal tiene un tiempo de acceso Ta = 80 ns, y se sabe que la tasa de aciertos de la caché h = 85%, se pide el tiempo medio que tomará el acceso al subsistema de memoria. Solución Tc = 1/50MHz = Ta_cache = 2 ns Ta_medio = Ta_cache + Ta_mem –(h * Ta_mem/100) = 2+80(1-0.85) = 14 ns 5) Un determinado programa se ejecuta en una cierta máquina en 1 hora. De dicho tiempo, se sabe que dedica el 20% a operaciones de entrada/salida y el 80% del tiempo restante a procesamiento. Asuma que la velocidad de procesamiento de la CPU se dobla cada 18 meses. Determine cuál será la mejora obtenida en el rendimiento global del programa después de tres años, si no se produce mejoras en el subsistema de entrada/salida. Solución Mes CPU E/S Total 0 48 min 12 min 60 min 18 24 min 12 min 36 min 36 12 min 12 min 24 min En tres años, el rendimiento de la CPU se ha multiplicado por 4. Pero el rendimiento global se ha multiplicado por 2.5 6) Explica claramente cuáles son los pasos (eventos) para el tratamiento de una interrupción en un procesador. Solución Apuntes de clase 7) Describir brevemente ilustrándolo con un esquema el funcionamiento de una lectura asíncrona mediante el protocolo handshake. Solución Apuntes de clase 8) Tenemos un computador cuyo procesador trabaja con un reloj de 30 MHz con un CPI = 2 ciclos y cada operación de lectura o escritura de memoria tarda un ciclo. Determinar la máxima velocidad de transferencia de datos, en palabras por segundo, cuando empleamos: DMA con transferencia por robo de ciclo, DMA con transferencia transparente, para una CPU que en cada instrucción sólo usa el bus durante 1 ciclo. (datos: longitud de palabra 8bits) Solución DMA POR ROBO DE CICLO Instrucción i Instrucción i+1 D MA DM A 3 ciclos Velocidad de transferencia máxima = 3*107 ciclos/s / 3 ciclos/palabra = 107 palabras/s DMA TRANSPARENTE Instrucción i DMA Instrucción i+1 DMA DMA 7 DM A Velocidad de transferencia máxima = 3*10 ciclos/s / 2 ciclos/palabra = 1,5 * 107 palabras/s Examen de Estructura de Computadores (10-02-2012) Solución problemas Problema 1 Consideremos un procesador de 16 bits que dispone de un banco de 6 registros de propósito general y un espacio de direccionamiento de memoria de 64 KB. La memoria se direcciona por bytes y requiere tres ciclos de reloj para las operaciones de lectura y escritura. La unidad aritmético-lógica es capaz de realizar 20 operaciones aritméticas y lógicas (sumar, restar, multiplicar, dividir, incrementar, etc.). Asumiendo un código de operación (CO) de longitud fija, diseñar el formato de instrucción que permita construir un juego de instrucciones con al menos: 1. 40 instrucciones aritmético-lógicas tipo registro-registro. 2. 5 instrucciones de direccionamiento absoluto. 3. 5 instrucciones de direccionamiento relativo a registro base con desplazamiento máximo de 128 bytes. 4. 2 instrucciones de direccionamiento indirecto. Solución Como el repertorio de instrucciones cuenta como mínimo con 52 instrucciones campo de operación de 6 bits. Para cada uno de los grupos de instrucciones: 1. Como hay 6 registros 3 bits para codificarlos. Este formato es codificable en una palabra COP (6 b) 2. R1 (3 b) R2 (3 b) R3 (3 b) Sin usar (1 b) Como el direccionamiento de memoria es por bytes 16 bits para el direccionamiento de memoria. Este formato requiere de dos palabras COP (6 b) Sin uso (10 b) Dirección memoria (16 b) 3. Como el desplazamiento máximo es de 128 y el direccionamiento es por bytes 7 bits para el direccionamiento COP (6 b) 4. R1 (3 b) Idéntico al direccionamiento absoluto COP (6 b) Dirección memoria (16 b) Sin uso (10 b) Desplazamiento (7 b) Problema 2 Un computador dispone de un sistema de memoria constituido por una principal Mp de 128KB y una memoria cache Mc de 16KB organizada en 16 conjuntos, con un grado de asociatividad de 4, 256 bytes por línea y política de reemplazamiento LRU. Mp es una memoria entrelazada de orden inferior. Se pide: a) Número de módulos de Mp y tamaño de los mismo para que se minimice el tiempo de transferencia de bloques entre Mp y Mc b) Interpretación de los bits de la dirección física para la Mc c) Esquema de correspondencia entre Mp y Mc. d) Si el tiempo de acceso a MP es 10 veces superior al de MC, y el programa en ejecución referencia las direcciones pertenecientes a los bloques: 127,..,256,192,…,255, determina la evolución de los conjuntos de bloques durante la ejecución del programa y el tiempo medio de acceso a memoria. Solución a) Número de módulos de MP y tamaño de los mismos 0 1 2 3 4 5 6 7 14 3 b) Interpretación de los bits de la dirección física para la MC Nº de líneas de la MC = 16KB / 256B = 64 (Nº de líneas = 16 conjuntos * 4 vías = 64) 5 MP = 128KB 17 bits de dirección Nº de conjuntos de la MC = 16 4 bits de conjunto etiqueta Número de palabras por Bloque = 256 8 bits de palabra 4 8 conjunto palabra C0 C1 .... 256 bytes C15 Nº de bloques en MP = 128K/256 = 512 bloques Si el tiempo de acceso a MP es 10 veces superior al de MC, y el programa ejecución referencia las direcciones pertenecientes a los bloques: 127,..,256,192,…,255 (FEBRERO) 1) Evolución de los conjuntos de bloques durante la ejecución del programa. Bloque 127 va en el conjunto 15 Los bloques del 128 al 191 llenan toda la cache (las 4 líneas de todos los conjuntos). Los bloques del 192 al 255 llenan toda la cache (las 4 líneas de todos los conjuntos). 256 entra en el conjunto 0 Los bloques del 192 al 255 llenan toda la cache (las 4 líneas de todos los conjuntos). 2) Tiempo medio de acceso a memoria. C0 C1 C14 C15 Fallos - - - - - - - - - - - - - - - - - - - - - - - - - - - 127 - - - +1 Fz 128 144 160 176 129 145 161 177 142 158 174 190 143 159 175 +63 Fz 192 208 224 240 193 209 225 241 206 222 238 254 207 223 239 +64 Cp 256 240 191 255 192 208 224 Fallos de capacidad (Cp) del 62 al 254= 64 líneas Fallos de capacidad (Cp) del 255 al 256= 2 líneas Fallos por conflicto (Cf) en el conjunto 0=4 líneas (192,208,224,240) - +2 Cp +4 Cf Fallos forzosos (Fz) del 127 al 62= 64 líneas 256 bytes 256 bytes 256 bytes 256 bytes 256 bytes C14 Memoria Principal (MP): Conjunto 0 B0, B16,…., B496 Conjunto 1 B1, B17,…., B497 … Conjunto 15 B15, B31,…., B511 d) 256 bytes 256 bytes 256 bytes 256 bytes 256 bytes 256 bytes 256 bytes 256 bytes 256 bytes 256 bytes c) Esquema de correspondencia entre MP y MC. Memoria Cache(MC): Total de fallos =64+64+2+4=134 Total de referencias=256*(1+64+64+1+64)=256*194=49664 Total referencias acierto= Total de referencias-total fallos Tiempo medio=[(49664-134)T+134*10T]/( 49664)=1,024T Problema 3 A un procesador de 100 MIPS de velocidad y 500MHz de frecuencia de reloj se conecta mediante interrupciones una tarjeta de adquisición de datos que opera a una velocidad de 10 MBytes/segundo. a) Calcula el número máximo de instrucciones que deberá tener la rutina de servicio sabiendo que el tiempo de reconocimiento de una interrupción es de 100 ns. y que se transmiten 8 bytes por interrupción. b) Si al mismo computador conectamos a través de DMA un disco magnético de 256 sectores/pista y 2048 bytes/sector que gira a 9.600 revoluciones por minuto, calcula el ancho de banda mínimo que debe proporcionar el DMA. c) Calcula el número de bytes que deben transferirse por ciclo de DMA para proporcionar el ancho de banda calculado en el apartado b) si el DMA opera por robo de ciclo. d) Si el procesador opera simultáneamente con la tarjeta de adquisición de datos conectada por interrupciones y con el disco magnético conectado por DMA (robo de ciclo), calcula el número máximo de instrucciones que debería tener en este caso la rutina de servicio de interrupción. SOLUCION: a) Fr = 500 MHz CPI = 500 Mciclos/s / 100 Minstrucciones/s = 5 ciclos/instruccion Fr = 500 MHz Tc = 2 ns 100 + Nºinst(RT) * 5 ciclos/inst. * 2 ns./ciclo < (8 Bytes/inst. / 107 Bytes/seg) 109ns = 800 ns. Nºinst(RT) < (800 – 100)/10 = 700/10 = 70 instrucciones b) 9.600 r.p.m = 160 r.p.s. Tlectura_pista = 1/160 = 6.250 *10-6 segundos Capacidad_pista = 28 x 211 = 219 bytes/pista ABmin = 219 bytes/pista / 6.250 *10-6 segundos/pista = 83 MB/s. c) DMA(robo de ciclo) transfiere Nb bytes cada 5+1 = 6 ciclos = 6*2 = 12 nanosegundos = 12 *10-9 s. Por tanto Nb = 12 *10-9 s. * 83 *106 B/ s = 996/1000 = 1 Byte d) Las 70 instrucciones calculadas en el apartado a) corresponden a 70*5 = 350 ciclos de CPU La rutina de servicio debe durar como máximo 350 ciclos. Cuando opera simultáneamente el DMA(robo de ciclo) cada instrucción (5 ciclos) dedica 1 ciclo a transferencia DMA Nºins(rt+DMA) = 350/6 = 58 instrucciones