Universidad del País Vasco Facultad de Informática Departamento de Arquitectura y Tecnología de Computadores Arquitectura de Computadores I Buses 3 (solución): por bloques + cálculos La siguiente Figura muestra los pasos y las señales de un ciclo de lectura de un determinado protocolo de bus. Responde las siguientes cuestiones: a) Si para poder trabajar con el dispositivo más lento conectado al bus el ciclo de bus es de 375 ns, ¿cual es la frecuencia de reloj más alta que se puede utilizar? ¿y el ancho de banda que se consigue? b) Considerando el protocolo del siguiente esquema, si el ancho de banda obtenido es de 200 MB/s, ¿cuál es la frecuencia de reloj utilizada? Signal T1 T2 T3 Clk A0-A7 D0-D15 RD/WR c) En la siguiente Figura se presenta otro protocolo correspondiente a una lectura. ¿Cúal es el ancho de banda en este caso si la frecuencia de reloj es de 200 MHz? ¿Cuál sería el ancho de banda si no se utilizase la transmisión por bloques? Signal T1 T2 T3 T4 T5 Clk @ A 0 -A 15 D at 0 D 0 -D 15 D at 1 D at 2 M R EQ RD /W R B lokeka ------------------------------------------------------------------------------------------------------------------------------- Solución a) El protocolo corresponde a un bus síncrono. El ciclo de bus de este protocolo es de 3 ciclos (T1/T2/T3). En el enunciado se dice que estos tres ciclos suman 375 ns, por lo que el tiempo de ciclo es 125 ns. A partir de este dato podemos calcular la frecuencia del reloj: F= 1 = 8 MHz 125 × 10 −9 Por otro lado, para calcular el ancho de banda conocemos los siguientes datos: se transfieren 2 bytes (16 líneas de datos, D0-D15 , sin multiplexación de buses) en 3 ciclos (375 ns). Con estos datos, el ancho de banda alcanzado es el siguiente: AB = 2 bytes cantidad información (bytes) = = 5,33 × 10 6 bytes/s = 5,33 MB/s −9 tiempo (s) 375 × 10 s b) En este caso el ancho de banda es de 200 MB/s. Si analizamos el protocolo vemos que el bus de direcciones no está multiplexado por lo que se pueden transferir 16 bits (2 bytes) en 3 ciclos. Con estos datos podemos calcular el tiempo de ciclo (tc en la ecuación) de la siguiente forma: 200 MB/s = 2 bytes 2 bytes => tc = = 10 ns 3 × tc 200 × 10 6 bytes/s A partir del tiempo de ciclo obtenemos la frecuencia de reloj: F= 1 = 100 MHz 10 × 10 −9 c) En este protocolo las transferencias se pueden realizar por bloques. Concretamente, el bus transfiere 3 datos de 16 bits en 5 ciclos. La frecuencia de reloj es de 200 MHz lo que nos da un tiempo de ciclo de 5 ns. A partir de estos datos, utilizando la transmisión por bloques, el ancho de banda que se obtiene es el siguiente: AB = 3 × 2 bytes = 240 × 10 6 bytes/s = 240 MB/s −9 5 × 5 × 10 s Si no se utiliza la transmisión por bloques, el bus transferirá un único dato (16 bits, 2 bytes) en 3 ciclos y el ancho de banda será el siguiente: AB = 2 bytes = 133,33 × 10 6 bytes/s = 133,33 MB/s −9 3 × 5 × 10 s