Está en la página 1de 8

Asignatura: Ingeniera de Computadores I 2012/13

Alumno:

Prueba de Evaluacin a Distancia 1


Fecha de entrega: 2 de marzo de 2013

Problema 1.1
Se han conectado a un bus dedicado a E/S la memoria principal y cinco discos iguales. La
frecuencia de ciclo de la memoria principal es de 2 MHz. La velocidad de transferencia de cada
disco es B. La longitud de palabra almacenada en dicha memoria es de n bits. Cada transmisin
sobre el bus necesita 600 ns para enviar el dato y las diferentes rdenes del protocolo. En cul
de las siguientes situaciones estara ms justificado el uso de un bus con temporizacin sncrona?

Solucin
a) = /
La inversa de la frecuencia de ciclo de la memoria principal nos indica cunto tarda la memoria
en procesar una orden de lectura o de escritura, o el tiempo de ciclo de la memoria principal. Si
se trata de una lectura, comprendera el tiempo que tarda la memoria en recuperar los datos del
bloque direccionado y ponerlos en el bus desde que recibe la orden. En el caso de que la orden
fuese de escritura, comprendera el tiempo necesario en almacenar los datos procedentes del
bus.
1
Por lo tanto, tendramos que el = 2 = 500
En cada acceso a la memoria principal se escriben/leen k bits que pueden conformar una o ms
palabras de n bits. Como n tambin es un nmero arbitrario cualquiera de bits y las respuestas
del ejercicio sobre la velocidad de transferencia van en funcin de n, asumimos que con cada
acceso se escriben o leen n bits cada vez o, lo que es lo mismo, una palabra. Entonces, segn
esto, la velocidad de transferencia de la memoria principal es:
=


= 2 106 /
500

Como la temporizacin sncrona de un bus est ms justificada cuanto ms similares sean las
velocidades de transferencia de los dispositivos conectados al bus, concluimos que la respuesta
al ejercicio es el primer supuesto: = / . De este modo no slo seran
velocidades similares, sino que seran iguales y, siempre que el bus lo soporte, no se estara
perjudicando a los dispositivos con velocidades de transferencia ms rpidas.

Problema 1.2
Se tiene un disco magntico con 16 sectores de 1024 bytes por sector y una velocidad de rotacin
de 720 r.p.m. Supuesto que el tiempo de bsqueda de la primera pista sea de 10 ms, determinar
el tiempo que se tarda en leer, en su orden, todos los sectores de una pista en los siguientes
casos:
a) El disco est formateado sin entrelazado.
b) El disco est formateado con entrelazado doble.

Pgina 1

Una vez se ha posicionado la cabeza sobre la primera pista, cuntas vueltas debe dar el disco
para transmitir todos los sectores de la pista en cada caso?

Solucin
Como el enunciado no dice nada al respecto, suponemos que el controlador del disco duro es
capaz de leer bloques contiguos que estn en sectores adyacentes, y que por lo tanto le dara
tiempo a transmitir los datos a memoria en el primer caso, donde el disco est formateado sin
entrelazado.
Por otro lado, sabemos que el tiempo de lectura en un disco duro es la suma de los tiempos de
bsqueda, de retardo rotacional medio y de transferencia:
= + +
Los tiempos de bsqueda y de retardo rotacional medio son independientes del tipo de
formateado del disco duro. El tiempo de bsqueda tb nos lo dan directamente en el enunciado y
es igual a 10 ms. El tiempo de retardo rotacional medio tr se define como el tiempo que tarda el
sector necesario en colocarse bajo el cabezal (que no es ms que el tiempo que tarda el disco en
rotar media vuelta), y es:
=

1
1
1
=
=
= 41,6
2 2 720 2 720
60

Por ltimo, el tiempo de transferencia tt depende del tamao del sector y del nmero de bytes
que se desean transferir, y se define de este modo:
=

Donde P es el nmero de bytes que hay en una pista y b el nmero de bytes que se desean
transferir. En el primer caso, con el disco formateado sin entrelazado y por lo tanto con los
sectores ordenados de forma contigua, ya podemos calcular el tiempo de transferencia a partir
de sta ecuacin:
=

16 1024
=
= 83,3
16 1024 720

Este tiempo adems es, lgicamente, el tiempo que tarda el disco en dar una vuelta completa,
puesto que para leer una pista entera con un disco formateado sin entrelazado necesitamos que
ste complete un giro entero para que toda la pista pase por debajo del cabezal.

