Segundo Parcial Organización del Computador I 4 de Julio de 2006 Justifique detalladamente cada respuesta. Evite responder en lápiz. Identifique todas las hojas. El examen tiene 6 ejercicios, que permiten obtener un máximo de 100 puntos. Se aprueba con 60 y se promociona con 80. Los números entre paréntesis al margen de cada ejercicio indican su valor. La duración prevista es de 3 horas y 20 minutos, por lo que se recomienda administrar el tiempo disponible no invirtiendo más de 1.8 × p minutos en la resolución de un ejercicio de p puntos. (30) 1. Se tiene un disco con 16 cabezas lecto-grabadoras, 16383 cilindros, y 63 sectores de 512 Bytes por pista. La velocidad de rotación es de 7200 rpm, el tiempo de posicionamiento es de 4 ms para pistas adyacentes, 16 ms en promedio y 30 ms en el peor caso. El disco posee un buffer de 512 Bytes que, una vez lleno, se transfiere a memoria en 15 ms exactamente. Por último, una unidad de medida llamda bloque esta compuesta por 3 sectores contiguos. (a) Calcule la capacidad total del disco. (b) Estime el tiempo promedio que tardarı́a en leerse y transferirse a memoria 1 bloque elegido al azar. (c) Idem (b), pero en el peor caso. (d) Suponiendo que los sectores de cada bloque no fueran contiguos, recalcule el tiempo (b) empleando un interleaving óptimo. Resolución: (a) La capacidad total será de 512 Bytes/sector × 63 sectores/pista×16383 pistas/caras × 16 caras = 8455200768 Bytes = 8257032 KB u 8064 MB u 7,87 GB. (b) El perı́odo de revolución resulta T = 1/7200 minutos = 60/7200 segundos = 1/120 segundos = 25/3 ms, de modo que la latencia media será 25/6 ms. El tiempo de lectura de un sector será T /63 = 25/189 ms. Ası́, para un bloque elegido al azar, el tiempo total de lectura y transferencia podrı́a estimarse como el tiempo medio de posicionamiento inicial en el cilindro más el tiempo medio de lectura y transferencia de cada uno de los 3 sectores del bloque. Vale decir: 16 ms + 3 × (25/6 ms + 25/189 ms + 15 ms) = (16 + 25/2 + 25/63 + 45) ms = 73,9 ms. (c) Basta reemplazar en el cálculo anterior el tiempo medio de posicionamiento por el de peor caso. Ası́, resulta (30 + 25/2 + 25/63 + 45) ms = 87,9 ms. (d) Luego de leer un sector, sigue la transferencia de 15 ms, entonces habrı́a que calcular cuántos sectores pasan por debajo de las cabezas para cuando termina la transferencia. Eso es 15 ms/[(25/189) ms] = 3 × 189/5 = 113,4 sectores. En consecuencia, una vez leı́do y transferido el sector i, el disco estará a tiempo de comenzar la lectura del sector i+114 casi inmediatamente. Como i+114 ≡ i+51 (mód 63), el interleving ideal serı́a (1 : 51), de modo que al recalcular (b) se tiene: 16 ms+25/6 ms+3×(25/189 ms+ 114 × 25/189 ms) = (16 + 25/6 + 115 × 25/63) ms = 65,8 ms. (12) 2. Describa el concepto de jerarquı́as de memoria, y explique detalladamente los motivos por los que esta técnica permite mejorar el rendimiento efectivo de ciertos sistemas. Resolución: El concepto se basa en el uso combinado dentro de un mismo sistema de de memorias más costosas, rápidas y pequeñas, y memorias más económicas, lentas y grandes. La idea de fondo es la siguiente: Si, dentro de un cierto intervalo temporal, un sistema accede a un número pequeño de datos con una frecuencia muy alta, mientras que sólo accede muy esporádicamente al resto de los datos almacenados, entonces una pequeña cantidad de memoria rápida podrı́a destinarse al almacenamiento de los datos más requeridos, en tanto que aquellos a los que se accede menos frecuentemente podrı́an almacenarse en una memoria más lenta. De este modo, el rendimiento efectivo del sistema podrı́a aumentar considerablemente a un costo controlable (ya que sólo se emplearı́a una cantidad pequeña de memoria costosa adicional). Página 1 de 3 Segundo Parcial Organización del Computador I 4 de Julio de 2006 El principio de localidad establece que durante la ejecución de un programa las referencias a memoria tienden a estar temporalmente agrupadas. Es decir, durante tiempos cortos, la mayorı́a de las referencias pueden agruparse en conjuntos de direcciones cercanas entre sı́. De este modo, si un sistema obedece a este principio, en general será posible incrementar su eficiencia en los accesos a memoria empleando el concepto de jerarquı́as. (08) 3. En algunas arquitecturas es posible definir zonas de memoria como excluı́das de cache (las referencias a estas direcciones deben resolverse en memoria principal) ¿Por qué motivos podrı́a ser esto deseable? Resolución: Para evitar inconsistencias en los contenidos de cache cuando la memoria principal puede ser alterada por otros dispositivos, por ejemplo, en sistemas con DMA. (16) 4. Una arquitectura emplea una memoria principal de 64 MB direccionable a palabras de 32 bits, y una cache que NO es asociativa por conjuntos de 4096 lı́neas y 16 palabras útiles por lı́nea. Con la cache inicialmente vacı́a, el procesador direcciona las siguientes posiciones, obteniendo los resultados que se especifican: 1) 2) 3) 4) 5) 6) 000000h 00000Ch 333334h 330004h 330008h 000000h MISS ???? MISS MISS ???? HIT (a) El segundo requrimiento, ¿resultará en MISS o HIT ? ¿Y el quinto? (b) Diga qué tipo de correspondencia emplea la cache. Resolución: Dentro del marco de este curso, si una cache NO es de correspondencia asociativa por conjuntos, entonces sólo podrı́a ser de correspondencia directa o de correspondencia totalmente asociativa. (a) Para cualquiera de los dos tipos de cache, el segundo requerimiento resultará en HIT, ya que la lı́nea correspondiente debió cargarse a consecuencia del primer requerimiento. De igual modo, el cuarto requerimiento garantiza que el quinto tanbién resulte en HIT. (b) Si la cache fuese directa, entonces el cuarto requerimiento hubiese desalojado la lı́nea 000h, y el sexto requerimiento hubiese resultado un MISS. En consecuencia, la cache debe ser totalmente asociativa. (08) 5. Algunas arquitecturas implementan una interrupción temporizada que se dispara automáticamente cada n ciclos de reloj. ¿De qué sirve interrumpir al procesador cuando nadie requiere realmente su atención? Resolución: Puede servir, por ejemplo, para limitar el tiempo de CPU asignado a un proceso. De este modo, serı́a posible ejecutar concurrentemente más de un proceso en ausencia de otras fuentes de interrupción. (26) 6. Un computador recibe una transmisión asincrónica a 2560bps por un puerto serie dotado de un buffer interno de 32B. Cada vez que el buffer se llena, su controlador levanta una interrupción cuya rutina de atención demora 2,5µs en vaciar el buffer. Cada 5ms el hardware genera, además, una interrupción temporizada cuya rutina de atención insume, en promedio, 1,5µs. Página 2 de 3 Segundo Parcial Organización del Computador I 4 de Julio de 2006 (a) Suponiendo que sólo se presenten estos dos tipos de interrupciones durante una transmisión extensa, ¿Qué porcentaje del tiempo de CPU se estará dedicando, en promedio, a atender interrupciones? (b) ¿Qué podrı́a hacer el puerto serie para evitar seguir recibiendo datos mientras se atiende su interrupción? (c) Escriba el pseudocódigo de la rutina de atención del puerto serie. Resolución: Como el buffer tiene 32Bytes = 256bits, una transmisión asincrónica a 2560bps llenará el buffer en 256bits/2560bps = 100ms. Durante ese tiempo se producirán, además, 100ms/5ms = 20 interrupciones temporizadas que insumirán un total de 20 × 1,5µs = 30µs. (a) En una primera aproximación (despreciando el tiempo de atención de las interrupciones del puerto serie) podrı́amos decir que el procesador atiende interrupciones durante el 30µs×100/100ms = 3/100 = 0,03 % de su tiempo. Un cálculo más minucioso podrı́a ser 32,5µs×100/100002,5µs = 3/100 = 0,0325 % del tiempo. (b) Por ejemplo, proveer en el bus una señal de control del tipo Listo para recibir, que inhiba al emisor cuando está en LO. (c) Por ejemplo, asumiendo palabras de 16bits: PROC AtencionDelPuertoSerie Inhibir interrupciones PUSH AX PUSH CX PUSH SI Habilitar interrupciones de mayor prioridad MOV CX, 16 LEA SI, BufferDeSO Ciclo: IN AX, DataPuertoSerie MOV [SI], AX INC SI INC SI Loop Ciclo POP SI POP CX POP AX Habilitar todas las interrupciones ENDP Página 3 de 3