Memoria Cache Clase Práctica Organización del computador I 2º Cuatrimestre 2008 7 de octubre María Elena Buemi ¿Qué es la Memoria caché? • De acceso rápido(costosa en $$) • Interactúa entre la CPU y la Memoria Principal Palabra CPU Bloque CACHE Memoria Principal (MP) Contiene una porción de la MP Rápida-Pequeña Lenta Mayor tamaño 2 ¿Qué es la Palabra? – Palabra • unidad de organización de la memoria, unidad de transferencia 3 ¿Qué es el bloque? BLOQUE •Conjunto de unidades de transferencia Palabra 3 Palabra 2 Palabra 1 Palabra 0 4 ETIQUETA BLOQUE 0 1 2 Bloque de K palabras 0 1 2 3 K-1 L-1 K palabras, tam. bloque CACHE MEMORIA PRINCIPAL 5 ¿Cómo interactúa la Caché con la CPU y la Memoria? La cache recibe una dirección DIR de la CPU ¿Palabra con esa DIR en caché ? Cómo se hace una Lectura NO(Miss) Busca en Memoria Principal el bloque que contiene DIR Pone el la línea del bloque en que está DIR en la caché SI(Hit) Busca la Palabra que está en DIR y la transfiere hacia la CPU Transfiere la palabra hacia la CPU 6 LISTO Transferencias Cpu palabras Cache Divida en líneas Bloque Memoria Principal Está divida en bloques Elementos de la memoria Caché •Tamaño(menor que la memoria principal) •Mapeo (Organización del acceso ) •Políticas de reemplazo 8 Tamaño de la Caché C<< M ¿Cómo calculo el tamaño de la Caché? •Memoria Principal hay un número de palabras direccionables con direcciones de n bits •Cache hay una cantidad fija de líneas, en cada una hay un bloque de K palabras, •En la MP también hay una cantidad de bloques. •¿Cuántos? M=2n/K bloques El tamaño de la cache(su capacidad) dependerá del tamaño de la línea y la cantidad de líneas 9 Mapeo • Dado que hay muchas menos líneas en cache que en memoria principal es necesario un algoritmo para mapear bloques de memoria principal en líneas de cache. • La organización de la caché impone la forma de mapeo. Organización de Caché •Mapeo directo •Asociativa •Asociativa por conjuntos de n vías En cualquier caso, una dirección que mapee a cache tendrá campos . El tamaño de los campos variarán en distribución y tamaño según la organización de la Caché 11 Cache de mapeo directo Dirección de memoria Etiqueta Linea Indice Cada bloque de MP tiene asignada una línea de cache Etiqueta o Etiqueta: el bloque de MP donde se halla la línea que contiene a la palabra requerida Línea: la línea de caché donde está el bloque Índice: la plabra requerida 12 Correspondencia Directa o Mapeo Directo Ejemplo Cache Mapeo Directo Direcciones de memoria de 24 bits Los 14 bits de línea son usados para ubicarse en una línea particular. Si los 8 bits de la etiqueta coinciden con la etiqueta almacenada en esa línea de cache. Otro Ejemplo Dirección de memoria Etiqueta Linea Indice Una computadora utiliza una cache de mapeo directo de 32 líneas de 16 palabras cada una. La memoria principal mide 220 palabras y es direccionable a palabra". a)a¿Cuántas líneas posee la memoria principal? ¿A cuántos bloques corresponde. b)¿Cómo es una dirección para esta caché? c)La CPU pide leer la palabra que está en la dirección 0x0DB63. Cómo queda la caché luego de leerla. 15 a) 220 palabras /24 palabra/linea = 216 líneas en MP b) 1 linea 24 pal. #Indice= 4 bits Etiqueta -> #bloques en MP 216 lín. / 25 lín / bloque = 211 bloques #Etiquetas = 11 bits 25 líneas -> #linea= 5 bits Etiqueta Linea 11 5 c) Decodifico 0x0DB63 Indice 4 en 0000 1101 110 1 0110 0011 Indice = 0x3 Linea = 0x16 Etiqueta = 0x06E línea 0x16 de la caché contendrá la palabra 0x3 correspondiente a Etiqueta 16 Cache Asociativa Dirección de memoria Etiqueta Indice Etiqueta o Etiqueta: el bloque de MP de se halla la línea que contiene a la palabra requerida Índice: la palabra requerida Las líneas de este tipo de caché se ocupan, si la dirección buscada no está presente, hasta que la caché se llena. Cuando lo está para ocupar unalíneade caché habrá que desalojar alguna según algún algoritmo de reemplazo. 17 ASOCIATIVA EJEMPLO: ASOCIATIVA Memoria principal: 216 palabras. Caché Asociativa: 64 líneas de 32 palabras. • Cantidad de líneas de la Memoria Principal. #líneas=216 pal/25 pal/lin =211 líneas •Mostrar los campos de la dirección de memoria correspondiente. 11 5 •Dirección 0xF8C9 1111 1000 1100 1001 Etiqueta ->1111 0001 10 = 0x3E2 Indice ->11 1001 = 0x39 20 Asociativa por conjuntos de n vías Dirección de memoria principal Etiqueta cantidad de bloques en memoria principal conjunto índice cantidad de conjuntos o líneas en cada vía de caché cantidad de direcciones por línea Cada línea de caché tiene n-vías Conj o lin 0 Via 0 (conj o lin 0) Via n-1 (conj o lin 0) Conj o lin 1 Via 0 (conj o lin 1) Via n-1 (conj o lin 1) Via 0 (conj o lin L-1) Via n-1 (conj o lin L-1) Conj o lin L-1 Cache de n vías 21 ASOCIATIVA POR CONJUNTOSDE N VIAS EJEMPLO: Memoria principal: 227 palabras. Caché: 215 líneas de 64 palabras cada una. 1. Mostrar el formato de una dirección de memoria para una caché asociativa por conjuntos de 2 vías. • 64 palabras por línea= 26 pal/línea -> 6 bits para el índice • Cada vía de caché tendrá 214 líneas -> 14 bits para el campo conjunto • Cantidad de bloques en MP determinará la cant de bits para el Etiqueta: • Como la cantidad de lineas de MP es 227 pal/26pal/ linea = 221 lineas, • 221 Lineas/ 214 líneas/ bloque= 27 bloques en MP -> 7 bits para el Etiqueta 24 – ¿Cómo queda cargada la caché al leer primero la dirección 0x01178FC, y luego la dirección 0x03178FC? 0x01178FC -> 0000 0001 0001 0111 1000 1111 1100 Etiqueta Conjunto Indice 0000 0001 -> 0x1 0000 01 01 11 10 00 11 -> 0x5E3 0011 1100 ->0x3C 0x03178FC -> 0000 0011 0001 0111 1000 11 11 1100 Etiqueta Conjunto Indice 0000 0011 -> 0x3 0001 01 11 10 00 11 -> 0x05E3 11 1100 ->0x3C 25 Políticas Si el bloque está en caché Si el bloque no está en caché Buscarlo en Memoria Principal HIT Política de ubicación-F. de correspondencia Política de sustitución ¿Donde se ubica? Si la caché está llena ¿Dónde se ubica? Es una escritura Políticas de sustitución Algoritmos a seguir para qué línea de caché reemplazo. En Asociativa y en Asociativa por conjuntos de n-vías Más conocidos LRU: el más recientemente usado FIFO: primero que entra primero que sale LFU: menos frecuentemente usado 27 ¿Cómo interactúa la Caché con la CPU y la Memoria?(Escritura) Cómo se hace La cache envía una dirección DIR de la CPU Política una Escritua 2 políticas Política Write back Escribe la palabra en caché Escribe en caché. Write-througth Escribe en caché y en MP Hay que reemplazar esa línea de cache Actualiza la MP ¿Cuál de las 2 será más conveniente? 28