¿Cuáles son los bits para este caché?

0

Tengo un caché mapeado directo de tamaño S con el tamaño de línea L. El caché está físicamente indexado y etiquetado. La dirección física es de 50 bits, numerada de 0 a 49 (siendo 0 el bit menos significativo). La máquina tiene un tamaño de palabra de 4 bits y la memoria es direccionable en bytes. ¿Qué bits de los 50 bits se utilizan para seleccionar una palabra de la línea? ¿Es la cantidad de bits que lleva al punto de una palabra en el tamaño de línea L, por ejemplo? si el tamaño de la línea es de 8 bytes, entonces se necesitan 2 bits? ¿Es algún logaritmo otra vez que debe usarse?

    

2 respuestas

2

Suponiendo que quería decir "La máquina tiene un tamaño de palabra de 4 bytes" (en lugar de "bits"), entonces sí, es correcto: el log2 del número de palabras en una línea. Como hay 4 bytes por palabra, los 2 bits de dirección inferiores (addr [1: 0]) se utilizan para seleccionar qué byte de una palabra, y luego los bits siguientes (addr [log2 (L) -1: 2]) son para seleccionar qué palabra en la línea. Esto supone que el tamaño de la línea es L bytes, no L bits (si L está en bits, primero divida L por 8).

    
respondido por el mith
1

¿Se supone que esto es una pregunta engañosa? No puede seleccionar directamente palabras de 4 bits del caché, ya que el sistema de memoria es "byte direccionable", lo que presumiblemente significa bytes de 8 bits.

    
respondido por el Dave Tweed

Lea otras preguntas en las etiquetas