Tema 3: Jerarquía de memoria 3.1 3.2 3.3 3.4 Registros Memoria cache Memoria principal Memoria virtual 3.2 Memorias cache • • • • • • • • • Introducción Lecturas Ejemplos Escrituras Cache unificada vs separada Localidad espacial Asociatividad Caches multinivel Programación Introducción T = Ni · CPI · 1/f Ni Algoritmos, compiladores, conjunto de instrucciones CPI Segmentación, replicación, jerarquía de memoria f Tecnología Introducción: jerarquía Introducción: localidad Introducción: nomenclatura Introducción: tiempo de acceso Introducción: mapping Introducción: tags Introducción: validez de los datos Lecturas Factor de utilización Manejo de un miss (datos) Manejo de un miss (instrucciones) Ejemplo Writes: write-through Writes: write-back • Esquema alternativo: write-back – Una escritura solamente afecta a la cache. • Actualización en memoria principal: – Cuando un bloque es reemplazado. • Mejora el rendimiento respecto de write-through, especialmente cuando se producen muchas escrituras. Cache unificada vs separada Tamaño de la cache Localidad espacial Localidad espacial • Aumentar el tamaño de bloque supone un menor número de TAGs y VALID bits (mayor eficiencia y menor tiempo de hit) • Por el contrario, la multiplexación aumenta el tiempo de hit. • Finalmente, puede producirse un mal uso de los bloques de cache (véase más adelante en la parte de programación) Localidad espacial:tamaño de bloque Asociatividad Asociatividad: nomenclatura • N-way set associative (1 <= N <= M) –M número de bloques de la cache – N=1 direct mapped – N=M fully associative Asociatividad vs Miss rate Reemplazamiento Localización de un bloque Caches multinivel Caches multinivel Programación Merging Aligning and Padding Aligning and Padding Aligning and Padding Aligning and Padding Packing Loop Fusion Blocking Blocking