Pgina 2

Sabiendo ya el tiempo de transferencia, calculamos el tiempo de lectura tl para el caso a) que es:
= + + = + , + , =
Para el segundo de los casos, con entrelazado doble, debemos tener en cuenta que, salvo en el
primer sector (el cual ya se encontrar colocado bajo el cabezal al finalizar los tiempos de
bsqueda y de retardo rotacional), el tiempo de transferencia de cada sector es el tiempo que
tarda el cabezal en pasar sobre cada uno de ellos ms el tiempo que tarda en pasar por dos ms
(que son el nmero de sectores que se encuentran intercalados entre dos sectores correlativos).
Podemos entenderlo mejor si atendemos al siguiente esquema de la distribucin de los sectores
con el disco formateado de esta manera:

Podemos calcular entonces el tiempo de transferencia del primer sector, o del sector cero, de la
forma:
( 0) =

1024
=
= 5,2
16 1024 720

Para el resto de sectores, como hemos dicho anteriormente, el tiempo de transferencia se


incrementa con el tiempo que tarda el cabezal en sobrepasar dos sectores hasta llegar al
siguiente. Como este tiempo es:
=

1
= 5,2
16 720

podemos calcular el tiempo de transferencia del resto de sectores como:


( 115) = 2

1
1024
+
= 15,62
16 720 16 1024 720

Pgina 3

Con estos datos, calculamos el tiempo de transferencia total necesario en este caso, que es:
= ( 0) + 15 ( 015) = 5,2 + 15 15,62 = 239,57
Y finalmente, calculamos el tiempo de lectura tl para el caso b) de manera anloga al anterior:
= + + = + , + , = ,
Para resolver la segunda parte del ejercicio (cuntas vueltas da el disco en cada caso), hay que
decidir si debemos tener en cuenta la rotacin que hace el disco hasta colocar el sector inicial
bajo el cabezal. Esta rotacin inicial es aleatoria y puede variar entre 0 y prcticamente 1 vuelta
completa, siendo media vuelta lo que podramos denominar como rotacin inicial media.
Personalmente, he preferido no incluir esta rotacin inicial en el clculo debido precisamente a
que es aleatoria y tendramos que estar hablando de las vueltas que da de media el disco al
leer la pista entera. Si hubiese que tenerla en cuenta, sera tan sencillo como aadir media vuelta
ms a los resultados obtenidos.
Dicho esto, el nmero de vueltas necesarias en el caso a), una vez est el sector inicial bajo el
cabezal, resulta evidente que es de una sola vuelta. El disco tiene 16 sectores ordenados
correlativamente uno detrs de otro, y para leer una pista completa el cabezal tiene que pasar
sobre todos ellos:

Para el segundo caso, con los sectores formateados con entrelazado doble, la situacin cambia
ya que no es suficiente con dar una sola vuelta debido a que los sectores no estn ordenados de
forma correlativa. Despus de leer un sector, el cabezal debe pasar sobre dos sectores (sin leer
sus datos) para luego pasar sobre el siguiente y leerlo. Es decir, lee el sector 0, pasa sobre los
sectores 11 y 6, y lee el sector 1. A continuacin pasa sobre los sectores 12 y 7 para acabar

Pgina 4

leyendo el 2, y as sucesivamente. Si nos fijamos, el disco tiene que dar 3 vueltas menos el giro
correspondiente a los sectores 10 y 5, ya que una vez que lee el sector 15 (el ltimo) no tiene que
seguir girando al haber ledo ya el ltimo sector necesario.
Por lo tanto, en el caso b), una vez est el sector inicial bajo el cabezal, el disco tiene que dar 2
vueltas + 7/8 de vuelta para leer la pista completa. Podemos apreciarlo mejor con el siguiente
esquema:

Como vemos, en la primera vuelta se leen los sectores 0 a 5, en la segunda los sectores 6 a 10, y
en la tercera del 11 al 15, pero sin necesidad de completarla totalmente.

Problema 1.3
Un procesador que opera a 1 GHz y en el que en promedio una instruccin emplea 4 ciclos
mquina (CPI = 4) dispone de un sistema de interrupciones con un tiempo de reconocimiento
de interrupcin de 60 ns.
Este procesador se conecta a un disco magntico con 128 sectores/pista y 1024 bytes/sector a
travs del sistema de interrupciones. En cada interrupcin se transmiten 16 bytes. Determinar
el nmero mximo de instrucciones que puede tener la rutina de servicio si queremos que la
capacidad de entrada de datos (ancho de banda) a travs del sistema de interrupciones sea de
80 Mbytes/s.

