¿Es correcto este cálculo de ancho de banda?

1

El cálculo del ancho de banda para un bus de datos es como el siguiente en un texto que leí: "La velocidad del ciclo del bus es de 200 MHz con 4 transmisiones de 64 bits por ciclo de reloj. El ancho de banda del bus es de 200 * 4 * 64/8 = 800 * 64/8 MBytes por segundo, que es de 6400 MBytes por segundo".

¿Pero no es esto una appromixación ya que MHz es 1000 Hz y MBytes es 1024 bytes?

    

2 respuestas

4

Sí, es una aproximación. Pero incluso ignorando todo el asunto 1000 vs. 1024, sigue siendo una aproximación. Para referencia futura, la diferencia entre 1000 y 1024 es 2.4%.

Los cálculos que muestres te darán el ancho de banda máximo, máximo o teórico sin procesar. Ese es el ancho de banda que obtendría si cada ciclo de reloj se puede utilizar para transferir datos. Pero ese no es siempre el caso. Hay muchos factores que pueden influir en el ancho de banda efectivo.

No dijo qué tipo de bus es este, pero muchos buses se utilizan para comunicarse con algún tipo de RAM, y el mismo bus se usa para transferir la dirección de lectura / escritura, así como los datos de lectura y escritura. Lo que esto significa es que el autobús tiene que cambiar de dirección. En un ciclo, la dirección se transferirá a la RAM, pero en el siguiente ciclo, los datos de lectura provendrán de la RAM. Lleva tiempo cambiar la dirección del autobús. Por lo general un ciclo de reloj, pero a veces más. El peor escenario sería un montón de lecturas donde ocurre lo siguiente: Reloj1 = Dirección se envía. Clock2 = La dirección ha cambiado. Clock3 = Se leen los datos. Clock4 = La dirección se cambia de nuevo. Y luego se repite todo el ciclo. En este ejemplo, el ancho de banda efectivo es solo el 25% del máximo teórico!

Otro factor que afecta el ancho de banda del bus es la latencia de lectura o escritura. Usaré PCIe como ejemplo porque es más extremo, pero podrían aplicarse cosas similares a este bus. Con PCIe, una simple lectura de 32 bits puede tardar 2 uS en completarse. Es tan largo debido a la naturaleza en serie de PCIe así como a la topología de los conmutadores y demás. Si su CPU tiene que hacer muchas lecturas, y no puede hacer nada más mientras están sucediendo las lecturas (esto es muy común), entonces la CPU simplemente estará esperando. A 2 uS por lectura, solo 2,000,000 de bytes / segundo: menos del 1% del máximo teórico para una conexión PCIe v1.0 de 1 línea.

Por supuesto que hacemos cosas para aumentar la eficiencia de nuestros autobuses. Realizamos transferencias en ráfaga, DMA, captación previa, almacenamiento en caché, etc. La eficiencia de cómo usamos el bus depende en gran medida de para qué usamos el bus: la aplicación. He mostrado dónde una aplicación podría tener solo un 1% de eficiencia, y hay otras que podrían alcanzar cerca del 95% de eficiencia.

El punto es: Sí, la fórmula que muestra es una aproximación con un error de aproximadamente 2.4% debido a la cosa 1000 vs. 1024. Pero como aproximación, está bastante cerca. Especialmente dada la enorme diferencia entre el ancho de banda máximo teórico y el real.

    
respondido por el user3624
2

No del todo. 1024 se usa solo en cálculos que involucran almacenamiento / espacio de memoria. >

  

Tenga en cuenta que esto va en contra del uso tradicional de los prefijos binarios para   tamaño de la memoria. Estos prefijos decimales han sido establecidos en los datos.   comunicaciones Esto ocurrió antes de 1998 cuando IEC y otros   Las organizaciones introdujeron nuevos prefijos binarios e intentaron   estandarizar su uso en todas las aplicaciones informáticas.

    
respondido por el itisravi

Lea otras preguntas en las etiquetas