¿Cómo obtengo el índice de estas direcciones de palabras? [cerrado]

-1

Nos dan referencias de direcciones de memoria de 32 bits.

Por ejemplo:

180, 43,2.

Se nos pide que busquemos el índice "dado un caché de mapa directo con bloques de dos palabras y un tamaño total de 8 bloques". Ten en cuenta que tengo las respuestas. Estoy buscando en CÓMO obtener esas respuestas.

El índice para 180, 43 y 2 son 2, 5 y 1. Para otras preguntas, utilicé la dirección mod el número de bloques. Pero modificar esos tres números con 8 o 16 no funciona.

    
pregunta munchschair

1 respuesta

0

En función de las respuestas numéricas conocidas, se presume que está solicitando el índice de bloque en la memoria caché que corresponde a cada dirección de memoria principal dada. Dado que solo hay 8 bloques en el caché, los valores solo pueden ir de 0 a 7. Además, cada bloque de caché tiene 2 palabras (por lo tanto, cada dirección de memoria par y su siguiente dirección de memoria impar se asignan al mismo bloque).

int(180/2) mod 8 = 2
int( 43/2) mod 8 = 5
int(  2/2) mod 8 = 1

El "mod 8" se debe a que los índices se repiten cada 8 (x mod 8 siempre es de 0 a 7). El "/ 2" se debe a que cada bloque puede contener 2 direcciones. El "int" básicamente trunca la división, y no nos importa dónde exactamente en el bloque reside el valor de la dirección (primera o segunda palabra).

Como algunos lectores pueden estar interesados en saber qué es el caché de memoria directo, encontré este video . p>     

respondido por el apalopohapa

Lea otras preguntas en las etiquetas