Solucin
El ancho de banda en bytes/s del sistema de interrupciones viene determinado por el nmero de
bytes transmitidos durante el tiempo (tint) que dura una operacin de E/S por interrupcin.

Pgina 5

Como queremos un ancho de banda de 80 Mbytes/s y transmitimos 16 bytes por cada


interrupcin, el tiempo que dura una interrupcin debe ser:
=

16
= 200
80 /

En estos 200 ns, al sistema de interrupciones debe darle tiempo suficiente para reconocer la
interrupcin (que ocupa 60 ns), y para que su rutina de servicio ejecute N instrucciones, sabiendo
que cada una de ellas tarda 4 ciclos de reloj en hacerlo. Como adems tenemos que el tiempo
que dura uno de estos ciclos de reloj es la inversa de la frecuencia a la que opera el procesador:
1
= 1 = 1 . Por lo tanto, el tiempo de interrupcin debe ser igual a:
= 60 + ( 4

1
)

Y de aqu ya podemos calcular el nmero de instrucciones N que necesitamos que se ejecuten


durante la rutina de servicio para conseguir los 80 Mbytes/s de capacidad:
=



=
=

Problema 1.4
Se dispone de un computador con una memoria cach con un tamao de 64 KB para guardar
instrucciones o datos de los procesos. El tamao del bloque es de 64 bytes. Los procesos pueden
direccionar 8 MB de memoria principal y sta se direcciona por bytes. Un acceso a memoria RAM
consume 80 ns y a la cach 30 ns. La cach es asociativa por conjuntos con 2 bloques por
conjunto. Se pide:
a) Hacer un dibujo de la memoria cach.
b) Indicar el nmero de conjuntos que tiene la cach.
c) Cunto tiempo tardaramos en obtener un dato si se produce un fallo en la cach?

Solucin
Con bloques de 64 bytes y palabras de 1 byte (la memoria principal se direcciona por bytes),
resulta evidente que cada bloque consta a su vez de 64 palabras.
1

Adems tenemos un total de 64 64 = 1024 , y como hay 2 bloques por


conjunto, hacen un total de

= en la memoria

cach.

Pgina 6

Por otro lado, una memoria RAM de 8 MB accesible por palabras de 1 byte necesita 23 bits para
direccionar cada una de esas palabras (223 = 8388608 , u 8 Mpalabras). Estos 23
bits se tienen que dividir en 3 campos diferentes correspondientes a la Etiqueta, el Conjunto y la
Palabra que son de los que nos serviremos para acceder a la palabra solicitada en caso de que
sta est en la memoria cach, y se har del siguiente modo:

Los 6 bits menos significativos se usarn para el campo palabra de cada uno de los bloques
de la memoria cach (26 = 64 ).
Los 9 bits menos significativos siguientes se usarn para el campo conjunto de cada uno
de los 512 conjuntos que tiene la memoria cach (29 = 512 ).
Por ltimo, los 8 bits restantes se usarn para el campo etiqueta, que nos indicar si la
palabra que estamos buscando podra encontrarse en alguno de los bloques que tenemos
en la memoria cach.

Por lo tanto, la direccin de 23 bits quedar dividida de la siguiente manera:


ETIQUETA
8 bits

CONJUNTO
9 bits

PALABRA
6 bits

Con estos datos, el esquema de la memoria cach sera:

Para finalizar el ejercicio, nos queda resolver cunto tiempo tardamos en obtener un dato si se
produce un fallo en la cach. Cada vez que se produce un fallo, la memoria cach tiene que
recuperar un bloque entero de 64 palabras desde la memoria principal y colocarlo en uno de sus

Pgina 7

bloques propios, para que finalmente el sistema se encargue de leer la palabra solicitada desde
la misma cach.
Por lo tanto, si se produce un fallo de cach, necesitaremos acceder 64 veces a la memoria
principal (una vez por cada palabra del bloque que vamos a copiar en la memoria cach), y por
ltimo acceder una vez a la cach para recuperar la palabra necesaria que ya estar almacenada
en ella. Segn esto, el tiempo de acceso con fallo tfallo ser igual a:
= ( .



) + ( .
) = ,
.
.

Pgina 8

También podría gustarte