Tema 13. Memoria cache

Documentos relacionados
Memoria Cache. Departamento de Arquitectura de Computadores

Organización lógica Identificación de bloque

CPU MEMORIAS CACHE. Memorias caché. Memoria caché = memoria de tamaño pequeño y acceso rápido situada entre la CPU y la memoria principal.

Area Académica: Sistemas Computacionales. Tema: Elementos de diseño de memoria caché

Memoria. Organización de memorias estáticas.

Tema 6 (II) Jerarquía de Memoria

Organización del Computador 1 Memoria Cache

Caché. Matías Barbeito Organización del computador 1 2 cuatrimestre 2011

Memoria Virtual. Memoria Virtual

Ejercicios Jerarquía de Memoria

Resolución de los Ejercicios de la Hoja 4

Ejercicios de Arquitectura de Computadoras

Memoria Cache. Clase Práctica Organización del computador I 2º Cuatrimestre de octubre. María Elena Buemi

Arquitectura de Computadores II Clase #7

Ejercicios del tema 5. Jerarquía de de Memoria

Subsistemas de memoria. Departamento de Arquitectura de Computadores

ADMINISTRACION DE LA MEMORIA. En memoria 1 solo proceso Desventajas:

Registros. Cache L1. Cache L2. Memoria Principal (RAM) Memoria Secundaria (Disco) Memoria Terciaria (Cinta)

Jerarquía de memoria - Motivación

TEMA II: ALMACENAMIENTO DE LA INFORMACIÓN

Tema 5: Memorias. Espacio reservado para notas del alumno

Simulación de sistemas de memoria con Xcache32

Arquitectura de Computadores

Arquitectura de Computadoras para Ingeniería

Organización del Sistema de Memoria. 1. Tipos de memoria 2. Jerarquía de memoria 3. El principio de localidad 4. Organización de la memoria

Introducción Composición Caracteristicas Jerarquía Tipos Memoria Diseño. Cache. Memorias

Ejercicios de jerarquía de memoria

MEMORIA EJERCICIO 1 EJERCICIO 2

Fundamentos de Hardware: Arquitectura de un ordenador

Soluciones a los problemas impares. Tema 5. Memorias. Estructura de Computadores. I. T. Informática de Gestión / Sistemas

Ingeniería de Computadores I Primera Actividad Calificable

Respuestas al Problemario Memoria Cache

PROBLEMAS TEMA 2: Unidad de memoria Problemas propuestos en examen ORGANIZACIÓN DE MEMORIA

Administración de la memoria

Arquitectura de Computadores II Clase #6

ARQUITECTURA DE COMPUTADORES. 2º INGENIERÍA INFORMÁTICA. Problemas de Gestión de Memoria.

T E M A 2. Sistema de Memoria

Tema 20 Gestión de memoria

Tema 4. Subsistema de Memoria

Objetivos. Objetivos. Arquitectura de Computadores. R.Mitnik

EJERCICIOS DEL TEMA 4

Definición de Memoria

Tutoría 2. Banco de memoria de 8 y 16 bits (8086)

Organización del Computador 1 Memorias

Tema 7. Memoria virtual

Electrónica Digital II

Organización del Computador I Verano. Memoria Virtual Basado en el capítulo 5 del libro de Patterson y Hennessy

Administración de Memoria.

6. PROCESADORES SUPERESCALARES Y VLIW

1) Se dispone de un computador de 32 bits con la siguiente estructura:

Memorias RAM. Basilio B. Fraguela Rodríguez. Copyright Basilio B. Fraguela 2006

Sistema electrónico digital (binario) que procesa datos siguiendo unas instrucciones almacenadas en su memoria

Organización de Computadoras. Turno Recursantes Clase 8

Procesador Concepto Tipos Velocidad de proceso Características funciones aritmético- lógicas y de control

La memoria del ordenador

Qué es un programa informático?

Sea una memoria caché en la que cada 2 20 accesos se producen 2 17 fallos. Calcule la tasa de fallos.

