Departamento de Ingeniería de Sistemas Universidad de Antioquia

Slides:



Advertisements
Presentaciones similares
Capítulo I Gestión de E/S 1.- Gestión de E/S 2.- Hardware de E/S 3.- Software de E/S.
Advertisements

Administración Memoria
Organización y arquitectura de sistemas de memoria
III - Gestión de memoria
Multiprocesadores 3.1 Dominios de aplicación
Memoria Cache.
Arquitectura de Computadores I
I S A INSTRUCTION SET ARCHITECTURE
ARQUITECTURA DE COMPUTADORES - VON NEUMANN MODEL
Microprocesadores para comunicaciones Escuela Técnica Superior de Ingenieros de Telecomunicación Organización y estructura de las memorias caché.
Prof. José Díaz Chow (Xdc.)
Introducción a los Sistemas Operativos Memoria Virtual
Optimización de aplicaciones
Departamento de Ingeniería de Sistemas Universidad de Antioquia
Departamento de Ingeniería de Sistemas Universidad de Antioquia
Departamento de Ingeniería de Sistemas Universidad de Antioquia
Departamento de Ingeniería de Sistemas Universidad de Antioquia
Circuitos Digitales II
Arquitectura de Computadores
SISTEMAS DE MEMORIA DEL COMPUTADOR
Tema II Unidad de memoria. 2 Unidad de memoria 2.1 Definiciones y conceptos básicos Localización Capacidad Unidad de transferencia
Arquitectura de Computadores Curso 2011 / 2012 Primer semestre Grado en Ingeniería de Computadores.
EL Sistemas Digitales Ing. José Alberto Díaz García Escuela de Ingeniería Electrónica Arquitectura Segmentada Pipeline (Segmentación)
Algorítmo de Mapeo Directo
Memoria cache.
Teoría de Sistemas Operativos
Estructura y Tecnolología de Ordenadores
Gustavo Andrés Uribe Gómez
Direcciones físicas y direcciones virtuales (lógicas)
Universidad de SonoraArquitectura de Computadoras1 PROGRAMA CION PARALELA Y DISTRIBUIDA PRESENTA: JESUS BECERRIL PACHECO MODELOS DE ACCESO A LA MEMORIA.
Arquitectura del Computador
Memoria Otros temas sobre cachés. Universidad de SonoraArquitectura de Computadoras2 Otros temas 1. Estrategias de búsqueda de bloque. 2. Estrategias.
Simulador didáctico de jerarquías de memoria
Organización del Computador I Verano MIPS (1 de 2) Basado en el capítulo 3 del libro de Patterson y Hennessy Verano 2004 Profesora Borensztejn.
Estructura y Tecnología de Ordenadores Noviembre 2004.
Administración de Memoria Memoria Virtual
Las personas se enfrentaron por primera vez con programas que eran demasiados grandes para caber en la memoria disponible. La solucion fue dividir el programa.
Memoria Cachés. Universidad de SonoraArquitectura de Computadoras2 Introducción Caché es el nivel de memoria situada entre el procesador y la memoria.
Tema 10.3: Asignación de Espacio No Contiguo. Tema 10.3: 2 Silberschatz, Galvin and Gagne ©2005 Fundamentos de los Computadores (ITT, Sist. Electr.),
Overview Sistemas Computacionales
Asignación de Espacio No Contiguo
Soporte HW para Administración de Memoria Cecilia Hernández
ARQUITECTURA DE COMPUTADORES Semestre A-2009 Clase 19 La mayor parte del contenido de estas láminas, ha sido extraído del libro Computer Organization and.
Arquitectura de Von Neumann
ISI374 – Arquitectura de Computadores Clase 18: Jerarquía de memoria Pt.1 Departamento de Ingeniería de Sistemas Universidad de Antioquia
ARQUITECTURA DE COMPUTADORES Semestre A-2009 Clase 21 La mayor parte del contenido de estas láminas, ha sido extraído del libro Computer Organization and.
Organización del Computador
Memoria virtual.
Memoria Principal Memoria de acceso aleatorio. La unidad de memoria y jerarquías de almacenamiento Unidades de Almacenamiento. La unidad de memoria es.
Organización del Computador I Verano Memoria Virtual Basado en el capítulo 7 del libro de Patterson y Hennessy Verano 2004Profesora Borensztejn.
Organización del Computador I Verano Jerarquía de Memoria Basado en el capítulo 7 del libro de Patterson y Hennessy Verano 2004 Profesora Borensztejn.
CLASE 14.
Tema 5: Multiprocesadores
Teoría de Sistemas Operativos Sistema de I/O. 2 Introducción Una de las funciones principales del sistema operativo es el control de todos los dispositivos.
ARQUITECTURA DE COMPUTADORES Semestre A-2009 Clase 20 La mayor parte del contenido de estas láminas, ha sido extraído del libro Computer Organization and.
ARQUITECTURA DE COMPUTADORES Semestre A-2009 Clase 14 La mayor parte del contenido de estas láminas, ha sido extraído del libro Computer Organization and.
Organización del Computador I Verano Control Multiciclo Basado en el capítulo 5 del libro de Patterson y Hennessy Verano 2004 Profesora Borensztejn.
Teoría de Sistemas Operativos Memoria Departamento de Electrónica 2º Semestre, 2003 Gabriel Astudillo Muñoz
Gestión de memoria Rina Arauz.
MIA - Grupo 5 Unidad 2.
REPUBLICA BOLIVARIANA DE VENEZUELA UNIVERSIDAD ALONSO DE OJEDA FACULTAD DE INGENIERÍA ESCUELA DE COMPUTACIÓN ING. PROF. LEONEL SEQUERA MEMORIAS.
Unidad de transferencia de memoria
Republica Bolivariana de Venezuela Universidad Alonso de Ojeda Facultad de Ingeniería Escuela de Computación Ing. Prof. Leonel Sequera Entrada y Salidas.
El microprocesador y su arquitectura
Gestión de Memoria – Parte 2
Arquitectura de Computadores Clase 18 Memoria Caché: Fundamentos IIC 2342 Semestre Rubén Mitnik Pontificia Universidad Católica de Chile Escuela.
Arquitectura de Computadores Clase 17 Tecnologías de Memorias IIC 2342 Semestre Rubén Mitnik Pontificia Universidad Católica de Chile Escuela de.
Arquitectura de Computadoras (Taller) Semestre II de 2008.
Memoria virtual. Universidad de SonoraArquitectura de Computadoras2 Introducción Memoria virtual es un mecanismo que permite que la memoria principal.
Arquitectura de Computadores
Transcripción de la presentación:

Departamento de Ingeniería de Sistemas Universidad de Antioquia 2010-1 ISI374 – Arquitectura de Computadores Clase 20: Jerarquía de memoria Pt.2 Departamento de Ingeniería de Sistemas Universidad de Antioquia 2010-1

Resumen Cache de emplazamiento directo con bloque de varias palabras Tasa de fallos vs. Tamaño de bloque Tratamiento de los aciertos de cache Políticas de escritura Escritura directa (Write through) Post-escritura (Write back) Tratamiento de los fallos de cache Ubicar en escritura (Write allocation) No ubicar en escritura (No write allocation)

Ejemplo de cache de emplazamiento directo para el MIPS Bloques de una palabra (= 4 Bytes) Tamaño de cache: 1K palabras (= 4 KB) (K = 210 = 1024) Byte offset: señala el byte específico dentro del bloque Index: identifica el bloque de la cache Tag: bits restantes que sirven para diferenciar las direcciones de memoria que mapean en la misma posición ¿Qué tipo de localidad se aprovecha?

Cache de emplazamiento directo con bloque de varias palabras Intrinsity FastMATH (Procesador MIPS embebido) Bloques de 16 palabras (= 64 Bytes = 512 bits) Tamaño de cache: 256 bloques (= 16 KB) ¿Qué tipo de localidad se aprovecha?

