¿Cómo calcular el número de bits de etiqueta, índice y desplazamiento de diferentes cachés?


18

Específicamente:

1) Un caché de mapeo directo con 4096 bloques / líneas en el que cada bloque tiene 8 palabras de 32 bits. ¿Cuántos bits se necesitan para los campos de etiqueta e índice, suponiendo una dirección de 32 bits?

2) ¿La misma pregunta que 1) pero para caché totalmente asociativo ?

Corrígeme si me equivoco, ¿es así?

bits de etiqueta = longitud de bit de dirección - exponente de índice - exponente de desplazamiento?

[¿El desplazamiento = 3 se debe a 2 ^ 3 = 8 o es 5 de 2 ^ 5 = 32?]


algunas explicaciones sobre etiqueta, índice y desplazamiento en cs.stackexchange.com/questions/33818/…
Ran G.

Respuestas:


20

La pregunta como se indicó no es del todo respondible. Una palabra se ha definido como 32 bits. Necesitamos saber si el sistema es "direccionable por byte" (puede acceder a una porción de datos de 8 bits) o "direccionable por palabra" (la porción accesible más pequeña es de 32 bits) o incluso "direccionable por media palabra" (el La porción más pequeña de datos a la que puede acceder es de 16 bits.) Debe saber esto para saber qué le dice el bit de orden más bajo de una dirección.

Entonces trabajas de abajo hacia arriba. Supongamos que el sistema es byte direccionable.

Luego, cada bloque de caché contiene 8 palabras * (4 bytes / palabra) = 32 = 2 5 bytes, por lo que el desplazamiento es de 5 bits.

El índice para un caché mapeado directo es el número de bloques en el caché (12 bits en este caso, porque 2 12 = 4096).

Entonces la etiqueta es todos los bits que quedan, como usted ha indicado.

A medida que el caché se vuelve más asociativo pero se mantiene del mismo tamaño, hay menos bits de índice y más bits de etiqueta.


sí, es un byte direccionable, pero la pregunta que miré no lo
decía

3

Su fórmula para los bits de etiqueta es correcta.

Si el desplazamiento es de tres o cinco bits depende de si el procesador utiliza el direccionamiento de bytes (octetos) o el direccionamiento de palabras. Fuera de los DSP, casi todos los procesadores recientes usan el direccionamiento de bytes, por lo que sería seguro asumir el direccionamiento de bytes (y cinco bits de desplazamiento).


No sabía que había tales distinciones, sí, es el direccionamiento de bytes
compski el

1
Antes de mediados de la década de 1970, podríamos suponer razonablemente que una "palabra" era del tamaño de la unidad de datos direccionable más pequeña. Esta tabla en la página de wikipedia sobre Word es divertida (si te gusta ese tipo de cosas, (lo que a mí me gusta))
Wandering Logic

1

Estoy aprendiendo para el examen final de la asignatura Sistema informático, busqué en Google por un tiempo y encontré esta pregunta. Y esta parte de la pregunta es confusa: "en el que cada bloque tiene 8 palabras de 32 bits". Una palabra tiene 4 bytes (o 32 bits), por lo que la pregunta solo debe ser "... en la que cada bloque tiene 8 palabras"

La respuesta es: cada bloque tiene 32 bytes (8 palabras), por lo que necesitamos 5 bits de desplazamiento para determinar qué byte en cada bloque: mapeado directo => número de conjuntos = número de bloques = 4096 => necesitamos 12 bits de índice para determinar qué conjunto

=> bit de etiqueta = 32 - 12 - 5 = 15

Para totalmente asociativo, el número de conjunto es 1 => sin bit de índice => bit de etiqueta = 32 - 0 - 5 = 27


1

No hay bits de índice en un caché totalmente asociativo. Los bits de índice se utilizan para identificar de forma exclusiva a qué conjunto pertenece el bloque. En un caché totalmente asociativo, todos los bloques son esencialmente parte del mismo conjunto.


-1

en el índice de mapeo asociado completo es 0 b / s como dice set = 1, entonces index = log of 1 en base 2 = 0 set offset = log del tamaño de bloque de byte base 2, así que use 8 = 2 ^ 3 o 32 = 2 ^ 5 etiquetas = 32-0-5 = 27 para índice directo = 2 ^ 12 = 12 offset = etiqueta de 0 bits = 32-12-0 = 20


Esto me parece muy imposible de leer. Por favor, use algunos signos de puntuación.
David Richerby
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.