¿Términos (banco, latencia) en la memoria principal?

-1

Una CPU tiene un caché con un tamaño de bloque de 64 bytes. La memoria principal tiene k bancos, cada banco tiene c bytes de ancho. C: los segmentos de bytes consecutivos se asignan en bancos consecutivos con resumen. Se puede acceder a todos los k bancos en paralelo, pero dos accesos al mismo banco deben ser serializados. Un acceso de bloque de caché puede involucrar múltiples iteraciones de accesos de bancos paralelos dependiendo de la cantidad de datos obtenidos al acceder a todos los k bancos en paralelo. Cada iteración requiere descodificar los números de banco para acceder a ellos en paralelo y esto toma k / 2 ns. La latencia de un acceso bancario es de 80 ns. Si c = 2 yk = 24, la latencia de recuperar un bloque de caché que comienza en la dirección cero desde la memoria principal es:

No soy muy conocido con los términos de banco y de latencia en la memoria principal. ¿Puede alguien ayudarme a obtener información sobre estos términos o proporcionarme una buena fuente de dónde puedo obtener todas estas cosas de manera adecuada?

    
pregunta user1766481

2 respuestas

1

A riesgo de sonar cojo, todo lo que necesita es un diccionario, incluso uno que no sea técnico. Por ejemplo, la entrada wiktionary.org para latencia explica que es un retraso. La latencia de la memoria es la demora después de la cual los datos que lee llegan y son válidos. Puede medirse en ciclos de reloj o en tiempo real, como en su ejemplo. Me parece que su texto usa este término para indicar lo que algunos podrían llamar la latencia de la caché (falta), el retraso incurrido al no tener datos en la caché.

Un banco de memoria es simplemente un área (física) de memoria. Como lo explica su texto, la importancia de un banco de memoria principal es que no permite el acceso simultáneo, y que el diseño lógico (como se ve en las direcciones de memoria) se elige de manera que ayude a paralizar el acceso a la memoria al distribuir ubicaciones consecutivas en diferentes bancos .

En su ejemplo, los primeros 2k = 48 bytes del "bloque de caché" de 80 bytes se distribuyen en todos los k = 24 bancos de memoria, y los 32 bytes restantes requieren acceso a 16 bancos nuevamente en una segunda iteración. Por lo tanto, se necesitan 80 ns + 12 ns + 80 ns + 8 ns para recuperar estos 80 bytes de la memoria principal.

    
respondido por el pyramids
0
  

Aquí el tiempo requerido será el tiempo requerido para dos    Accesos paralelos , ya que el acceso paralelo único le dará solo 48 bytes. Para los bytes restantes tendrá que hacer 1 acceso paralelo más.   
  Según su pregunta

El tiempo para 1 acceso paralelo es = latencia + k / 2
La latencia se da como 80 ns y k se da como 24
Así que el tiempo para 1 acceso paralelo es 80 + 24/2 = 92 ns
Y tenemos que hacer 2 accesos. Entonces 92 * 2 = 184 ns es el tiempo total requerido.

    
respondido por el Coffee_lover

Lea otras preguntas en las etiquetas