Unidad 2: Gestión de Memoria

Tema 2 Unidades de Memoria y Entrada/Salida

Estructura de los dispositivos de E/S.

ESTRUCTURA DE COMPUTADORES PROBLEMAS DEL TEMA 1

TEMA 1. Arquitecturas multiprocesador: MIMD de memoria compartida (multiprocesadores) V 2.0

Estructuras de Almacenamiento RAID RAID. Nivel FísicoF. Índice. Requisitos Almacenamiento. Nivel Lógico Modelo Entidad-Relación y Modelo Relacional

16bits: Tamaño total: 2 16 Tamaño página: 2 13 nº de páginas: 2 16 / 2 13 = 2 3 = 8 páginas Tamaño de tabla: 2 3 *2B = 16B por tabla

Arquitectura de Computadores. Apellidos, Nombre:

Memoria. M. en C. Erika Vilches. Parte 6

Procesos y Memoria. Administración de Memoria 26/10/2010 SISTEMAS OPERATIVOS

Mapeo en el P 8086 de Intel

En base a los conceptos dados del material teórico, disponible en: resuelva las siguientes cuestiones.

LECCIÓN 1. DISEÑO DE SISTEMAS DE MEMORIA

SISTEMAS DE ARCHIVOS DISTRIBUIDOS

}Transparencias de clase en

Organización de Computadoras. Clase 10

Tema 6 Organización y gestión de la memoria

6. Entrada y Salida Explicación de la interfaz entre el computador y el mundo exterior.

Tema 5.- Memorias. ---***---

Arquitectura de computadoras. Unidad 3. Arquitectura de computadoras / (Rodriguez Ricardo) Diapositiva 1

Sistemas Operativos Administración de la Memoria

MEMORIA. Programación II

Examinaremos las características claves de las memorias y luego analizaremos el subsistema de memoria principal.

Hardware y Estructuras de Control. Memoria Virtual. Ejecución de un Programa. Ejecución de un Programa

El subsistema de Memoria

Clase Práctica Memoria Caché

18 y 19 Sistemas de Archivos Distribuidos y Tarea 05

Universidad Central de Venezuela. Facultad de Ciencias. Escuela de Computación. Proyecto #1 (Simulación de caché)

202 PROBLEMAS DE ARQUITECTURA DE COMPUTADORES

Memoria Compartida Distribuida (DSM) Sistema de Archivos

Sistemas operativos. Tema 10: Sistemas de ficheros

Taller de Sistemas Operativos. Direccionamiento de Memoria 2012

GRUPO ANALISIS Y DESARROLLO DE SISTEMAS DE INFORMACION SENA EXPOSICION MEMORIA RAM INTEGRANTES STEVEN PALOMA ALEJANDRO BERNAL TATIANA RODRÍGUEZ

PREPARACION DE UN DISCO

Jerarquía de Memoria. Sistema de Memoria. El Cache. Efectividad del Cache. Patrón de Accesos a Memoria Generado por Programas

Tema: Microprocesadores

TEMA 8: GESTIÓN DE MEMORIA.

Diseño de compiladores. Organización de memoria. Organización de memoria. Organización de memoria. Zona de código 04/05/2014 ORGANIZACIÓN DE MEMORIA

Ensamblador. Introducción. Dpto. Física y Arquitectura de Computadores. Universidad Miguel Hernandez

Discusión. Modelo de una compuerta. Arquitecturas de Computadores Prof. Mauricio Solar. Temario. ...Introducción

Tema V Generación de Código

Tema 1 Estructuras de interconexión de un computador.

Tema 5. Memorias. Estructura de Computadores. Índice. Curso

Transcripción:

1 Estructura y Tecnología de Computadores F. El subsistema de memoria Tema 13. Memoria cache José Manuel Mendías Cuadros Dpto.. Arquitectura de Computadores y Automática Universidad Complutense de Madrid 2 1. Introducción contenidos Definición. Estructura de un sistema de memoria cache/principal. Ciclo de acceso a un sistema de memoria cache/principal. Aspectos básicos de diseño. 2. olíticas de emplazamiento Emplazamiento directo. Emplazamiento asociativo. Emplazamiento asociativo por conjuntos. 3. olíticas de reemplazamiento. Espacio de reemplazamiento. Algoritmos: aleatorio, FIFO, LRU y LFU. 4. olíticas de actualización Escritura inmediata. ost-escritura 5. olíticas de búsqueda úsqueda por demanda. úsqueda anticipativa. 6. Organización de la cache Tamaño de la memoria cache. Tamaño de bloque. Niveles de cache. Caches separadas 7. Ejemplo Memoria cache en un entium. 8. Memoria entrelazada Fundamentos. Memoria entrelazada de orden bajo. Memoria entrelazada de orden alto.

3 1 introducción Memoria pequeña y rápida situada entre el procesador y la memoria principal Almacena una copia de la porción de información actualmente en uso de la memoria Objetivo: disminuir el tiempo de acceso a memoria Estructura del sistema memoria cache/principal: Mp (memoria principal): formada por 2 n palabras direccionables dividida en n bloques de tamaño fijo de 2 K palabras por bloque Mc (memoria cache): formada por nm marcos de bloque de 2 K palabras cada uno (nm<<n) Directorio (en memoria cache): indica qué subconjunto de los n bloques residen en los nm marcos de bloque marco de bloque bloque CU transferencias de palabras memoria cache transferencias de bloques memoria principal Notación: n: número de bloques nm: número de marcos de bloque : dirección del bloque M: dirección del marco de bloque : palabra dentro del bloque 4 1. introducción INICIO tiempo de acierto tiempo de identificación tiempo de lectura Dirección de memoria uscar en el directorio Está en cache el bloque? SI (acierto) Acceder al marco de bloque Seleccionar palabra NO (fallo) CU Memoria cache Obtener el bloque de Mp Asignar marco de bloque al bloque Almacenar bloque en marco de bloque FIN T = T + ( 1 H) T acceso Maximizar la tasa de aciertos Minimizar el tiempo de acceso Minimizar el tiempo de penalización Reducir el coste hardware tiempo de penalización acierto penalizacion Ciclo de acceso al sistema Mc/Mp

5 Aspectos básicos de diseño 1. introducción olítica de emplazamiento: Necesaria ya que existen menos marcos de bloque en Mc que bloques en Mp Determina en que marco de bloque puede cargarse cada bloque Determina que bloque entre los posibles ocupa en un cierto momento un marco de bloque dado olítica de reemplazamiento: Necesaria ya que cuando se carga un nuevo bloque en Mc debe reemplazarse uno de los existentes Determina que bloque debe ser reemplazado olítica de actualización: Necesaria para mantener la coherencia entre la Mc y la Mp Determina cuándo se actualiza un bloque de la Mp si éste ha sido modificado en la Mc olítica de búsqueda: Determina qué bloques (y en qué momento) deben cargarse en Mc Organización de la cache: Tamaño Tamaño de bloque Niveles de cache Cache unificada o cache dividida 6 Emplazamiento directo Cada bloque tiene asignado un marco fijo M en donde ubicarse. Este marco viene dado por la expresión: M = mod nm Si nm = 2 m entonces M = (m bits menos significativos de ) El directorio almacena para cada marco una etiqueta con los n-k-m bits que completan la dirección del bloque almacenado El acceso al marco y al directorio es directo. ara conocer si un bloque está cargado en Mc, basta comparar las etiquetas entajas: baja complejidad hardware rapidez en la identificación directorio pequeño Desventajas: bata tasa de fallos si varios bloques compiten por el mismo marco n-m-k m M = k acierto

