Cierto procesador utiliza una caché totalmente asociativa de 16 kB de tamaño. El tamaño del bloque de caché es de 16 bytes. Suponga que la memoria principal es direccionable por bytes y utiliza una dirección de 32 bits. ¿Cuántos bits se requieren para los campos Etiqueta e Índice respectivamente en las direcciones generadas por el procesador?
(A) 24 bits y 0 bits
(B) 28 bits y 4 bits
(C) 24 bits y 4 bits
(D) 28 bits y 0 bits
Respuesta: (D)
Explicación: dado que el tamaño del bloque de caché es de 16 bytes, entonces bloque o el desplazamiento de palabra es de 4 bits. Caché totalmente asociativa de 16 kB de tamaño, por lo que el desplazamiento de línea debería ser,
= cache size / block size = 16 kB / 16 B = 1 k = 1024 = 10 bits Line or Index Offset
El tamaño de bits de la etiqueta sería,
= processor address size - (line offset + word offset) = 32 - 10 - 4 = 18 bits tag size
Dado que no hay coincidencias de opciones, pero si asumimos que Line Offset es parte de Tag bits, por lo tanto,
Tag bits = 18+10 = 28 bits Line or Index offset = 0 bits (since fully associative cache memory), Word or block offset = 4 bits
Manera alternativa:
sabemos en el mapeo totalmente asociativo,
Line size = block size = frame size
El número de bits en la etiqueta se puede encontrar usando la siguiente fórmula
Number of Tag bits = Total number of bits in Physical Address - no of bits in Block offset
Aquí no se proporciona el número de bits en el desplazamiento de bloque. Se puede encontrar usando
ceil(log2 Cache block size) = ceil(log2 16) = 4
Asi que,
Number of Tag bits = 32-4 = 28
No hay bits de índice en el mapeo totalmente asociativo, por lo tanto, los bits de índice = 0
Entonces, la opción (D) es correcta.
Publicación traducida automáticamente
Artículo escrito por GeeksforGeeks-1 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA