Análisis de Costos

Una importante medida para un cache on-chip es el área ocupada. En esta sección se presenta un análisis de costo para dos implementaciones de memoria de tags en el CAT cache y el baseline cache.

Se define un register-bit equivalent (rbe) como una unidad del área de chip. Para la memoria cache, cada celda (SRAM) es equivalente a 0.6 rbe.
La figura 6 muestra el layout de un área de cache para el baseline cache y el CAT Cache


El área del arreglo de datos, en el CAT cache, se mantiene igual al del baseline cache con idénticos parámetros, por lo tanto, el análisis de costos solo se realiza sobre el área de tags.

Sea tagbits, el largo de un tag en bits y Nsets el número de líneas en el área de datos, en el baseline cache, Nsets también corresponde al número de tags. Luego, el costo del área de tags, en términos de rbe, para el baseline cache es:

Tag areaold= 0.6 (tagbits+6) (Nsets+6+6) rbe

En el CAT cache, el arreglo de tags consiste en el tag cache, el cual es un cache completamente asociativo que mantiene direcciones de tags distintas y tag pointers. El número de tags en el tag cache, no es mayor al número de líneas en el área de datos. El número de tags en el tag cache lo llamaremos Cats.

Los tag pointer trabajan como una memoria RAM, en el caso de reemplazar un tag, todos los bits validos de las líneas de cache asociadas a ese tag que se cambia deberían ser limpiadas, lo cual hace al tag pointer completamente asociativo. La celda CAM de nueve transistores compuesta de circuitos para guardar y comparar, puede ser usado área implementar la memoria asociativa. Se asume que el tamaño de cada celda de memoria en el área de tag es de dos veces el tamaño de una celda RAM en el cache, el ancho y alto de cada celda es igual a V2 (raíz cuadrada de 2) si el CAM esta implementado como una celda cuadrada.

Entonces, el área del tag cache es:

Tag areanew = Tag pointers + tag cache area
Tag areanew = 0.6(V2 Nsets+6)(V2 log2Cats) + 0.6(V2 tagbits+6)(V2 Cats+6) rbe

Si tomamos la razón entre las dos fórmulas:

Tag areanew =
0.6(tagbits+6)(Nsets+12)


Tag areanew
1.2(Nsets+4.2)(log2Cats) + 1.2(tagbits+4.2)(Cats+4.2)

El siguiente gráfico muestra el ahorro de área como un porcentaje del área total del cache, se puede apreciar que, mientras largo de palabras de direcciones, el ahorro es mayor.

Para un cache muy grande, es decir Nsets es muy grande, se tiene:

Tag areaold = (tagbits+6)   Cuando Nsets ® ¥


Tag areanew 2log2 Cats

Por ejemplo, si se tiene una máquina de 64-bit con 16K-byte de cache on-chip, y un tag cache de 32 entradas, el ahorro de área debería ser cercano a 5.6 veces.

Si el espacio de direcciones es muy grande, es decir un tagbits muy grande, se tiene:

Tag areaold = (Nsets + 12)   Cuando tagbits ® ¥


Tag areanew 2(Cats + 4.2)

Para la misma máquina anterior, con tamaños de líneas de 16 bytes, el ahorro de área debería ser de un orden de magnitud.

La figura 7 muestra el ahorro del área como un porcentaje del área total del cache. (Tamaño del cache: 16K-byte, tamaño de línea: 16 byte)




Back | Menú Principal | Conclusiones