7 Emplazamiento directo: ejemplo Memoria principal: 16 Mb direccionable por bytes (dirección de 24 bits) Memoria cache: 64 Kb Tamaño de bloque: 16 bytes Número de bloques en Mp (n) = 1M (dirección de 20 bits) Número de marcos de bloque en Mc (nm) = 4K (dirección de 12 bits) 20 4 M 8 12 4 Direcciones de CU XXXXXXXX000000000000XXXX XXXXXXXX000000000001XXXX XXXXXXXX000000000010XXXX... XXXXXXXX111111111110XXXX XXXXXXXX111111111111XXXX Información que se almacena en la etiqueta de marco de bloque Marco de bloque 000h 001h 002h... FFEh FFFh 8 Emplazamiento asociativo Cada bloque puede ubicarse en cualquier marco M El directorio guarda para cada marco una etiqueta con los n-k bits que identifican al bloque almacenado El acceso al marco y al directorio es asociativo. ara conocer si un bloque está cargado, la Mc compara la etiqueta dada con todas las etiquetas del directorio k entajas: baja tasa de fallos Desventajas: alta complejidad hardware lentitud en la identificación directorio grande n-k = acierto

9. Emplazamiento asociativo: ejemplo Memoria principal: 16 Mb direccionable por bytes (dirección de 24 bits) Memoria cache: 64 Kb Tamaño de bloque: 16 bytes Número de bloques en Mp (n) = 1M (dirección de 20 bits) Número de marcos de bloque en Mc (nm) = 4K (dirección de 12 bits) 20 4 Direcciones de CU Marco de bloque XXXXXXXXXXXXXXXXXXXXXXXX cualquiera 20 4 Información que se almacena en la etiqueta de marco de bloque 10 C n-m-k m Emplazamiento asociativo por conjuntos La Mc está dividida en nc conjuntos de nm/nc marcos cada uno. Cada bloque tiene asignado un conjunto fijo C y puede ubicarse en cualquiera de los marcos que componen dicho conjunto Este conjunto viene dado por la expresión: C = mod nc Si nc = 2 m entonces C = (m bits menos significativos de ) El directorio almacena para cada marco una etiqueta con los n-k-m bits que completan la dirección del bloque almacenado El acceso al conjunto es directo y al marco dentro del conjunto asociativo k = acierto

11 Emplazamiento asociativo por conjuntos (cont.) entajas: Es un enfoque intermedio entre emplazamiento directo y asociativo El valor nm/nc se denomina grado de asociatividad o número de vías de la Mc Grado de asociatividad = 1, equivale a emplazamiento directo Grado de asociatividad = nm, equivale a emplazamiento asociativo El grado de asociatividad afecta al rendimiento de esta política de emplazamiento Al aumentar el grado de asociatividad disminuyen los fallos por competencia por un marco Al aumentar el grado de asociatividad aumenta el tiempo de acceso y el coste hardware Grado óptimo: entre 2 y 16 Grado más común: 2 12 Emplazamiento asociativo por conjuntos: ejemplo Memoria principal: 16 Mb direccionable por bytes (dirección de 24 bits) Memoria cache: 64 Kb Tamaño de bloque: 16 bytes Número de bloques en Mp (n) = 1M (dirección de 20 bits) Número de marcos de bloque en Mc (nm) = 4K (dirección de 12 bits) 4 vías Número de marcos por conjunto = 4 Número de conjuntos en Mc (nc) = 1K (dirección de 10 bits) 20 4 Direcciones de CU Conjunto Marco de bloque C 10 10 4 XXXXXXXXXX0000000000XXXX XXXXXXXXXX0000000001XXXX XXXXXXXXXX0000000010XXXX... XXXXXXXXXX1111111110XXXX XXXXXXXXXX1111111111XXXX 000h 001h 002h... 3FEh 3FFh cualquiera de 4 cualquiera de 4 cualquiera de 4... cualquiera de 4 cualquiera de 4 Información que se almacena en la etiqueta de marco de bloque

