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.