1 / 15

ISI374 – Arquitectura de Computadores Clase 20: Jerarquía de memoria Pt.2

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

Download Presentation

ISI374 – Arquitectura de Computadores Clase 20: Jerarquía de memoria Pt.2

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


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

  2. 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 (Writethrough) • Post-escritura (Write back) • Tratamiento de los fallos de cache • Ubicar en escritura (Writeallocation) • No ubicar en escritura (No writeallocation)

  3. 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?

  4. Cache de emplazamiento directo con bloque de varias palabras • IntrinsityFastMATH (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?

  5. Cache de emplazamiento directo con bloque de varias palabras 31 10 9 4 3 0 Tag Index Offset 22 bits 6 bits 4 bits Ejercicio • Memoria cache con 64 bloques, 16 bytes/bloque. Espacio de direcciones de 32 bits. • ¿A cuálentrada 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 bloquees la unidad de transferencia entre la cache y la memoria Índice = 75 mod 64 = 11 • De hecho, a estebloquemapeantodaslasdirecciones entre 1200 y 1215 ¿Qué tipo de localidad se aprovecha?

  6. 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 (Earlyrestart, critical-word-first)

  7. Tasa de fallos vs. Tamaño de bloque

  8. Tratamiento de los aciertos de cache • Aciertos de lectura (en I$ y D$) • Estoes lo quedeseamos • 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 (Writethrough): obliga a que la cache y la memoria sean consistentes • Post-escritura (Write back): permite que la cache y la memoria sean inconsistentes (temporalmente)

  9. 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

  10. 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

  11. Ventajas de las políticas de escritura • Escritura directa (Writethrough) • 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)

  12. Desventajas de las políticas de escritura • Escritura directa (Writethrough) • 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

  13. 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 siguientenivel de la jerarquía de memoria, incrustarlo en la cache y enviar la palabrasolicitada al procesador. Luego, el pipelinepuedereanudarsuoperació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 (Writeallocation) • Escribir el bloque en memoria saltándose la escritura en la cache No ubicar en escritura (No writeallocation)

  14. 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: • Writethrough - No writeallocation (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 - Writeallocation (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á Writethrough)

  15. 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 • Computerorganization and design. The hardware/software interface, 3rd ed., Chapter 7. D. Patterson and J. Hennessy. Morgan KaufmannPublishers

More Related