13 3. políticas de reemplazamiento Qué sucede cuando se produce un fallo y todos los marcos de bloque están ocupados? Es necesario elegir uno y sobreescribir el nuevo bloque sobre el ya existente Espacio de reemplazamiento: conjunto de posibles bloques que pueden ser reemplazados por el nuevo bloque Directo: el bloque que reside en marco que el nuevo bloque tiene asignado. Al no existir alternativas no se requieren algoritmos de reemplazamiento Asociativo: cualquier bloque que resida en de la cache Asociativo por conjuntos: cualquier bloque que resida en el conjunto que el nuevo bloque tiene asignado Algoritmos (implementados en hardware): Aleatorio: se escoge un bloque del espacio de reemplazamiento al azar FIFO: se sustituye el bloque del espacio de reemplazamiento que lleve más tiempo cargado LRU (last recently used): se sustituye el bloque del espacio de reemplazamiento que lleve más tiempo sin haber sido referenciado LFU (last frequently used): se sustituye el bloque del espacio de reemplazamiento que haya sido menos referenciado 14 3. políticas de reemplazamiento Implementación de algoritmos: Se utilizan registros de edad que se actualizan convenientemente El tamaño de los registros dependerá del tamaño del espacio de reemplazamiento: ejemplo: Mc asociativa por conjuntos de 2 vías: basta con 1 bit por marco Algoritmo LRU: Si hay un acierto al acceder a un bloque: Se lee el valor de su contador de edad Todos los contadores del espacio de reemplazamiento que tengan un valor inferior al valor leído se incrementan Se pone su contador de edad a 0 Si hay un fallo al acceder a un bloque: Si el espacio de reemplazamiento no está completo, se pone el contador del nuevo bloque a 0 y los demás se incrementan Si el espacio de reemplazamiento está completo, se reemplaza el bloque cuyo contador tenga el valor máximo. Observar como el valor de contador nunca supera (tamaño del espacio de remplazamiento) -1

15 4. políticas de actualización Qué sucede cuando la CU escribe una palabra? Si se escribe sobre uno de los bloques cargados en la cache, cuando este bloque sea reemplazado deberá actualizarse el bloque correspondiente de Mp Escritura inmediata (write-through): cada vez que se hace una escritura en la Mc se actualiza inmediatamente la Mp. ariantes en función de lo que sucede en caso de fallo de escritura: Con asignación en escritura: un bloque se carga en Mc como consecuencia de fallos de lectura y escritura Sin asignación en escritura: un bloque se carga en Mc solamente como consecuencia de fallos de lectura, lo fallos de escritura no cargan bloque y se hacen siempre con Mp entajas: bajo coste hardware y consistencia en todo momento Desventajas: aumenta el tráfico entre Mc-Mp ara evitar que el procesador tenga que esperar a que la actualización se realice, se utiliza un buffer intermedio (4 referencias) ost-escritura (copy-back): la Mp se actualiza sólo cuando se reemplaza el bloque En Mc se cargan bloques tanto por fallos de lectura como de escritura Se utiliza un bit de actualización por bloque que indica si debe actualizarse en Mp. Cuando se realiza una escritura se activa Cuando se realiza un reemplazamiento se comprueba si está activado o no. entajas: disminuye el tráfico entre Mc y Mp y disminuye el tiempo de acceso para escritura Desventajas: inconsistencia ara evitar retrasos en los reemplazamientos se utiliza un buffer intermedio (1 bloque) 16 5. políticas de búsqueda úsqueda por demanda: un bloque se trae a Mc cuando se necesita, es decir, como consecuencia de un fallo úsqueda anticipativa: un bloque se trae a Mc antes de que se necesite para reducir la tasa de fallos. Lo más común es elegir el bloque siguiente al referenciado (one block lookahead). ariantes: rebúsqueda siempre: la primera vez que se referencia un bloque se prebusca el siguiente rebúsqueda por fallo: si se produce un fallo al acceder a un bloque se buscan dicho bloque y el siguiente

