¿Cuántos bits se utilizan para los campos de etiqueta, bloque y desplazamiento para la representación de una dirección de memoria?

1
  

Un pequeño sistema informático integrado direccionable por bytes, con una longitud de palabra   De 32 bits, tiene una memoria principal que consta de 4 KBytes. También tiene un   caché de datos pequeños capaz de contener ocho palabras de 32 bits, donde cada una   línea de caché contiene sólo dos palabras. Considere un caché de mapa directo.

Respuesta

Dado que el caché se asigna directamente, el tamaño del conjunto es de 256 bits (?) = 32 bytes y, por lo tanto, se necesitan 5 bits para direccionar la memoria, por lo que el número de bits que no son la etiqueta es 5 (? ) = Se utilizan 27 bits para la etiqueta (?)

Dado que una línea tiene 2 palabras = 64 bits (?) = 8 bytes, entonces el desplazamiento toma 3 bytes y, por lo tanto, el bloque toma 2 bytes (?).

¿Es cierto?

    

1 respuesta

2

Una dirección en un sistema en caché tiene hasta tres partes: etiqueta, conjunto y desplazamiento.

Dado que el sistema dado es un byte direccionable, y una línea de caché tiene dos palabras (ocho bytes), la parte de desplazamiento de la dirección requiere 3 bits.

Un caché mapeado directo no tiene asociación de conjunto. O, si lo desea, puede considerarse como una colección de conjuntos, cada uno de los cuales contiene solo un bloque. Así que no hay conjunto - > se requiere una búsqueda asociativa en bloque, y el campo de configuración de la dirección puede llamarse un campo en bloque. Este campo determina directamente el bloque al que se asigna la dirección, de ahí la designación de "asignación directa". La etiqueta se usa para determinar si un bloque dado en el caché es un "hit" para la dirección, o contiene datos para alguna otra dirección. (Mientras que en la asociación de conjuntos, la etiqueta se usa para buscar un conjunto de bloques para un acierto: los elementos de conjunto se asocian con direcciones a través del campo de etiqueta.

El caché tiene cuatro bloques, porque contiene ocho palabras, pero los pares de palabras se consideran bloques. Por lo tanto, la parte de conjunto / bloque de la dirección requiere dos bits.

El resto son bits de etiqueta. Como el espacio de la memoria es de 4 Kb de ancho (supongamos que no hay memoria virtual), las direcciones tienen 12 bits de ancho, por lo que hay 12 - 3 - 2 = 7 bits de etiqueta.

Tenga en cuenta que si el tamaño establecido fuera de 256 bits, haría que la memoria caché sea completamente asociativa en lugar de asignarla directamente: una situación en la que toda la memoria caché es un gran conjunto de bloques, por lo que hay no hay campo establecido en una dirección, solo una etiqueta y un desplazamiento. La etiqueta se utiliza para buscar en toda la memoria caché un hit. En la asociación de conjuntos, el campo de conjunto adicional restringe la búsqueda a un conjunto indexado, que solo contiene un único bloque debajo de la caché asignada directamente.

    
respondido por el Kaz

Lea otras preguntas en las etiquetas