UTNianos

Versión completa: [Arquitectura] Memoria Caché
Actualmente estas viendo una versión simplificada de nuestro contenido. Ver la versión completa con el formato correcto.
A ver si alguno me saca las dudas de si estoy haciendo las cosas medianamente bien o si le estoy errando feo feo


11) Sabiendo que una CPU genera una dirección de 24 bits que permiten acceder a la memoria principal y a la caché y que la caché tiene 128 líneas de 32 palabras (bytes) cada una indicar:
• Cuál es el tamaño de la memoria principal
• Cuántos bytes tiene el campo etiqueta en el caso de correspondencia totalmente asociativa.
• Cuántos bytes tiene el campo etiqueta en el caso de correspondencia DIRECTA



Para obtener la Memoria principal, se que hay que hacer 2^Bits de direccionamiento a la MP.

Según estuve leyendo, 2^20 = 1 Mega, y a partir de ahí vas sumando 1 mega. Para sacar la MP cuando la dire es de 24 bits, yo tendria que hacer 2^24? Porque me huele raro que me de tanto, por ahi lei que iba sumando el doble. O sea 2^20 = 1 mega, 21 bits 2 megas, 22 bits 4 megas, 23 bits 8 megas, y 24 bits 16 megas. Saqué la conclusión de que la mp es de 16 megas (diganme si esta bien lo que digo )

Despues dice cuantos bytes tiene el campo etiqueta en totalmente asociativo. En tot asociativo etiqueta y linea iban los 2 juntos los campos. Si la MP es de 16 megas, calcule que necesito 34 bits para armar la estructura, esta bien eso?
Bueno como cada linea es de 32 bytes, 2^5 = 32, entonces la parte de la estructura de posicion seria de 5 bits
Y haciendo la resta me quedarían 29 bits para el campo Etiqueta.


Para cuando es correspondencia directa (1 via) se me separan los campos

Yo calcule el tamaño de la memoria cache haciendo 128 lineas x 32 bytes = 4 kb

Y para sacar los grupos MP/MC = 16 grupos, entonces 2^4 -> etiqueta me quedaría en 4 bits, si tengo en posicion 5 bits haciendo la resta el campo de linea me quedaria para 25 bits. esta bien?

Si alguno me puede dar una mano le agradezco, gracias
Me cuelo para ver que te responden porque a mi tambien me surgen dudas respecto a esto...
Esperemos a alguien que sepa ;)
(07-11-2010 20:32)maxenz escribió: [ -> ]A ver si alguno me saca las dudas de si estoy haciendo las cosas medianamente bien o si le estoy errando feo feo


11) Sabiendo que una CPU genera una dirección de 24 bits que permiten acceder a la memoria principal y a la caché y que la caché tiene 128 líneas de 32 palabras (bytes) cada una indicar:
• Cuál es el tamaño de la memoria principal
• Cuántos bytes tiene el campo etiqueta en el caso de correspondencia totalmente asociativa.
• Cuántos bytes tiene el campo etiqueta en el caso de correspondencia DIRECTA



Para obtener la Memoria principal, se que hay que hacer 2^Bits de direccionamiento a la MP.

Según estuve leyendo, 2^20 = 1 Mega, y a partir de ahí vas sumando 1 mega. Para sacar la MP cuando la dire es de 24 bits, yo tendria que hacer 2^24? Porque me huele raro que me de tanto, por ahi lei que iba sumando el doble. O sea 2^20 = 1 mega, 21 bits 2 megas, 22 bits 4 megas, 23 bits 8 megas, y 24 bits 16 megas. Saqué la conclusión de que la mp es de 16 megas (diganme si esta bien lo que digo )

Despues dice cuantos bytes tiene el campo etiqueta en totalmente asociativo. En tot asociativo etiqueta y linea iban los 2 juntos los campos. Si la MP es de 16 megas, calcule que necesito 34 bits para armar la estructura, esta bien eso?
Bueno como cada linea es de 32 bytes, 2^5 = 32, entonces la parte de la estructura de posicion seria de 5 bits
Y haciendo la resta me quedarían 29 bits para el campo Etiqueta.


Para cuando es correspondencia directa (1 via) se me separan los campos

Yo calcule el tamaño de la memoria cache haciendo 128 lineas x 32 bytes = 4 kb

Y para sacar los grupos MP/MC = 16 grupos, entonces 2^4 -> etiqueta me quedaría en 4 bits, si tengo en posicion 5 bits haciendo la resta el campo de linea me quedaria para 25 bits. esta bien?

Si alguno me puede dar una mano le agradezco, gracias


La 1) Si. Es 2^24 que es lo mismo que 2^20 x 2^4 = 2^20 x 16, y como 2^20 es = 1 MB, quedan 16 MB como dijiste.

La 2) No necesitás 34, necesitás 24. (lo calculaste en A). Para la etiqueta en totalmente asociativo, tenés que dividir el tamaño de la memoria principal / longitud de una línea. Osea, si la memoria principal es la misma que arriba, sería 16 MB / 32 bytes.
Entonces 2^alosbitsdeetiqueta = 16 MB / 32 bytes.

La 3) Es correcto el procedimiento, solo que no son 34 bits, sino 24.

4) Aguante racing
Muy util la respuesta. Tengo una pregunta:
Si de los 4GB de Memoria principal, los 64K dentro del primer mega direccionan a memoria ROM. ¿Cual es el rango de direcciones hexadecimales que la corresponden?
No tengo ni idea de como se resuelve eso =P
URLs de referencia