Definición: Pequeña cantidad de memoria SRAM (de 8 a 512kb) que se encuentra entre el µp y la memoria principal. El microprocesador lee datos de la memoria principal y los almacena en la memoria caché (SRAM). Si el microprocesador vuelve a necesitar esos datos, los lee de la memoria caché en lugar de la memoria principal que es mas rápida, debido a que no necesita ciclo de refresco para mantener los datos. CONTROLADOR DE CACHÉ CPU CACHÉ MEMORIA PRINCIPAL *Nota: Antes la caché venía fuera del microprocesador (caché de nivel 2), pero hoy en día la mayoría de los micro incorporan una pequeña caché dentro de la propia CPU (caché de nivel 1) ya que de esta manera puede trabajar a la misma velocida y obtener así mayor rendimiento. El tamaño de la caché Ustedes pensarán: pues cuanto más grande, mejor. Cierto, pero no; o más bien, casi siempre sí. Aunque la caché sea de mayor velocidad que la RAM, si usamos una caché muy grande, el micro tardará un tiempo apreciable en encontrar el dato que necesita. Esto no sería muy importante si el dato estuviera allí, pero ¿y si no está? Entonces habrá perdido el tiempo, y tendrá que sumar ese tiempo perdido a lo que tarde en encontrarlo en la RAM. Por tanto, la caché actúa como un resumen, una "chuleta" de los datos de la RAM, y todos sabemos que un resumen de 500 páginas no resulta nada útil. Se puede afirmar que, para usos normales, a partir de 1 MB (1024 Kb) la caché resulta ineficaz, e incluso pudiera llegar a ralentizar el funcionamiento del ordenador. El tamaño idóneo depende del de la RAM, y viene recogido en la siguiente tabla: Caché (Kb) 1a4 4 a 12 12 a 32 RAM (MB) 128 ó 256 256 512 más de 32 512 o más Componentes del caché CTROLADOR DE CACHÉ PASTILLA SRAM MEMORIA ASOCIATIVA a)Mem asociativa (chips mem SRAM): entre CPU y mem principal (desde 8kb a 512kb). b)Ctrolador de caché: Copia trozos de mem principal en la cache. Funcionamiento de la memoria caché Cuando el micro lee o escribe en memoria principal tambien escribe en la caché. Si luego necesita los datos accede a caché velocidad del sistema. MEM CACHÉ DE 8KB 128 sets o posiciones por vía. 2K VIA 3 VIA 2 VIA 1 VIA 0 128 bits (bus entre caché y CPU) CPU 8K=4x2K=4x2x1024bytes 1VIA:128 bits/(8 bits/byte)=16bytes 4vías x 16bytes=64bytes, como la caché tiene 8K: 1VIA:8K/64bytes=128 posiciones o sets. -En las vías: Se almacenan los datos y hay que asociar cada dato a una etiqueta (tag): la caché tiene un directorio con tantas entradas como posiciones en las vias. El trozo de memoria mínima que puede direccionarse en cada vía es 16bytes. *Como hay 4 vías: 4x16bytes=64bytes *Como en total la caché es 8K, entonces 8K/64bytes=8x1024bytes/64bytes=128sets o posiciones. 64BYTES 16 BYTES 128 posiciones 8K Vía3 Vía2 Vía1 Vía0 * En las vías se almacenan datos, pero hay que asociar cada dato a una etiqueta(tag), relacionada con la direccion de memoria. La caché tiene una dirección (tag) con tantas entradas como posiciones en las vías. Directorio(índice) 128 21bits Tag0 21bits Tag1 21bits Tag2 entradas tag 021bits tag14bits 3bits Tag3 tag válido LRU Cada entrada contiene: -4 campos tag de entrada: 1 por vía (21 bits) -1 campo tag válido : para validar los 4 de entrada (4 bits) -1 campo LRU: criterio reemplazable (3 bits) 32 11 CPU pone una dirección física en el bus de direcciones , A10-A4 , se selecciona 1 de las 128 posiciones de la caché. 32 CPU bus direcciones CACHE 128 CACHE bus datos 2 3 Si la direccion esta en la caché, estará en 1 de las 4 lineas de las vías, entonces las Compara ,A31-A11, con los 4 tags de la entrada del directorio o índice. Si se ha encontrado : se produce 1 comparación válida, por lo tanto no accede a mem. Si no se ha encontrado: se accede a memoria principal directamente. Directorio de 128 entradas MEMORIA CACHÉ DE 8 KBYTES 128 128 SET VIA3 VIA2 VIA1 VIA0 CADA SET CONTIENE 4 LINEAS DE 16 BYTES SELECCIONA UN SET CADA ENTRADE DEL DIRECTORIO CONTIENE: tag0 0 31 tag1 1 0 0 tag2 0 1 0 tag3 0 1 1 tag valido 0 0 1 11 1 10 0 LRU 0 0 0 1 1 4 1 3 1 1 0