Universidad del País Vasco Facultad de Informática Departamento de Arquitectura y Tecnología de Computadores Arquitectura de Computadores I Buses 1 (solución): síncrono + cálculos La frecuencia del reloj del bus de la Figura es de 100 MHz. Responde las siguientes preguntas: a) Cuál es el ancho de banda de este bus? b) Cuanto tiempo se necesita para transferir un fichero de 100 MB? c) Queremos instalar en este sistema una memoria con un tiempo de respuesta de 50 ns. ¿Tendremos algún problema? En tal caso, ¿qué solución propones? d) Se ha pensado multiplexar el bus de direcciones pero ese cambio supone que el ciclo de bus pase a ser de 4 ciclos. ¿Merece la pena el cambio? ¿Qué señales se deben cambiar/añadir para poder multiplexar el bus de direcciones? Signal T1 T2 T3 Clk A0-A23 D0-D31 RD/WR ------------------------------------------------------------------------------------------------------------------------------- Solución a) Para calcular el ancho de banda se necesitan dos datos: la cantidad de información que se puede transferir por el bus y el tiempo que se necesita para transferir esa información. En este ejercicio, el protocolo puede transferir 4 bytes (el bus de datos es de 32 bits, D0-D31) en 3 ciclos (T1/T2/T3). Como la frecuencia del bus es de 1000 MHz el tiempo de ciclo es 10 ns. Por lo tanto, el ancho de banda será el siguiente: AB = 4 bytes cantidad información (bytes) = = 133,33 × 10 6 bytes/s = 133,33 MB/s tiempo(s) 3 × 10 × 10 −9 s b) Para calcular el tiempo necesario para transferir un fichero hay que tener en cuenta el tamaño del fichero y el ancho de banda del bus. Otro aspecto a tener en cuenta son las unidades y sus múltiplos. Cuando hablamos de cantidad de información (el tamaño de un fichero por ejemplo) los múltiplos representan potencias de 2, es decir, 1 MB = 220 bytes, o 1 GB = 230 bytes. Sin embargo, cuando hablamos de velocidad de transferencia como ocurre en el caso del ancho de banda, los múltiplos representan potencias de 10, es decir, 1 MB/s = 106 bytes/s, o 1 GB/s = 109 bytes/s. Si tenemos todo esto en cuenta, el tiempo que se pide lo calculamos de la siguiente forma: capacidad (bytes) 100 × 2 20 bytes t (ns) = = = 0,786 s AB (bytes/s) 133,33 × 10 6 bytes/s c) Si insertamos una memoria con un tiempo de respuesta de 50 ns es este sistema tendremos problemas. El ciclo de bus de este protocolo es de 30 ns (3 ciclos y 10 ns por ciclo) pero la memoria es más lenta y no responde en ese tiempo. Para dar una solución a este problema tenemos dos opciones: convertir este bus en un bus semisíncrono e introducir los ciclos de espera necesarios para poder trabajar con esta memoria, o convertirlo en un bus asíncrono que no tiene problemas para gestionar dispositivos con cualquier velocidad de funcionamiento. d) Cuando multiplexamos el bus de direcciones podemos utilizar esas líneas para enviar también datos. En este ejercicio, además de los 32 bits que se pueden transferir por las líneas de datos, se pueden transferir otros 24 bits por las líneas de direcciones. Para que esto pueda funcionar se necesitan nuevas señales: + Las líneas de direcciones A0–A23, se convierten en AD0–AD23 + Las líneas de datos D0–D31, se convierten en D24–D55 + Se debe añadir la línea ALE al protocolo Teniendo todo esto en cuenta, el nuevo ancho de banda será el siguiente: AB = 7 bytes = 233,33 × 10 6 bytes/s = 233,33 MB/s −9 3 × 10 × 10 s