UNIVERSIDAD DE CORDOBA ESTRCUTRA DE COMPUTADORAS UNIDAD VI EXPLOTAR LA JERARQUÍA DE MEMORIA 1.- INTRODUCCION La memoria como uno de los bloques funcionales básicos 1 ÁREA DE ARQUTIECTURA Y TECNOLOGÍA DE COMPUTADORES UNIVERSIDAD DE CORDOBA ESTRCUTRA DE COMPUTADORAS UNIDAD VI 2 ÁREA DE ARQUTIECTURA Y TECNOLOGÍA DE COMPUTADORES UNIVERSIDAD DE CORDOBA ESTRCUTRA DE COMPUTADORAS UNIDAD VI Ideal de todos los programadores Memoria: Mucha Muy rápida Gran impacto sobre el rendimiento de la organización de la memoria Cuello de botella Objetivo de este tema: “Cómo creerse que pueden tenerse esas dos características sin que realmente lo sea (ilusión)” 3 ÁREA DE ARQUTIECTURA Y TECNOLOGÍA DE COMPUTADORES UNIVERSIDAD DE CORDOBA ESTRCUTRA DE COMPUTADORAS UNIDAD VI Ejemplo del estudiante en biblioteca, consultando libros: Depósito general (estanterías) Grande y lento de acceso Depósito pequeño (mesa) Pequeño y de acceso rápido Mecanismo de consulta Mira libro en la mesa Acude al depósito general si no lo encuentra “Con un nº no grande de libros (bien elegidos) en la mesa, gran parte de las consultas serán un éxito” Principio de localidad Localidad temporal Los más recientemente utilizados son más probables Localidad espacial Los más cercanos a los utilizados son más probables 4 ÁREA DE ARQUTIECTURA Y TECNOLOGÍA DE COMPUTADORES UNIVERSIDAD DE CORDOBA ESTRCUTRA DE COMPUTADORAS UNIDAD VI Aplicación a la memoria de un computador Gran localidad de acceso a memoria (Instrucciones y Datos) Temporal (bucles) Espacial (secuencialidad) Implementación de una jerarquía de memoria Se divide en diferentes niveles: parametros diferentes: Velocidades Tamaños Coste por bit Consideramos tres niveles: Superior – Memoria Caché (cercana a la CPU) SRAM Medio – Memoria Principal DRAM Inferior – Memoria Secundaria MAGNÉTICA El contenido de la Caché es un subconjunto del nivel superior 5 ÁREA DE ARQUTIECTURA Y TECNOLOGÍA DE COMPUTADORES UNIVERSIDAD DE CORDOBA ESTRCUTRA DE COMPUTADORAS UNIDAD VI 6 Tiempos y coste ÁREA DE ARQUTIECTURA Y TECNOLOGÍA DE COMPUTADORES UNIVERSIDAD DE CORDOBA ESTRCUTRA DE COMPUTADORAS UNIDAD VI Mecanismo de acceso a instrucciones y datos er Buscamos en el 1 nivel (Caché) Si está se toma Éxito Si no está se accede al siguiente nivel º Buscamos en el 2 nivel si procede (Memoria principal) Si está se toma y se pasa al 1er nivel Si no está se accede al nivel siguiente er Se toma del 3 nivel (Memoria secundaria) Parámetros de eficiencia Si se encuentra Acierto (HIT) Si no se encuentra Fallo (MISS) Tasa de aciertos Acierto/(A+F) Tasa de fallos Fallo/(A+F) Tiempo de Acierto incluye: Tiempo de acceso a nivel superior Tiempo de comprobación de si existe en ese nivel Penalización de fallo incluye: Tiempo en sustituir un bloque del nivel superior 7 ÁREA DE ARQUTIECTURA Y TECNOLOGÍA DE COMPUTADORES UNIVERSIDAD DE CORDOBA ESTRCUTRA DE COMPUTADORAS UNIDAD VI 2.- CACHES Identifica el 1er nivel dentro de la jerarquía de la memoria (1970) Entre la memoria principal y la CPU Consideraremos una sencilla: El procesador solicita una palabra cada vez Cada bloque es de una palabra Ejemplo de un fallo 8 ÁREA DE ARQUTIECTURA Y TECNOLOGÍA DE COMPUTADORES UNIVERSIDAD DE CORDOBA ESTRCUTRA DE COMPUTADORAS UNIDAD VI Cuestiones a plantear: Cómo sabemos si está lo que buscamos Cómo lo obtenemos Estructura de “Correspondencia Directa” Cada palabra de la M.P. sólo puede estar en una posición de la Caché Cada palabra de caché contiene: Bit de validación V (valid) Etiqueta (tags) Almacena el rótulo Palabra (Instrucción o dato) 9 ÁREA DE ARQUTIECTURA Y TECNOLOGÍA DE COMPUTADORES UNIVERSIDAD DE CORDOBA ESTRCUTRA DE COMPUTADORAS UNIDAD VI Proceso de acceso a la caché en un ejemplo Contenido de la Caché: 10 ÁREA DE ARQUTIECTURA Y TECNOLOGÍA DE COMPUTADORES UNIVERSIDAD DE CORDOBA ESTRCUTRA DE COMPUTADORAS UNIDAD VI Estructura de la Caché: 11 ÁREA DE ARQUTIECTURA Y TECNOLOGÍA DE COMPUTADORES UNIVERSIDAD DE CORDOBA ESTRCUTRA DE COMPUTADORAS UNIDAD VI En el camino de datos segmentado, las memorias de Instrucciones y Datos son memorias Caché 12 ÁREA DE ARQUTIECTURA Y TECNOLOGÍA DE COMPUTADORES UNIVERSIDAD DE CORDOBA ESTRCUTRA DE COMPUTADORAS UNIDAD VI Tamaño de la Caché: Dirección de M.P. = 32 bits Tamaño Caché = 2n palabras Campo de etiquetas = 32-(n+2) Cada posición de la Caché = 32-(n+2)+32+1 = 63-n n Tamaño total de la Caché = 2 (63-n) bits Tratamiento de los fallos de la Caché Suponemos una máquina multiciclo o segmentada. Pasos que debe realizar la U. Control ante un fallo (p.e. lect. Instr.) 1. Calcular el valor PC-4 2. Indicar lectura a la M.P. y dar tiempo a que responda 3. Escribir en la Caché (todo lo necesario) 4. Reiniciar la ejecución Mecanismo de detención (stall) similar al de la segmentación Para el fallo de datos el mecanismo es similar 13 ÁREA DE ARQUTIECTURA Y TECNOLOGÍA DE COMPUTADORES UNIVERSIDAD DE CORDOBA ESTRCUTRA DE COMPUTADORAS UNIDAD VI Ejemplo de Caché: DECStation 3100 Procesador MIPS R2000 Segmentación similar a la vista Cada ciclo de reloj solicita (velocidad máxima): Una palabra de instrucción y una de datos Posee dos Cachés: Instrucciones y datos 16 Kbloques (Bloque = 1 palabra) 14 ÁREA DE ARQUTIECTURA Y TECNOLOGÍA DE COMPUTADORES UNIVERSIDAD DE CORDOBA ESTRCUTRA DE COMPUTADORAS UNIDAD VI Pasos para una petición de lectura 1. Enviar dirección a la caché adecuada Del PC (Instrucciones) De la salida de la ALU (Datos) 2. Si hay acierto toma I ó D Si hay fallo envía dirección a MP y lo escribimos en la Caché Pasos y problemas de escritura en Caché (Datos) Inconsistencia de datos o coherencia de la caché Formas de mantener la coherencia: Escritura directa (write-through) Postescritura (write-back) DECStation utiliza escritura directa 1. Indexa la Caché utilizando los bits 15-2 2. Escribir en la palabra de la Caché Parte de la etiqueta (bits 31-16) El dato Escribir el dato en MP 15 ÁREA DE ARQUTIECTURA Y TECNOLOGÍA DE COMPUTADORES UNIVERSIDAD DE CORDOBA ESTRCUTRA DE COMPUTADORAS UNIDAD VI Lentitud de esta política Ejemplo: compilador gcc 11% almacenamiento Sin fallo de Caché CPI = 1’2 Si suponemos 10 ciclos por escritura CPI = 1’2 + 10*0’11 = 2’3 Disminuye el rendimiento en un factor de casi 2 Buffer de escritura El dato a almacenar en MP se pone ahí El procesador continúa Profundidad del buffer (110) Tasa de fallos y aciertos para la DECStation 3100 La tasa de fallos no es todo 16 ÁREA DE ARQUTIECTURA Y TECNOLOGÍA DE COMPUTADORES UNIVERSIDAD DE CORDOBA ESTRCUTRA DE COMPUTADORAS UNIDAD VI Comparación con diferentes tipos de Caché para la DECStation 3100 Programa gcc Caché combinada (D+I) 4’8%. Caché dividida (I y D) 5’4%. Sin embargo, la caché dividida aumenta el ancho de banda Aprovechar la localidad espacial Necesidad de bloques que tengan varias palabras Aprovecha mejor la localidad espacial Ejemplo de una Caché de 64K posiciones Cada bloque tiene 4 palabras (16 bytes) Control del multiplexor con los bits 3 y 2 de la Dirección Mejora de eficiencia de aprovechamiento de memoria 1 etiqueta por cada 4 datos 17 ÁREA DE ARQUTIECTURA Y TECNOLOGÍA DE COMPUTADORES UNIVERSIDAD DE CORDOBA ESTRCUTRA DE COMPUTADORAS UNIDAD VI Ejemplo: Caché de 64 bloques y 16 bits por bloque. Qué número de bloque le corresponde a la dirección del byte 1200? 000001 001011 0000 Nº Bloque = 11 = (Dir. Palabra)/(Palabra por bloques) módulo (Bloq. De la Caché) Los fallos de lectura por bloque multi-palabra Igual que si hubiera una sola palabra Siempre se transfieren bloques completos Problemas con la escritura No es posible ahora escribir identificador y dato Se escribiría en una palabra de la caché Se comparan las etiquetas Si coinciden se escribe el dato y ya está Si no coinciden: Traslado de bloque de la M. P. a la Caché Escribimos la palabra 18 ÁREA DE ARQUTIECTURA Y TECNOLOGÍA DE COMPUTADORES UNIVERSIDAD DE CORDOBA ESTRCUTRA DE COMPUTADORAS UNIDAD VI Cómo afecta el tamaño del bloque al rendimiento Tasa de fallos en los programas gcc y spice Fuerte aumento: Cuando el tamaño de bloque es grande respecto al tamaño de la Caché El aumento del tamaño de bloque implica: Aumento del coste del fallo 19 ÁREA DE ARQUTIECTURA Y TECNOLOGÍA DE COMPUTADORES UNIVERSIDAD DE CORDOBA ESTRCUTRA DE COMPUTADORAS UNIDAD VI Deberá buscarse alguna técnica adicional para evitar la penalización por tamaño de bloque Rearranque anticipado (early restart) No esperar al bloque completo Primera palabra requerida Empieza transfiriendo la palabra requerida del bloque Diseño del sistema de memoria para soportar Caché. “Reducción de la penalización de fallos incrementando el ancho de banda de la memoria a la Caché” Supongamos el conjunto de tiempos hipotéticos: 1 ciclo de reloj para enviar dirección 10 ciclos de reloj para cada acceso iniciado a la DRAM (MP) 1 ciclo de reloj para enviar una palabra de datos Para un bloque de 4 palabras y ancho de la DRAM de 1 palabra: TPENALIZACIÓN POR FALLO = 1 + 410 + 41 = 45 ciclos Nº byte / Ciclos de penal. = 44 / 45 = 0’35 bit / ciclo 20 ÁREA DE ARQUTIECTURA Y TECNOLOGÍA DE COMPUTADORES UNIVERSIDAD DE CORDOBA ESTRCUTRA DE COMPUTADORAS UNIDAD VI Una memoria principal DRAM con distintos anchos de banda: 21 ÁREA DE ARQUTIECTURA Y TECNOLOGÍA DE COMPUTADORES UNIVERSIDAD DE CORDOBA ESTRCUTRA DE COMPUTADORAS UNIDAD VI Memoria entrelazada No aumenta ancho de buses de M.P. y M.C. Diferencia entre incremento físico y lógico Para una anchura de 2 palabras: TPENALIZACIÓN POR FALLO = 1 + 210 + 21 = 23 ciclos Ancho de Banda = 0’67 bit / ciclo Para una anchura de 4 palabras: TPENALIZACIÓN POR FALLO = 1 + 110 + 11 = 12 ciclos Ancho de Banda = 1’33 bit / ciclo Para una M. entrelazada con 4 bancos: TPENALIZACIÓN POR FALLO = 1 + 110 + 41 = 15 ciclos Ancho de Banda 1 bit / ciclo 22 ÁREA DE ARQUTIECTURA Y TECNOLOGÍA DE COMPUTADORES UNIVERSIDAD DE CORDOBA ESTRCUTRA DE COMPUTADORAS UNIDAD VI Desventaja de la Memoria entrelazada Se necesita usar más chips de memoria Ejemplo: una Memoria principal de 16 Mbytes Disponemos de chips de 1 Mb 1 bit Podemos hacer 4 bancos de 32 bits (128 bits) 32 chips de memoria por banco Usamos chips de 4 1 Mbit Sólo podemos tener un banco de 32 bits Mejorar velocidad de transferencia desde memoria a Caché Acceso a la DRAM modo página Otra mejora interna de las DRAM Evolución de tamaño, costos y velocidad de las DRAM 23 ÁREA DE ARQUTIECTURA Y TECNOLOGÍA DE COMPUTADORES UNIVERSIDAD DE CORDOBA ESTRCUTRA DE COMPUTADORAS UNIDAD VI Rendimiento de la Caché Hay que tener en cuenta los ciclos de espera del sistema de memoria Tiempo CPU = [Ciclos de ejecución CPU + Ciclos de espera] T(periodo) Ciclos de espera a fallos de Caché - C. detención lectura (Cdl) +C. detención escritura (Cde) Cdl N º Lecturas Tasa fallos lectura Penalizaci on fallos por lectura . Pr o gra ma Cde N º Escrituras Tasa fallos escritura Penalizaci on fallos por escritura Pr o gra ma Detencíon por buffer de escritura Si escritura y lectura fuesen idénticas: Cde Accesos a memoria Tasa fallos Penalizaci on fallos Pr o gra ma ó Instruccio nes Pr o gra ma 24 Fallos Penalizaci on fallos Instrucció n ÁREA DE ARQUTIECTURA Y TECNOLOGÍA DE COMPUTADORES UNIVERSIDAD DE CORDOBA ESTRCUTRA DE COMPUTADORAS UNIDAD VI Ejemplo 1: Programa gcc (compilador) Tasa fallos instrucción = 5% Tasa fallos datos = 10% Máquina I CPI = 4 ciclos Penalización por fallo = 12 ciclos. Ciclos de fallos de instrucciones = IC0’0512 = 0’6IC Frecuencia de carga y almacenamiento = 33%. Ciclos de fallos de datos = IC0’330’112 = 0’4IC Nº total de ciclos de detención = 0’6IC + 0’4IC = 1’0IC Luego CPI = 4+1 = 5 ciclos Máquina II Caché perfecto Como IC y T son los mismos para las dos máquinas: t CPU t CPU CON DETENCION CACHE PERFECTA IC CPI I Ciclo Reloj IC CPI II Ciclo Reloj 5 1'25 4 Si mantenemos la velocidad de la máquina y CPI = 2 rendimiento con caché perfecta = (2+1) / 2 = 1’5 veces más 25 ÁREA DE ARQUTIECTURA Y TECNOLOGÍA DE COMPUTADORES UNIVERSIDAD DE CORDOBA ESTRCUTRA DE COMPUTADORAS UNIDAD VI Ejemplo 2: Suponer doble frecuencia de reloj de la CPU pero sin variar el acceso a memoria en los fallos Frecuencia doble Penalización por fallos = 24 ciclos Ciclos totales por fallos = (0’0524) + 0’33(0’124) = 2’0 La máquina con fallos a frecuencia doble CPI = 4+2 = 6 La máquina anterior CPI = 4+1 = 5 t. CPU lenta t. CPU rápida IC CPI IC CPI lento Rápido Ciclo lento Ciclo Rápido 5 1 6 1 2 5 3 La máquina de reloj rápido es 1’67 veces más rápida que la otra con la misma tasa de fallos caché Influencia sobre penalizaciones de la rapidez de la máquina 1. Si CPI disminuye, más influye el impacto de los ciclos de espera 2. Un aumento de la frecuencia de reloj conduce a una penalización de fallos mayor (supone no variación del t. de acceso a la memoria) Problema del tiempo de acierto (no se ha tenido en cuenta) Es mayor cuanto mayor es la caché Hará necesario un ciclo de reloj más lento 26 ÁREA DE ARQUTIECTURA Y TECNOLOGÍA DE COMPUTADORES UNIVERSIDAD DE CORDOBA ESTRCUTRA DE COMPUTADORAS UNIDAD VI 3. Memoria Virtual Se trata de cubrir los objetivos: 1. Poder ejecutar programas cuyo tamaño exceda de M.P 2. Poder ejecutar una colección de programas a la vez en un Computador 2.1. Hacer una compartición eficiente de la M.P 2.2. En la M.P. sólo están las partes activas en ese momento Es como si la M.P. actuase de Caché respecto a la M. Secundaria Memoria virtual: Tanta como memoria secundaria Se divide en partes de igual tamaño Página Fallo de página Dirección virtual: referencia a la memoria virtual Memoria física: 27 ÁREA DE ARQUTIECTURA Y TECNOLOGÍA DE COMPUTADORES UNIVERSIDAD DE CORDOBA ESTRCUTRA DE COMPUTADORAS UNIDAD VI La M.P. de la computadora Se divide en trozos del mismo tamaño que la página bloque Dirección física Correspondencia de memoria (memory mapping) Traducción de una dirección virtual a una física 28 ÁREA DE ARQUTIECTURA Y TECNOLOGÍA DE COMPUTADORES UNIVERSIDAD DE CORDOBA ESTRCUTRA DE COMPUTADORAS UNIDAD VI Nos permite cargar cualquier programa en cualquier posición física Siempre se trabaja con tamaño de página = bloque Dirección virtual Nº de página | Posición de desplazamiento en la página 29 ÁREA DE ARQUTIECTURA Y TECNOLOGÍA DE COMPUTADORES UNIVERSIDAD DE CORDOBA ESTRCUTRA DE COMPUTADORAS UNIDAD VI Mecanismo de ejecución del programa La CPU lanza una dirección virtual Se hace la traducción a dirección física Si está se toma el dato Si no está Fallo de página (alto coste) Mecanismo de sustitución (FIFO, LRU, etc..) Realización por software No se realiza nunca escritura directa Tamaño de página: 4 a 16 Kbytes Muy grande: Poca tasa de fallos Mucho tiempo de reemplazo Pequeña (lo contrario) 30 ÁREA DE ARQUTIECTURA Y TECNOLOGÍA DE COMPUTADORES UNIVERSIDAD DE CORDOBA ESTRCUTRA DE COMPUTADORAS UNIDAD VI Colocar una página y poder localizarla Correspondencia totalmente asociativa (fully associative) Cualquier página puede estar en cualquier bloque Necesidad de una tabla de páginas (page table) en memoria Cada programa tiene su tabla de páginas Tantas posiciones como páginas Indexada por Nº de página Cada posición contiene el Nº de bloque (si está en M.P.) Necesidad de un bit de presencia Existencia de un registro de apunte al comienzo de la tabla de páginas. Registro de tabla de páginas. Es el que se guarda en el cambio de proceso activo a inactivo. 31 ÁREA DE ARQUTIECTURA Y TECNOLOGÍA DE COMPUTADORES UNIVERSIDAD DE CORDOBA ESTRCUTRA DE COMPUTADORAS UNIDAD VI 32 ÁREA DE ARQUTIECTURA Y TECNOLOGÍA DE COMPUTADORES UNIVERSIDAD DE CORDOBA ESTRCUTRA DE COMPUTADORAS UNIDAD VI Fallos de página Se produce cuando el bit de presencia está en off (0) Quiere decir que la página no está en M.P. Acudir al nivel superior de memoria (disco) Transferirla a M.P. Políticas de sustitución (LIFO, LRU, etc.) Cómo se sabe dónde está la página que buscamos. La dirección virtual por sí sola no es suficiente. Necesidad de una estructura de datos adicional. Tabla de páginas que incluya la posición de todos. Presentes: dirección física. No presentes: posición en el disco. 33 ÁREA DE ARQUTIECTURA Y TECNOLOGÍA DE COMPUTADORES UNIVERSIDAD DE CORDOBA ESTRCUTRA DE COMPUTADORAS UNIDAD VI ¿Qué ocurre con las escrituras? Gran coste de acceso a la memoria secundaria. No es útil usar un buffer de escritura como la caché. Postescritura (write back). Cuándo se reemplaza la página. Existencia de un bit de cambio No devolver si no se ha cambiado Hacer rápida la traducción de direcciones (el TLB) TLB = Translation Lookaside Buffer Las tablas de página están en M.P. (son grandes) Su acceso es costoso Pérdida de la eficiencia de la caché Aplicación del mismo criterio de localidad de la caché Una caché especial (TLB) Con las traducciones últimamente usadas TLB: Una caché que contiene solamente correspondencias de tablas de páginas Etiqueta: Nº de página virtual Dato: Nº de página física Bit adicionales de: Presencia; Referencia; Modificación 34 ÁREA DE ARQUTIECTURA Y TECNOLOGÍA DE COMPUTADORES UNIVERSIDAD DE CORDOBA ESTRCUTRA DE COMPUTADORAS UNIDAD VI 35 ÁREA DE ARQUTIECTURA Y TECNOLOGÍA DE COMPUTADORES UNIVERSIDAD DE CORDOBA ESTRCUTRA DE COMPUTADORAS UNIDAD VI Aplicación del TLB en las referencias a memoria 1. Se busca el Nº de página virtual en el TLB a) Si está acierto se forma la dirección física * Se activa el bit de referencia * Se activa el bit de modificación si es escritura b) Si no está ver tipo de fallo posible * Fallo de TLB (miss) - Se carga desde la tabla de páginas - Se intenta de nuevo la traducción * Fallo de página (fault) - Una excepción - El S.O. producirá el cambio de página 2. Cuando se ha recuperado la traducción del fallo: a) Seleccionar una entrada de la TLB a sustituir (Aleatorio, FIFO, LRU, ...) b) Transferir sólo los bits (modif y uso) a la tabla de páginas. * Política de postescritura 36 ÁREA DE ARQUTIECTURA Y TECNOLOGÍA DE COMPUTADORES UNIVERSIDAD DE CORDOBA ESTRCUTRA DE COMPUTADORAS UNIDAD VI Valores típicos de una TLB 37 ÁREA DE ARQUTIECTURA Y TECNOLOGÍA DE COMPUTADORES UNIVERSIDAD DE CORDOBA ESTRCUTRA DE COMPUTADORAS UNIDAD VI TLB de una DECStation 3100 (procesador R2000) El TLB está incluido en el chip procesador 20 Tamaño de página = 4 Kbytes = 2 páginas virtuales Nº bits. Dirección física = Nº bits Dirección virtual (32) TLB con 64 entradas Totalmente asociativa Cada entrada: Etiqueta 20 bits Bloque físico 20 bits Bits de validez, modificación Otros bits de organización Cuando hay fallo: El hardware genera el Nº de página de referencia El hardware suele guardar un índice que indica la entrada a sustituir 38 ÁREA DE ARQUTIECTURA Y TECNOLOGÍA DE COMPUTADORES UNIVERSIDAD DE CORDOBA ESTRCUTRA DE COMPUTADORAS UNIDAD VI TLB y Caché de un R2000 39 ÁREA DE ARQUTIECTURA Y TECNOLOGÍA DE COMPUTADORES UNIVERSIDAD DE CORDOBA ESTRCUTRA DE COMPUTADORAS UNIDAD VI Procesamiento de fallos 40 ÁREA DE ARQUTIECTURA Y TECNOLOGÍA DE COMPUTADORES UNIVERSIDAD DE CORDOBA ESTRCUTRA DE COMPUTADORAS UNIDAD VI Implementación de la protección con memoria virtual Importancia en los sistemas multiusuario: Impedir leer y/o escribir en otros procesos Comparten la memoria física El S.O. es el que mantiene la tabla de páginas Mantener una correspondencia disjunta Los procesos de usuario no pueden cambiar la tabla de páginas El S.O. sí puede modificar estas tablas Interface hardware/software El hardware debe proporcionar como mínimo las capacidades de: 1. Soportar dos modos de ejecución: usuario y otros (Supervisor, Sistema, Kernel, ...) 2. Proporcionar al usuario leer (sólo) parte del estado de la CPU 3. Mecanismos de paso de usuario a modo supervisor y viceversa Llamadas al sistema (Syscall, Trap) Transfiere el control al S.O. (Excepción) 41 ÁREA DE ARQUTIECTURA Y TECNOLOGÍA DE COMPUTADORES UNIVERSIDAD DE CORDOBA ESTRCUTRA DE COMPUTADORAS UNIDAD VI El S.O. puede permitir compartir páginas Sólo lectura Lectura y escritura Incluir bits de protección en cada entrada de la tabla de páginas Posibilidad de compartir código Tratamientos de los fallos de página y el TLB Un fallo en TLB puede indicar 2 posibilidades: La página está en M.P. sólo crear la entrada en la TLB La página no está en M.P. control al S.O. No está en M.P. si el bit de validez en la T.P. es 0 42 El fallo de TLB puede ser tratado por hardware o software ÁREA DE ARQUTIECTURA Y TECNOLOGÍA DE COMPUTADORES UNIVERSIDAD DE CORDOBA ESTRCUTRA DE COMPUTADORAS UNIDAD VI Tratamiento del fallo de página Mecanismo de excepción Interrumpe el proceso activo Control al S.O. que determinará la causa de la excepción El fallo se produce en un intento de acceso a memoria Guardar el PC en el EPC Impedir cualquier proceso de escritura (lw ó sw) Al ser excepción de fallo de página Guarda el estado completo del proceso Todos los registros, incluyendo los de F.P. El registro EPC y el CAUSE Calcula la dirección virtual del fallo de página El contenido del EPC (fallo de instrucción) En la instrucción que está contenida en la dirección que hay en el EPC Conocida la dirección virtual: Busca la posición de la página en el disco Si es necesario elige página a sustituir, escribiendo o no si procede 43 ÁREA DE ARQUTIECTURA Y TECNOLOGÍA DE COMPUTADORES UNIVERSIDAD DE CORDOBA ESTRCUTRA DE COMPUTADORAS UNIDAD VI Comienza la transferencia de la página de disco a M.P. Como esto es costoso, el S.O. selecciona otro Proceso Terminada la transferencia pasa a estado de Ready Iniciada la Excepción, emmascara nuevas excepciones No habilita hasta almacenar los datos del Proceso Política de Retorno al Proceso Reiniciable Empezar de nuevo (facil: ej. MIPS) Continuar donde quedó (complejo: máquinas CISC) Las Violaciones de Protección se ven como excepciones del TLB Se indican por bits del Registro CAUSE Solución MIPS para detectar fallos de página Se produce un primer fallo de TLB Transfiere información de la T.P. a la TLB 44 Reintenta leer el TLB ÁREA DE ARQUTIECTURA Y TECNOLOGÍA DE COMPUTADORES UNIVERSIDAD DE CORDOBA ESTRCUTRA DE COMPUTADORAS UNIDAD VI Si hay fallo es fallo de página 4.- UN MARCO COMUN PARA LAS JERARQUIA DE MEMORIA Similitud entre las distintas Jerarquías ¿Dónde ubicar un bloque? Para la Cache Exactamente en una posición (Correspondencia Directa) Posición del bloque = Nº de Bloque mod bloques de la Caché Un número fijo de posiciones (>= 2) donde colocar un bloque (Asociativa por Conjunto) Conjunto que contiene un bloque = Nº bloque mod número de conj. de la Caché 45 ÁREA DE ARQUTIECTURA Y TECNOLOGÍA DE COMPUTADORES UNIVERSIDAD DE CORDOBA ESTRCUTRA DE COMPUTADORAS UNIDAD VI En cualquier Posición (Totalmente Asociativo) 46 Corresp. Directa y Totalmente Asocit., casos particulares ÁREA DE ARQUTIECTURA Y TECNOLOGÍA DE COMPUTADORES UNIVERSIDAD DE CORDOBA ESTRCUTRA DE COMPUTADORAS UNIDAD VI 47 ÁREA DE ARQUTIECTURA Y TECNOLOGÍA DE COMPUTADORES UNIVERSIDAD DE CORDOBA ESTRCUTRA DE COMPUTADORAS UNIDAD VI Influencia sobre la Tasa de Fallos del Grado de Asociatividad DEC STATION 3100 con tamaño de bloque de CUATRO palabras 48 ÁREA DE ARQUTIECTURA Y TECNOLOGÍA DE COMPUTADORES UNIVERSIDAD DE CORDOBA ESTRCUTRA DE COMPUTADORAS UNIDAD VI Influencia del tamaño de Caché y Asociatividad sobre Tasa de Tallos VAX (SO Ultrix), multiprogramado, bloques 32 Kb, Alg. LRU 49 ÁREA DE ARQUTIECTURA Y TECNOLOGÍA DE COMPUTADORES UNIVERSIDAD DE CORDOBA ESTRCUTRA DE COMPUTADORAS UNIDAD VI ¿Cómo se encuentra un bloque? Sistema M. Virtual páginas Indexación de Caché Asociativa por Conjuntos Descomposición de la dirección virtual Etiqueta Indice Desplazamiento en el bloque Indice: selecciona el conjunto Etiqueta: compara todas para ver si está 50 ÁREA DE ARQUTIECTURA Y TECNOLOGÍA DE COMPUTADORES UNIVERSIDAD DE CORDOBA ESTRCUTRA DE COMPUTADORAS UNIDAD VI Elección del tipo de Organización M. Virtual: Totalmente Asociativa M. Caché y TLB: Asociativa por conjuntos Política de escritura Ventaja en tiempo de la directa ¿Que bloques se deben de reemplazar en un fallo de Caché? 51 Para Correspondencia directa: Un solo candidato Para Totalmente Asociativa: Todos son candidatos Aleatoria (facilidad Hardware) LRU (costosa) Aproximación LRU ÁREA DE ARQUTIECTURA Y TECNOLOGÍA DE COMPUTADORES UNIVERSIDAD DE CORDOBA ESTRCUTRA DE COMPUTADORAS UNIDAD VI ¿Qué ocurre en la escritura? 52 Escritura Directa (Write Trhough) Fallos de lectura baratos Implementación facil (buffer de escritura) Post-escritura (Write Back) Escritura a velocidad de la Caché Múltiples escritura se reduce a una Uso del ancho de band del nivel mas bajo Para Memoria Virtual Política de Post-escritura (gran latencia) Tendencias de Caches a Post-escritura Aumento del gap CPU-Memoria ÁREA DE ARQUTIECTURA Y TECNOLOGÍA DE COMPUTADORES UNIVERSIDAD DE CORDOBA ESTRCUTRA DE COMPUTADORAS UNIDAD VI Modelo Intuitivo del comportamiento de jerarquías de Memoria Tipos de fallos de una Caché 53 Fallos Compulsorios (o forzosos) Primer acceso al bloque Fallos de Capacidad No puede contener todos los bloques necesarios Ejemplo en asociativa total Fallos por conflicto (o Colisión) No puede contener todos los bloques necesarios Ejemplo en Asociativa por Conjuntos ÁREA DE ARQUTIECTURA Y TECNOLOGÍA DE COMPUTADORES UNIVERSIDAD DE CORDOBA ESTRCUTRA DE COMPUTADORAS UNIDAD VI Forma de evitar fallos Fallo de Conflicto: Totalmente Asociativa Costosa y Lenta Fallo de Capacidad: Caché muy grande Penalización en tiempo de acceso Fallo forzoso: Incremento de tamaño del bloque Incremento de penalización en los fallos Falacias y Pifias Olvidar contabilizar el direccionamiento en Bytes o el tamaño del bloque en la simulación de la Caché Ejemplo1: Caché de 32 bytes; tamaño de bloque 4 bytes - La caché tendrá 32/4 = 8 bloques a) Para la dirección 36 bytes, ¿En qué bloque de la Caché está? Nº de bloque = |36 / 4| = 9 Nº bloque de la caché = 9 mod 8 = 1 b) Para la dirección de la palabra 36, ¿En qué bloque de la Caché está? Nº de bloque = 36 54 ÁREA DE ARQUTIECTURA Y TECNOLOGÍA DE COMPUTADORES UNIVERSIDAD DE CORDOBA ESTRCUTRA DE COMPUTADORAS UNIDAD VI Nº bloque de la caché = 36 mod 8 = 4 Ejemplo 2: Caché de 256 bytes; Tamaño de bloque de 32 bytes - La caché tendrá 256/32 = 8 bloques c) Para la dirección 280 bytes, ¿En qué bloque de la Caché está? Nº de bloque = |280/ 32| = 9 Nº bloque de la caché = 9 mod 8 = 1 PIFIA Seleccionar un Espacio de direcciones pequeño Error de los PDP-11 (espacio fijo de 16 bits) Éxito de los IBM 360 (expansión de 24 a 32 bits) PIFIA Uso de la Tasa de Fallos como único parámetro de evaluación Ejemplo : Máquina I: Caché de 32kbytes; T. Fallos 5%; T = 17 s. Máquina II: Caché de 64kbytes; T. Fallos 4%; T = 20ns Ambas: Correspondencia Directa; CPI (sin detección) igual; Tiempo penalización de fallo 200ns 55 ÁREA DE ARQUTIECTURA Y TECNOLOGÍA DE COMPUTADORES UNIVERSIDAD DE CORDOBA ESTRCUTRA DE COMPUTADORAS UNIDAD VI referencias por Instrucción 1.5 TiempoCPU = (Ciclosejecución + Ciclosretención) * T Ciclosretención = NI * Fallos/Inst. * Penaliz (ciclos). Fallos/Inst. = Tasa fallos + (T. Fallos datos * refer datos /Inst.) C.ret (I) = NI (0.05 + [0.05 * 0.5] * 200/17) = 0.9 NI TiempoCPU (I) = [(CPI * NI) + ( 0.9 * NI)] * 17 = (17 CPI + 15) NI C.ret (II) = NI (0.04 + [0.04 * 0.5] * 200/20) = 0.6 NI TiempoCPU (I) = [(CPI * NI) + ( 0.6 * NI)] * 20 = (20 CPI + 12) NI La Máquina II tiene peores prestaciones PIFIA Escoger una Cache Asociativa por Conjuntos y no de C. Directa por tener menor Tasa de Fallos El impacto sobre T al tener una A. por Conjuntos puede ser peor que las mejoras de tasa PIFIA 56 ÁREA DE ARQUTIECTURA Y TECNOLOGÍA DE COMPUTADORES UNIVERSIDAD DE CORDOBA ESTRCUTRA DE COMPUTADORAS UNIDAD VI Extender un Espacio de Direcciones añadiendo segmentos en la parte superior de un espacio plan Problemas de las máquinas con Segmentación OBSERVACIONES FINALES Mantenimiento velocidad de CPU y Memoria Principal 57 ÁREA DE ARQUTIECTURA Y TECNOLOGÍA DE COMPUTADORES UNIVERSIDAD DE CORDOBA ESTRCUTRA DE COMPUTADORAS UNIDAD VI TENDENCIAS ULTIMAS Dificultad de poder elegir el punto adecuado de diseño Mejoras en un lado pierde en otros 58 ÁREA DE ARQUTIECTURA Y TECNOLOGÍA DE COMPUTADORES UNIVERSIDAD DE CORDOBA ESTRCUTRA DE COMPUTADORAS UNIDAD VI Caches Multiniveles Cada nivel usa un criterio diferente Primer nivel funciona a ciclo de reloj (afecta a T) Segundo nivel tasa de aciertos grandes (gran tamaño) Afecta a la penalización de fallos Reducción de diferencia CPU – DRAM SDRAM Aumento de ancho de buses Soluciones Software Reordenación de Código para aumento de localidad Prebúsqueda dirigida por el Compilador Traer bloques a la Caché antes de referenciarlos Necesidad de Instrucciones especiales 59 ÁREA DE ARQUTIECTURA Y TECNOLOGÍA DE COMPUTADORES