Ejercicio 7

Ejercicio 7

de Veronica Viviana Pintos Fernandez -
Número de respuestas: 8

Considere un microprocesador con direcciones de 32 bits que tiene una cache on-chip
de 16 KBytes asociativa por conjuntos de 4 vías (4 way associative). Suponga que la
caché tiene un tamaño de línea de 4 palabras de 32 bits. Dibuje un diagrama de
bloques de esta caché, mostrando su organización y cómo se utilizan los diferentes
campos de dirección para determinar un acierto/fallo de caché. Donde se asigna,
dentro de la caché, la palabra de la posición de memoria ABCDE8F8h?


Por línea de cache tengo 16 B? debido a que son 4 palabras * 32 bits (4B) cada una?

Luego con 4 bits identifico el byte?

Hallé que los bits de CONJUNTO son 8 y los de TAG (si esta bien que la dirección sea de 32 bits) son 20 bits.

 

Luego no sé como resolver la última parte del ejercicio y a cuál dibujo se refiere.

Muchas gracias, 

Verónica.

En respuesta a Veronica Viviana Pintos Fernandez

Re: Ejercicio 7

de Federico Rivero -

Estimada:

Lo que comentás es correcto.

La idea es que dibujes algo como està en las notas de Jerarquía de Memoria, página 12.

Saludos!

En respuesta a Federico Rivero

Re: Ejercicio 7

de Bruno Stefano Lombardo Palleiro -
Hola, llegué a que la cantidad de BITS de CONJUNTO son 9, ya que la caché tiene 2048 líneas y eso lo dividí entre 4 que son la cantidad de vías.
Que esta mal en este razonamiento?
saludos
En respuesta a Bruno Stefano Lombardo Palleiro

Re: Ejercicio 7

de Federico Rivero -
Hay errores en lo q contesté yo y en lo tuyo también.

De la letra se desprende que el direccionamiento es por palabra, y como hay 4 palabras por línea, se precisan 2 bits para direccionarlas. Luego, la línea ocupa 4 x 4 = 16 bytes, por lo tanto hay 16k/16 =1024 líneas, y por lo tanto hay 256 conjuntos. Se precisan 8 bits de la dirección para direccionarlos. Por último, el tag ocupa 22 bits.

Saludos,
Federico
En respuesta a Federico Rivero

Re: Ejercicio 7

de Bruno Stefano Lombardo Palleiro -
Buenas Federico, hay algunas cosas que no me quedaron claras.
Como dedujiste que el direccionamiento es por palabra?
Para obtener la cantidad de líneas no habría que hacer 32K/16=2048? No entendí porque pusiste 16K .
En respuesta a Bruno Stefano Lombardo Palleiro

Re: Ejercicio 7

de Federico Rivero -
El direccionamiento de a palabra lo asumo por cómo describe la línea al decir que guarda 4 palabras de 32 bits. Si el direccionamiento fuera de a byte me parecería más normal decir que hay 16 bytes por línea. Ahora q pienso, la respuesta original que hice seguramente fue considerando que el direccionsmiento es de a byte. Si en un examen/parcial no aclaramos el tipo de direccionamiento, seguramente aceptemos ambas opciones.

Lo de la cantidad de líneas, no sé de dónde sale el 32k, la capacidad de la caché es 16kb

Saludos,
Federico
En respuesta a Federico Rivero

Re: Ejercicio 7

de Bruno Stefano Lombardo Palleiro -
Perfecto Fede ,la primera parte ya quedó clara.
Sobre la segunda, este ejercicio es el  4 del práctico actual . El hilo es bastante viejo, por lo que me parece que las letras son un poco distintas, en el de 2021 hay un 32 en vez de 16 que no había visto cuando pregunté originalmente.
Con esto en cuenta, lo que te había dicho de los 9 bits es correcto no?
En respuesta a Bruno Stefano Lombardo Palleiro

Re: Ejercicio 7

de Gustavo Brown -
Bruno,
De acuerdo a los datos actuales (ejercicio 4) tenés:
- tamaño total de la cache de 32Kbytes
- tamalo de línea de 4 palabras de 32 bits (o sea, 16 bytes pero en realidad 4 palabras de 4 bytes)
- asociativa por conjunto de 4 vías

Entonces:
Total de líneas:  32Kbytes/16bytes_por_línea = 2^5*2^10 bytes_linea / 2^4 bytes = 2^11 líneas
Como como es asociativa por conjuntos de 4 vías:
Cantidad de conjuntos: 2^11 líneas/ 2^ lineas_por_conjunto = 2^9 conjuntos
El tag toma los bits más significativos de la dirección

Por lo tanto, las direcciónes se decodifican de acuerdo a los siguientes campos:

  [21 bits TAG | 9 bits CONJUNTO | 2 bits PALABRA]

Saludos,
  Gustavo