Cache de emplazamiento directo con bloque de varias palabras Ejercicio Memoria cache con 64 bloques, 16 bytes/bloque. Espacio de direcciones de 32 bits. ¿A cuál entrada de la cache mapeará la dirección 1200? Índice = (Dirección del bloque) mod (# bloques en la cache) Dirección del bloque = 1200/16 = 75 El bloque es la unidad de transferencia entre la cache y la memoria Índice = 75 mod 64 = 11 De hecho, a este bloque mapean todas las direcciones entre 1200 y 1215 ¿Qué tipo de localidad se aprovecha? Tag Index Offset 3 4 9 10 31 4 bits 6 bits 22 bits

Consideraciones sobre el tamaño de bloque Los bloques de mayor tamaño deben reducir la tasa de fallos Gracias a la localidad espacial Sin embargo, en una cache de tamaño fijo Bloques más grandes  Pocos de ellos en la cache Mayor competencia por los bloques  Crecimiento de la tasa de fallos Polución: un bloque es reemplazado antes de que muchas de sus palabras sean accedidas La localidad espacial de las palabras dentro de un bloque disminuye cuando el tamaño de bloque se hace muy grande La penalización del fallo se incrementa: El tiempo necesario para buscar un bloque en el nivel inferior suele elevarse al aumentar el tamaño del bloque La penalización se puede reducir un poco ocultando alguna parte del tiempo de transferencia (Early restart, critical-word-first)

Tasa de fallos vs. Tamaño de bloque

Tratamiento de los aciertos de cache Aciertos de lectura (en I$ y D$) Esto es lo que deseamos Aciertos de escritura (sólo en D$) Cuando se escribe un dato en la cache, en algún momento este dato también debe ser escrito en la memoria Consistencia entre cache y memoria La temporización de esta escritura se controla mediante lo que se denomina política de escritura Escritura directa (Write through): obliga a que la cache y la memoria sean consistentes Post-escritura (Write back): permite que la cache y la memoria sean inconsistentes (temporalmente)

Escritura directa (Write through) Técnica más simple para mantener la consistencia: Por cada escritura en la cache, escribe también en memoria Sin embargo, las escrituras toman mucho tiempo Ej: si CPI base = 1 (sin fallos de cache), el 10% de las instrucciones son stores y escribir en memoria toma 100 ciclos CPI efectivo = 1 + 0.1×100 = 11 (el rendimiento se reduce en un factor mayor que 10) Una solución: emplear un buffer de escritura (write buffer) Almacena los datos que esperan para ser escritos en memoria Después de escribir los datos en la cache y en el buffer de escritura, la CPU continúa su ejecución La CPU sólo se detiene en una escritura si el buffer está lleno La eficiencia del buffer de escritura depende de la relación entre las tasas de generación de escrituras de la CPU y de su procesamiento por parte de la memoria

Post-escritura (Write back) En un acierto de escritura de datos, esta técnica actualiza solamente el bloque en la cache La escritura en la cache no se refleja inmediatamente en memoria El bloque escrito en la caché se marca como dirty Bit dirty (sucio, modificado) Bit extra por cada bloque de cache que indica que el bloque almacenado en la cache difiere del bloque almacenado en la memoria Sólo cuando un bloque marcado como dirty vaya a ser reemplazado se escribe en memoria Puede emplear también un buffer de escritura para reducir la penalización cuando ante un fallo se reemplaza un bloque modificado (dirty) El bloque dirty (bloque a reemplazar) se almacena en el buffer mientras que el nuevo bloque se lee desde memoria

Ventajas de las políticas de escritura Escritura directa (Write through) Un fallo de lectura nunca produce una escritura en memoria De fácil implementación La memoria tiene la copia más reciente del dato (consistencia: multiprocesadores, I/O) Post-escritura (Write back) Las escrituras se realizan a la velocidad de la cache Varias escrituras dentro de un bloque requieren sólo una escritura en memoria Emplea menos ancho de banda de memoria (multiprocesadores)

Desventajas de las políticas de escritura Escritura directa (Write through) La escritura es muy lenta Cada escritura requiere un acceso a memoria Emplea más ancho de banda Post-escritura (Write back) De difícil implementación La memoria no siempre es consistente con la cache Las lecturas que resulten en reemplazo (fallos de lectura) provocan la escritura de bloques modificados (dirties) en memoria

Tratamiento de los fallos de cache (bloques de una palabra) Fallos de lectura (en I$ y D$) Detener (stall) el pipeline, buscar el bloque en el siguiente nivel de la jerarquía de memoria, incrustarlo en la cache y enviar la palabra solicitada al procesador. Luego, el pipeline puede reanudar su operación Fallos de escritura (sólo en D$) El bloque es actualizado en memoria y traído a la cache, a lo que sigue la acción de un acierto de escritura Ubicar en escritura (Write allocation) Escribir el bloque en memoria saltándose la escritura en la cache No ubicar en escritura (No write allocation)

Combinación de las políticas de escritura Cualquiera de las dos técnicas de tratamiento de los fallos de escritura (ubicación en escritura y no ubicación en escritura) se puede usar con escritura directa o post-escritura). Sin embargo, lo más normal es emplear: Write through - No write allocation (WT-NWA) En un acierto, escribe tanto en la cache como en memoria En un fallo, actualiza el bloque en memoria sin traerlo a la cache Escrituras posteriores a ese bloque tendrán que ir de cualquier manera a memoria debido a la escritura directa (se ahorra tiempo al no traer el bloque a la cache en un fallo porque igual será inútil) Write back - Write allocation (WB-WA) En un acierto, escribe en la cache activando el bit dirty y no actualiza la memoria En un fallo, el bloque se escribe en memoria y es traído a la cache Escrituras posteriores a ese bloque, si el bloque originalmente produjo un fallo, acertarán en la cache la próxima vez ajustando el bit dirty del bloque (evita accesos extras a memoria como sucedería si se usará Write through)

Lecturas recomendadas Interaction policies with main memory. G. Prabhu. Department of Computer Science, Iowa State University Accesible vía web: http://www.cs.iastate.edu/~prabhu/Tutorial/CACHE/interac.html Computer organization and architecture. Designing for performance, 6th ed., Chapter 4. W. Stallings. Pearson Education Computer organization and design. The hardware/software interface, 3rd ed., Chapter 7. D. Patterson and J. Hennessy. Morgan Kaufmann Publishers