2do. Parcial

Anuncio
Segundo Parcial
Organización del Computador I
15 de Julio de 2004
Justifique detalladamente cada respuesta, incluyendo todas las cuentas y esquemas auxiliares.
Evite responder en lápiz. Resuelva cada ejercicio en hoja separada. Identifique todas las hojas.
Los números entre paréntesis al margen de cada ejercicio indican el valor de los mismos.
Se recomienda no invertir más de 32 p minutos en la resolución de un ejercicio de p puntos.
El parcial tiene 6 ejercicios, que permiten obtener un máximo de 100 puntos.
Se aprueba con un 60 % del puntaje máximo, y se promociona con un 80 % de dicho puntaje.
(04) 1. 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?
Para evitar inconsistencias en los contenidos de cache cuando la memoria principal puede ser alterada
por otros dispositivos, por ejemplo, en sistemas con DMA.
(04) 2. 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?
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.
(08) 3. Considere un bus sincrónico de 50M Hz y 32 lı́neas sobre las que se multiplexan direcciones y datos.
(a) ¿Cuánto dura un ciclo de este bus y cuál es el máximo ancho de banda del mismo?
(b) Además de las lı́neas de datos, mencione otras 2 lı́neas que obligatoriamente deberı́a tener el bus.
(a) Un ciclo de bus dura T = 1/50M Hz = 20 × 10−9 seg = 20ns. Si durante ese perı́odo pueden
transmitirse 4 Bytes, el ancho de banda de pico será B = 4Bytes/20ns = 2 × 108 Bytes/s = 200M Bps
o, equivalentemente, 32bits × 50M Hz = 32 × 50M bps = 1,6Gbps.
(b) Como el bus es sincrónico una de las lı́neas de bus deberá proporcionar la señal de reloj. Dado que,
además, está multiplexado será necesaria otra lı́nea para indicar si el contenido del bus en un instante
dado es un dato o una dirección.
(28) 4. Un disco rı́gido de 8GB gira a 7500rpm. Cada una de sus 8 caras cuenta con 4096 pistas distribuidas
uniformemente a razón de 128 pistas/mm. La máxima densidad lineal de grabación admitida es de 4096
Bytes/mm. Si el movimiento de cabezas entre dos pistas adyacentes demora 8ms, diga:
(a) ¿Cuál serı́a (en Bytes/segundo) la máxima tasa de transferencia que las cabezas del disco podrı́an
alcanzar durante la lectura de un archivo de 1M B, 2M B y 4M B respectivamente?
(b) ¿Qué tamaño fı́sico esperarı́a que tuviesen los platos de este disco? Compare el resultado con el
tamaño de un diskette de 3,5”
(a) Como el disco tiene 8 caras, cada una tendrá una capacidad S = 8GB/8 = 1GB, cada pista tendrá K = S/4096 = 256KB, y cada cilindro C = 8GB/4096 = 8 × K = 8 × 256KB = 2M B. De otra
parte, el perı́odo del revolución es T = 1/7500rpm = 60/7500Hz = (1/125)seg = 8ms.
La máxima tasa de transferencia resulta B1 = K/T = 256KB/8ms = 32 × 103 KBps = 32 × 210 ×
103 Bps = 32768000Bps. Esta tasa podrı́a mantenerse sólo sin reposicionamiento de cabezas, o sea, durante lecturas dentro de un mismo cilindro, por lo que los archivos de 1 y 2M B podrán leerse a esta
tasa. El archivo de 4M B ocupará como mı́nimo 2 cilindros, de modo que requerirá al menos un movimiento entre pistas adyacentes. La tasa máxima para este caso será B2 = 2 × C/(2 × 8 × T + 8ms) =
512
3
10
× 103 Bps u 30840470,6Bps.
4M B/(17 × 8ms) = 512KB/17ms = 512
17 × 10 KBps = 17 × 2
(b) Llamando ri al radio de la pista más cercana al centro y ro al radio de la pista más cercana al borde del plato, entonces la corona circular que aloja las pistas tendrá un ancho ∆r = ro −
ri = 4096pistas/(128pistas/mm) = 32mm. Como la máxima densidad lineal (δ = 4096Bytes/mm =
4KB/mm) tiene lugar en la pista de radio ri , entonces resultará K = 256KB = δ × 2πri , de dónde
ri = 256KB/(2πδ) = 256KB/(π × 8KB/mm) = ( 32
π )mm u 10,2mm. El radio exterior se obtiene como
ro = ri + ∆r = ri + 32mm u 42,2mm u 1,66”, resultando en un diámetro de 3,32”, muy semejante al
de un diskette.
Página 1 de 3
Segundo Parcial
Organización del Computador I
15 de Julio de 2004
(28) 5. El procesador de un sistema de control trabaja con palabras, direcciones y datos de 32 bits, instrucciones
de longitud fija de 64 bits, direccionamiento a byte, y una memoria fı́sica de 1GB. Se desea incorporarle
una cache de correspondencia directa con lı́neas de 256 bits que viene integrada en un módulo de 17KB
en los que deberı́an alojarse tanto las lı́neas como sus etiquetas. El 98 % del tiempo el procesador ejecuta
el siguiente ciclo, cargado a partir de la dirección 8
8:
MOV
MOV
CMP
JNZ
REG1 ,
REG2 ,
[REG1],
8
0
61440
[REG2]
;Mueve al registro 1 la constente decimal 0
;Mueve al registro 2 la constente decimal 61440
;Donde [· · · ] denota direccionamiento indirecto
;Compara y transfiere a la dirección de memoria 8
(a) ¿Cuántos bits requerirán las etiquetas y cuántas lı́neas podrán alojarse en un módulo de cache?
(b) ¿Cuál de las siguientes alternativas de diseño presenta mejor relación costo/rendimiento?: Colocar
un único módulo de cache y emplearlo para datos e instrucciones, o colocar dos módulos de cache
empleando uno de ellos exclusivamente para datos y el otro exclusivamente para instrucciones.
(a) Si la memoria tiene 1GB direccionable a byte, entonces tiene un total de 230 direcciones de 30 bits.
Si las lı́neas son de 256 bits = 32 Bytes, los 5 LSB de cada dirección constituirán el campo ı́ndice de la
cache, los restantes 30−5 = 25 bits deberán distribuirse en ` bits para el campo lı́nea y 25−` bits para el
campo etiqueta. Si un módulo de cache tiene 17KB en total, entonces Lmax = 17 × 1024/32 = 544 es una
cota superior para el número de lı́neas que puede contener el módulo, resultando ` ≤ blog2 (Lmax )c = 9.
Si asumimos ` = 9, entonces quedan 25 − ` = 25 − 9 = 16 bits de etiqueta y el espacio total para
almacenar lı́neas y etiquetas serı́a 2` × (16 + 256) bits = 139264 bits = 17408 Bytes = 17KB que es
exactamente el tamaño de un módulo. La cache interpretará entonces las direcciones como:
Campo etiqueta Campo lı́nea Campo ı́ndice
|
{z
}|
{z
}|
{z
}
16 bits
9 bits
5 bits
(b) Como el segmento se ejecuta durante el 95 % del tiempo, la tasa de aciertos durante su ejecución
será una buena aproximación de la tasa de aciertos efectiva total del sistema. El procesador requerirá accesos a memoria durante i) Los ciclos de fetch de cada instrucción, y ii) Los ciclos de operandos de
aquellas instrucciones que referencien la memoria. Como las instrucciones son de 2 palabras el segmento
de código se extiende entre 8H y 20H, por lo que una cache de correspondencia directa almacenarı́a las
3 primeras instrucciones en su lı́nea 0 y la cuarta en su lı́nea 1. Los operandos de la tercera instrucción
referencian la dirección 0 (que está en el mismo bloque que el código), y la dirección 61440 decimal. Esta
última dirección es F 000H, de modo que estará en el bloque 780H, su etiqueta será 3, y recaerá en la
lı́nea de cache 180H (384 decimal). De este modo los ciclos de fetch y operandos no competirán nunca
por la misma lı́nea de cache y, después del primer ciclo, resultará:
MOV
MOV
CMP
JNZ
REG1 ,
REG2 ,
[REG1],
8
0
61440
[REG2]
;HIT en lı́nea 0
;HIT en lı́nea 0
;HITS en lı́neas 0 (fetch y 1er operando) y 384 (2do operando)
;HIT en lı́nea 1
Del análisis anterior se desprende que la tasa de aciertos con un único módulo de cache será del 100 %,
resultando en la mejor alternativa costo/rendimiento.
(28) 6. Un bus sincrónico comunica al procesador con hasta 3 dispositivos adicionales. A cada uno se le asigna
una prioridad única y una lı́nea exclusiva de solicitud de transferencia Si . El bus tiene 3 de estas lı́neas,
siendo S1 la de mayor prioridad. Si durante el ciclo Tk un dispositivo necesita el bus, debe esperar hasta
el inicio del ciclo Tk+1 y, conjuntamente con el flanco de reloj, levantar su lı́nea de solicitud. Cuando
está por finalizar el ciclo Tk+1 , todos los dispositivos con petición pendiente deben verificar el estado de
las otras 2 Si ; el que tenga más alta prioridad utilizará el bus durante el ciclo Tk+2 . Con el flanco de
reloj del ciclo Tk+2 , el dispositivo que obtuvo el bus debe bajar su lı́nea de solicitud, mientras que los
restantes dispositivos con petición pendiente deben mantener las suyas.
(a) El dispositivo de menor prioridad (4) no necesita lı́nea de solicitud ¿Por qué?
Página 2 de 3
Segundo Parcial
Organización del Computador I
15 de Julio de 2004
(b) Este esquema de arbitraje distribuido hace que uno de los dispositivos tenga un tiempo de espera
de bus inferior a los restantes. Diga cuál es este dispositivo y explique claramente por qué.
(c) La empresa que ideó este bus otorgó a la CPU la prioridad 4. ¿Fué esta una decisión acertada?
(a) Si durante el ciclo Tk el dispositivo 4 necesita el bus, lo único que debe hacer es esperar la instancia
de verificación de ese mismo ciclo. Si no hay ninguna Si activa, entonces puede apropiarse del ciclo Tk+1 .
Esto le brinda un privilegio que no tiene ningún otro dispositivo, ya que todos los demás deben siempre
esperar como mı́nimo un ciclo completo antes de usar el bus.
(b) En ausencia de contención (i.e., si el ancho de banda del bus es suficiente para acomodar el tráfico
entre todos los dispositivos) el bus operará al 100 % de su capacidad cuando, en promedio, sólo uno de
los dispositivos necesite el bus en cada ciclo. Esto no quiere decir que sea imposible que, por ejemplo,
las 4 unidades quieran usarlo al mismo tiempo (y precisamente para eso existe el arbitraje!) sino que,
estadı́sticamente, esta situación es tan poco probable como que ninguna unidad requiera el bus durante 4
ciclos consecutivos. En estas condiciones, el esquema propuesto en (a) garantiza un menor tiempo medio
de espera de bus para el dispositivo 4 que para cualquier otro.
Esta última conclusión no serı́a necesariamente válida si, en promedio, el ancho de banda del bus resultara insuficiente para satisfacer las necesidaes de comunicación entre los dispositivos. Pero en un tal
caso, el sistema tendrı́a un serio problema de rendimiento con cualquier esquema de arbitraje, y cambiar
la prioridad de la CPU no lo resolverı́a.
(c) Por lo dicho en (b), la decisión resulta acertada. Durante los picos de tráfico la CPU queda relegada,
pero durante el resto del tiempo el bus está a su disposición más rapidamente que para cualquier otro
dispositivo.
NOTA: Este ejercicio presenta una versión muy simplificada del bus SBI desarrollado por DEC (Digital
Equipment Corporation). Una búsqueda de estos términos en Internet puede proporcionar a los interesados información más detallada sobre este bus, sus relojes fuera de fase, y la lı́nea especial de arbitraje
S0 (el nombre asignado a las lı́neas de arbitraje no era realmente S sino T R - Transfer Request).
Página 3 de 3
Descargar