17 6. organización de la cache Tamaño de la Mc: Es un aspecto muy dependiente de la tecnología Al aumentar el tamaño de la Mc se disminuye la tasa de fallos Al aumentar el tamaño de la Mc aumenta su tiempo de acceso Debe ser lo suficientemente pequeña para que el coste por bit del sistema Mc/Mp sea próximo al de la Mp Tamaños óptimos: entre 1 y 512 Kb Tamaño de bloque: No debe ser ni muy grande ni muy pequeño. Al aumentar el tamaño de bloque se captura mejor la localidad espacial. Si el tamaño de bloque es demasiado grande los datos de un bloque pueden estar demasiado alejados. Al aumentar el tamaño de bloque disminuye el número de marcos de bloque, capturando peor la localidad temporal ya que un bloque es reemplazado al poco tiempo de ser cargado Al aumentar el tamaño de bloque aumenta el tiempo de transferencia de bloque entre Mp y Mc, aumentando el tiempo de penalización Tamaños óptimos: entre 4 y 8 unidades direccionables 18 6. organización de la cache Niveles de cache: Se amplía el paradigma de la jerarquía de memoria aumentando el número de niveles de memoria cache. Lo más habitual es tener 2 niveles de cache ubicados en lugares diferentes Una cache interna (on-chip): para reducir los tiempos de acceso Rápida: no se accede a través del bus equeña: debe caber dentro de la CU Sencilla: poco hardware de gestión (emplazamiento directo) Una cache externa (off-chip): para reducir la tasa de fallos Grande y con cierto grado de asociatividad (1-4) Caches separadas: La CU procesa instrucciones y datos por ello en lugar de tener una cache unificada para ambos tipos de referencias, puede tenerse: Una cache de lectura para instrucciones Una cache de lectura/escritura para datos entajas: ueden diseñarse con parámetros de diseño diferentes Duplica el ancho de banda (dos accesos en paralelo) Desventajas: or separado tienen mayores tasas de fallo que una unificada

19 7. Ejemplo: memoria cache en un pentium 2 niveles de cache 2 caches internas, una de datos y otra de instrucciones 1 cache externa Cache interna: tamaño: 8 Kb tamaño de bloque: 32 bytes política de emplazamiento: asociativa por conjuntos de 2 vías política de reemplazamiento: LRU (1 bit) política de actualización (para la de datos): post-escritura o inmediata (seleccionable) Cache externa: tamaño: 256 o 512 Kb tamaño de bloque: 32, 64 o 128 bytes política de emplazamiento: asociativa por conjuntos de 2 vías política de reemplazamiento: LRU (1 bit) política de actualización: post-escritura Control de cache: En el registro de estado existen 2 bits para controlar la cache interna CD (cache disable): para inhabilitar la cache NW (not write throught): para seleccionar la política de actualización En el repertorio de instrucciones existen 2 instrucciones: IND: limpia la memoria cache WIND: limpia la memoria cache, actualizando previamente la memoria principal 20 8. memoria entrelazada La memoria entrelazada es un método de reducir el tiempo de acceso efectivo a Mp Dividiendo la Mp en módulos independientes haciendo posible un acceso paralelo a los datos. Ejemplo: Mp: 1 ciclo en enviar la dirección, 10 ciclos en el acceso y 1 ciclo en el envío del dato Mc: loques de tamaño 4 palabras de 4 bytes cada uno CU CU Cache Cache a M0 a M1 a M2 a M3 a M0 Memoria M0 M1 M2 M3 US Y MEMORIA DE 1 ALARA ACCESO SECUENCIAL 1+4 (10+1)=45 => 0,35 bytes/ciclo ANCHURA DE US DE 1 ALARA ANCHURA DE MEMORIA DE 4 ALARAS ACCESO SOLAADO A LOS MÓDULOS 1+10+4x1=15 => 1 byte/ciclo

21 8. memoria entrelazada De orden bajo La Mp de 2 n palabras se divide en 2 m módulos de 2 n-m palabras cada uno direcciones consecutivas se ubican en módulos consecutivos De orden alto La Mp de 2 n palabras se divide en 2 m módulos de 2 n-m palabras cada uno cada módulo almacena 2 n-m palabras consecutivas Dirección Dirección Dirección dentro del módulo Dirección dentro del módulo Dec Dec 2 n -1 1 0 0 1 2 n -1