optimizaciones avanzadas de memoria caché - arquitectura...

44
Optimizaciones avanzadas de memoria caché Optimizaciones avanzadas de memoria caché Arquitectura de Computadores J. Daniel García Sánchez (coordinador) David Expósito Singh Javier García Blas Óscar Pérez Alonso J. Manuel Pérez Lobato Grupo ARCOS Departamento de Informática Universidad Carlos III de Madrid cbed Arquitectura de Computadores Grupo ARCOS http://www.arcos.inf.uc3m.es 1/44

Upload: others

Post on 05-Jun-2020

0 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Optimizaciones avanzadas de memoria caché - Arquitectura ...ocw.uc3m.es/ingenieria-informatica/arquitectura-de... · Mezclas en búfer de escritura Búfer de escritura Un búfer

Optimizaciones avanzadas de memoria caché

Optimizaciones avanzadas de memoriacaché

Arquitectura de Computadores

J. Daniel García Sánchez (coordinador)David Expósito Singh

Javier García BlasÓscar Pérez Alonso

J. Manuel Pérez Lobato

Grupo ARCOSDepartamento de Informática

Universidad Carlos III de Madrid

cbed – Arquitectura de Computadores – Grupo ARCOS – http://www.arcos.inf.uc3m.es 1/44

Page 2: Optimizaciones avanzadas de memoria caché - Arquitectura ...ocw.uc3m.es/ingenieria-informatica/arquitectura-de... · Mezclas en búfer de escritura Búfer de escritura Un búfer

Optimizaciones avanzadas de memoria caché

Introducción

1 Introducción

2 Optimizaciones avanzadas

3 Conclusión

cbed – Arquitectura de Computadores – Grupo ARCOS – http://www.arcos.inf.uc3m.es 2/44

Page 3: Optimizaciones avanzadas de memoria caché - Arquitectura ...ocw.uc3m.es/ingenieria-informatica/arquitectura-de... · Mezclas en búfer de escritura Búfer de escritura Un búfer

Optimizaciones avanzadas de memoria caché

Introducción

¿Por qué aparece la memoria caché?

Para vencer el muro de memoria (memory wall).1980 – 2010: Mejora de rendimiento de procesadoresmayor (órdenes de magnitud) que de la memoria.2005 – . . . : Situación agravada por arquitecturas multi-core.

Para reducir el tiempo de acceso a datos e instrucciones.Aproximar tiempo de acceso a memoria al tiempo deacceso a la caché.Ofrecer la ilusión de tamaño de la caché aproximando altamaño de memoria principal.Basado en el principio de localidad.

cbed – Arquitectura de Computadores – Grupo ARCOS – http://www.arcos.inf.uc3m.es 3/44

Page 4: Optimizaciones avanzadas de memoria caché - Arquitectura ...ocw.uc3m.es/ingenieria-informatica/arquitectura-de... · Mezclas en búfer de escritura Búfer de escritura Un búfer

Optimizaciones avanzadas de memoria caché

Introducción

Tiempo medio de acceso a memoria

1 nivel.

t = th(L1) + mL1 × tp(L1)

2 niveles.

t = th(L1) + mL1 × (th(L2) + mL2 × tp(L2))

3 niveles.

t = th(L1)+mL1×(th(L2) + mL2 × (th(L3) + mL3 × tp(L3)))

. . .

cbed – Arquitectura de Computadores – Grupo ARCOS – http://www.arcos.inf.uc3m.es 4/44

Page 5: Optimizaciones avanzadas de memoria caché - Arquitectura ...ocw.uc3m.es/ingenieria-informatica/arquitectura-de... · Mezclas en búfer de escritura Búfer de escritura Un búfer

Optimizaciones avanzadas de memoria caché

Introducción

Optimizaciones básicas

1. Aumentar el tamaño de bloque.2. Aumentar el tamaño de caché.3. Incrementar la asociatividad.4. Introducir cachés multinivel.5. Dar prioridad a fallos de lectura.6. Evitar traducción de direcciones durante el indexado.

cbed – Arquitectura de Computadores – Grupo ARCOS – http://www.arcos.inf.uc3m.es 5/44

Page 6: Optimizaciones avanzadas de memoria caché - Arquitectura ...ocw.uc3m.es/ingenieria-informatica/arquitectura-de... · Mezclas en búfer de escritura Búfer de escritura Un búfer

Optimizaciones avanzadas de memoria caché

Introducción

Optimizaciones avanzadas

Métricas a reducir:Tiempo de búsqueda (hit time).Tasa de fallos (miss rate).Penalización de fallos (miss penalty).

Métricas a aumentar:Ancho de banda de caché (cache bandwidth).

Observación: Todas las optimizaciones avanzadasbuscan mejorar alguna de estas métricas.

cbed – Arquitectura de Computadores – Grupo ARCOS – http://www.arcos.inf.uc3m.es 6/44

Page 7: Optimizaciones avanzadas de memoria caché - Arquitectura ...ocw.uc3m.es/ingenieria-informatica/arquitectura-de... · Mezclas en búfer de escritura Búfer de escritura Un búfer

Optimizaciones avanzadas de memoria caché

Optimizaciones avanzadas

1 Introducción

2 Optimizaciones avanzadas

3 Conclusión

cbed – Arquitectura de Computadores – Grupo ARCOS – http://www.arcos.inf.uc3m.es 7/44

Page 8: Optimizaciones avanzadas de memoria caché - Arquitectura ...ocw.uc3m.es/ingenieria-informatica/arquitectura-de... · Mezclas en búfer de escritura Búfer de escritura Un búfer

Optimizaciones avanzadas de memoria caché

Optimizaciones avanzadas

Cachés pequeñas y simples

2 Optimizaciones avanzadasCachés pequeñas y simplesPredicción de víaAcceso segmentado a la cachéCachés no bloqueantesCachés multi-bancoPalabra crítica primero y reinicio tempranoMezclas en búfer de escrituraOptimizaciones del compiladorLectura adelantada hardware

cbed – Arquitectura de Computadores – Grupo ARCOS – http://www.arcos.inf.uc3m.es 8/44

Page 9: Optimizaciones avanzadas de memoria caché - Arquitectura ...ocw.uc3m.es/ingenieria-informatica/arquitectura-de... · Mezclas en búfer de escritura Búfer de escritura Un búfer

Optimizaciones avanzadas de memoria caché

Optimizaciones avanzadas

Cachés pequeñas y simples

Cachés pequeñas

Proceso de búsqueda:Selección de línea utilizando índice.Lectura de etiqueta de línea.Comparación con etiqueta de dirección.

El tiempo de búsqueda se incrementa con el tamaño dela caché.

Una caché más pequeña permite:Hardware de búsqueda más simple.La caché cabe en el chip del procesador.

Una caché pequeña mejora el tiempo de búsqueda.

cbed – Arquitectura de Computadores – Grupo ARCOS – http://www.arcos.inf.uc3m.es 9/44

Page 10: Optimizaciones avanzadas de memoria caché - Arquitectura ...ocw.uc3m.es/ingenieria-informatica/arquitectura-de... · Mezclas en búfer de escritura Búfer de escritura Un búfer

Optimizaciones avanzadas de memoria caché

Optimizaciones avanzadas

Cachés pequeñas y simples

Cachés simples

Simplificación de la caché.Uso de mecanismos de correspondencia lo más sencilloposibles.Correspondencia directa:

Se permite paralelizar la comparación de la etiqueta con latransmisión del dato.

Observación: La mayoría de los procesadores modernosse centran más en usar cachés pequeñas que en susimplificación.

cbed – Arquitectura de Computadores – Grupo ARCOS – http://www.arcos.inf.uc3m.es 10/44

Page 11: Optimizaciones avanzadas de memoria caché - Arquitectura ...ocw.uc3m.es/ingenieria-informatica/arquitectura-de... · Mezclas en búfer de escritura Búfer de escritura Un búfer

Optimizaciones avanzadas de memoria caché

Optimizaciones avanzadas

Cachés pequeñas y simples

Intel Core i7

Caché L1 (1 por núcleo)32 KB instrucciones32 KB datosLatencia: 3 ciclosAsociativa 4(i), 8(d) vías.

Caché L2 (1 por núcleo)256 KBLatencia: 9 ciclosAsociativa 8 vías.

Caché L3 (compartida)8 MBLatencia: 39 ciclosAsociativa 16 vías.

cbed – Arquitectura de Computadores – Grupo ARCOS – http://www.arcos.inf.uc3m.es 11/44

Page 12: Optimizaciones avanzadas de memoria caché - Arquitectura ...ocw.uc3m.es/ingenieria-informatica/arquitectura-de... · Mezclas en búfer de escritura Búfer de escritura Un búfer

Optimizaciones avanzadas de memoria caché

Optimizaciones avanzadas

Predicción de vía

2 Optimizaciones avanzadasCachés pequeñas y simplesPredicción de víaAcceso segmentado a la cachéCachés no bloqueantesCachés multi-bancoPalabra crítica primero y reinicio tempranoMezclas en búfer de escrituraOptimizaciones del compiladorLectura adelantada hardware

cbed – Arquitectura de Computadores – Grupo ARCOS – http://www.arcos.inf.uc3m.es 12/44

Page 13: Optimizaciones avanzadas de memoria caché - Arquitectura ...ocw.uc3m.es/ingenieria-informatica/arquitectura-de... · Mezclas en búfer de escritura Búfer de escritura Un búfer

Optimizaciones avanzadas de memoria caché

Optimizaciones avanzadas

Predicción de vía

Predicción de vía

Problema:Correspondencia directa→ rápida pero muchos fallos.Asociativa por conjuntos→ menos fallos pero másconjuntos (más lenta).

Predicción de víaSe almacenan bits adicionales para predecir la vía que seseleccionará en el próximo acceso.Acceso adelantado al bloque y comparación con una únicaetiqueta.

Si hay fallo se compara con las demás etiquetas.

cbed – Arquitectura de Computadores – Grupo ARCOS – http://www.arcos.inf.uc3m.es 13/44

Page 14: Optimizaciones avanzadas de memoria caché - Arquitectura ...ocw.uc3m.es/ingenieria-informatica/arquitectura-de... · Mezclas en búfer de escritura Búfer de escritura Un búfer

Optimizaciones avanzadas de memoria caché

Optimizaciones avanzadas

Acceso segmentado a la caché

2 Optimizaciones avanzadasCachés pequeñas y simplesPredicción de víaAcceso segmentado a la cachéCachés no bloqueantesCachés multi-bancoPalabra crítica primero y reinicio tempranoMezclas en búfer de escrituraOptimizaciones del compiladorLectura adelantada hardware

cbed – Arquitectura de Computadores – Grupo ARCOS – http://www.arcos.inf.uc3m.es 14/44

Page 15: Optimizaciones avanzadas de memoria caché - Arquitectura ...ocw.uc3m.es/ingenieria-informatica/arquitectura-de... · Mezclas en búfer de escritura Búfer de escritura Un búfer

Optimizaciones avanzadas de memoria caché

Optimizaciones avanzadas

Acceso segmentado a la caché

Acceso segmentado a la caché

Objetivo: Aumentar el ancho de banda de la caché.

Solución: Segmentar el acceso a la caché en variosciclos de reloj.

Efectos:Se puede reducir el ciclo de reloj.Se puede iniciar un acceso en cada ciclo de reloj.Se aumenta el ancho de banda de la caché.Se aumenta la latencia.

Efecto positivo en procesadores superescalares.

cbed – Arquitectura de Computadores – Grupo ARCOS – http://www.arcos.inf.uc3m.es 15/44

Page 16: Optimizaciones avanzadas de memoria caché - Arquitectura ...ocw.uc3m.es/ingenieria-informatica/arquitectura-de... · Mezclas en búfer de escritura Búfer de escritura Un búfer

Optimizaciones avanzadas de memoria caché

Optimizaciones avanzadas

Cachés no bloqueantes

2 Optimizaciones avanzadasCachés pequeñas y simplesPredicción de víaAcceso segmentado a la cachéCachés no bloqueantesCachés multi-bancoPalabra crítica primero y reinicio tempranoMezclas en búfer de escrituraOptimizaciones del compiladorLectura adelantada hardware

cbed – Arquitectura de Computadores – Grupo ARCOS – http://www.arcos.inf.uc3m.es 16/44

Page 17: Optimizaciones avanzadas de memoria caché - Arquitectura ...ocw.uc3m.es/ingenieria-informatica/arquitectura-de... · Mezclas en búfer de escritura Búfer de escritura Un búfer

Optimizaciones avanzadas de memoria caché

Optimizaciones avanzadas

Cachés no bloqueantes

Cachés no bloqueantes

Problema: Fallo de caché genera una parada (stall) hastaque se obtiene el bloque.

Solución: Ejecución fuera de orden.Pero: ¿Cómo se accede a la caché mientras se resuelve elfallo?

Acierto durante fallo:Permitir accesos con acierto mientras se espera.Reduce la penalización del fallo.

Acierto durante fallos / Fallo durante fallo:Permitir fallos solapados.Necesita memoria multi-canal.Altamente complejo.

cbed – Arquitectura de Computadores – Grupo ARCOS – http://www.arcos.inf.uc3m.es 17/44

Page 18: Optimizaciones avanzadas de memoria caché - Arquitectura ...ocw.uc3m.es/ingenieria-informatica/arquitectura-de... · Mezclas en búfer de escritura Búfer de escritura Un búfer

Optimizaciones avanzadas de memoria caché

Optimizaciones avanzadas

Cachés multi-banco

2 Optimizaciones avanzadasCachés pequeñas y simplesPredicción de víaAcceso segmentado a la cachéCachés no bloqueantesCachés multi-bancoPalabra crítica primero y reinicio tempranoMezclas en búfer de escrituraOptimizaciones del compiladorLectura adelantada hardware

cbed – Arquitectura de Computadores – Grupo ARCOS – http://www.arcos.inf.uc3m.es 18/44

Page 19: Optimizaciones avanzadas de memoria caché - Arquitectura ...ocw.uc3m.es/ingenieria-informatica/arquitectura-de... · Mezclas en búfer de escritura Búfer de escritura Un búfer

Optimizaciones avanzadas de memoria caché

Optimizaciones avanzadas

Cachés multi-banco

Cachés multi-banco

Objetivo: Permitir accesos simultáneos a distintasposiciones de la caché.

Solución: Dividir la memoria en bancos independientes.

Efecto: Aumenta el ancho de banda.

Ejemplo: Sun NiagaraL2: 4 bancos

cbed – Arquitectura de Computadores – Grupo ARCOS – http://www.arcos.inf.uc3m.es 19/44

Page 20: Optimizaciones avanzadas de memoria caché - Arquitectura ...ocw.uc3m.es/ingenieria-informatica/arquitectura-de... · Mezclas en búfer de escritura Búfer de escritura Un búfer

Optimizaciones avanzadas de memoria caché

Optimizaciones avanzadas

Cachés multi-banco

Ancho de banda

Para que el ancho de banda mejore hace falta que losaccesos queden distribuidos entre los bancos.

Esquema sencillo: Entrelazado secuencial.Reparto secuencial de bloques entre los bancos.

Dir. bloque Banco 0

0

4

8

12

Dir. bloque Banco 1

1

5

9

13

Dir. bloque Banco 2

2

6

10

14

Dir. bloque Banco 2

3

7

11

15

cbed – Arquitectura de Computadores – Grupo ARCOS – http://www.arcos.inf.uc3m.es 20/44

Page 21: Optimizaciones avanzadas de memoria caché - Arquitectura ...ocw.uc3m.es/ingenieria-informatica/arquitectura-de... · Mezclas en búfer de escritura Búfer de escritura Un búfer

Optimizaciones avanzadas de memoria caché

Optimizaciones avanzadas

Palabra crítica primero y reinicio temprano

2 Optimizaciones avanzadasCachés pequeñas y simplesPredicción de víaAcceso segmentado a la cachéCachés no bloqueantesCachés multi-bancoPalabra crítica primero y reinicio tempranoMezclas en búfer de escrituraOptimizaciones del compiladorLectura adelantada hardware

cbed – Arquitectura de Computadores – Grupo ARCOS – http://www.arcos.inf.uc3m.es 21/44

Page 22: Optimizaciones avanzadas de memoria caché - Arquitectura ...ocw.uc3m.es/ingenieria-informatica/arquitectura-de... · Mezclas en búfer de escritura Búfer de escritura Un búfer

Optimizaciones avanzadas de memoria caché

Optimizaciones avanzadas

Palabra crítica primero y reinicio temprano

Palabra crítica primero y reinicio temprano

Observación: Normalmente el procesador necesita unaúnica palabra para poder proseguir.

Solución: No esperar a recibir todo el bloque de memoria.

Alternativas:Palabra crítica primero: El bloque se recibe reordenadocon la palabra que necesita el procesador al principio.Reinicio temprano: El bloque se recibe sin reordenar.

En cuanto se recibe la palabra de interés la CPU prosigue.

Efectos: Depende del tamaño de bloque→ Mejor másgrande.

cbed – Arquitectura de Computadores – Grupo ARCOS – http://www.arcos.inf.uc3m.es 22/44

Page 23: Optimizaciones avanzadas de memoria caché - Arquitectura ...ocw.uc3m.es/ingenieria-informatica/arquitectura-de... · Mezclas en búfer de escritura Búfer de escritura Un búfer

Optimizaciones avanzadas de memoria caché

Optimizaciones avanzadas

Mezclas en búfer de escritura

2 Optimizaciones avanzadasCachés pequeñas y simplesPredicción de víaAcceso segmentado a la cachéCachés no bloqueantesCachés multi-bancoPalabra crítica primero y reinicio tempranoMezclas en búfer de escrituraOptimizaciones del compiladorLectura adelantada hardware

cbed – Arquitectura de Computadores – Grupo ARCOS – http://www.arcos.inf.uc3m.es 23/44

Page 24: Optimizaciones avanzadas de memoria caché - Arquitectura ...ocw.uc3m.es/ingenieria-informatica/arquitectura-de... · Mezclas en búfer de escritura Búfer de escritura Un búfer

Optimizaciones avanzadas de memoria caché

Optimizaciones avanzadas

Mezclas en búfer de escritura

Búfer de escritura

Un búfer de escritura permite reducir la penalización defallo.

Cuando se ha escrito en el búfer el procesador da laescritura por efectuada.Escrituras simultáneas en memoria son más eficientes queuna única escritura.

Usos:Escritura inmediata (write-through): En todas lasescrituras.Post escritura (write-back): Cuando se remplaza unbloque.

cbed – Arquitectura de Computadores – Grupo ARCOS – http://www.arcos.inf.uc3m.es 24/44

Page 25: Optimizaciones avanzadas de memoria caché - Arquitectura ...ocw.uc3m.es/ingenieria-informatica/arquitectura-de... · Mezclas en búfer de escritura Búfer de escritura Un búfer

Optimizaciones avanzadas de memoria caché

Optimizaciones avanzadas

Mezclas en búfer de escritura

Mezclas en búfer de escritura

Si el búfer contiene bloques modificados, se compruebanlas direcciones para ver si se puede sobrescribir.

Efectos:Reduce el número de escrituras en memoria.Reduce paradas debidas a que el búfer esté lleno.

cbed – Arquitectura de Computadores – Grupo ARCOS – http://www.arcos.inf.uc3m.es 25/44

Page 26: Optimizaciones avanzadas de memoria caché - Arquitectura ...ocw.uc3m.es/ingenieria-informatica/arquitectura-de... · Mezclas en búfer de escritura Búfer de escritura Un búfer

Optimizaciones avanzadas de memoria caché

Optimizaciones avanzadas

Mezclas en búfer de escritura

Mezclas en buffer de escritura

Write address

100

108

116

124

V

1

1

1

1

M[100]

M[108]

M[116]

M[124]

0

0

0

0

V

0

0

0

0

V

0

0

0

0

V

Write address

100

V

1

1

1

1

M[100] 0

0

0

0

V

M[108] 0

0

0

0

V

M[116] 0

0

0

0

V

M[124]

cbed – Arquitectura de Computadores – Grupo ARCOS – http://www.arcos.inf.uc3m.es 26/44

Page 27: Optimizaciones avanzadas de memoria caché - Arquitectura ...ocw.uc3m.es/ingenieria-informatica/arquitectura-de... · Mezclas en búfer de escritura Búfer de escritura Un búfer

Optimizaciones avanzadas de memoria caché

Optimizaciones avanzadas

Optimizaciones del compilador

2 Optimizaciones avanzadasCachés pequeñas y simplesPredicción de víaAcceso segmentado a la cachéCachés no bloqueantesCachés multi-bancoPalabra crítica primero y reinicio tempranoMezclas en búfer de escrituraOptimizaciones del compiladorLectura adelantada hardware

cbed – Arquitectura de Computadores – Grupo ARCOS – http://www.arcos.inf.uc3m.es 27/44

Page 28: Optimizaciones avanzadas de memoria caché - Arquitectura ...ocw.uc3m.es/ingenieria-informatica/arquitectura-de... · Mezclas en búfer de escritura Búfer de escritura Un búfer

Optimizaciones avanzadas de memoria caché

Optimizaciones avanzadas

Optimizaciones del compilador

Optimizaciones del compilador

Objetivo: Generar código que provoque menos fallos deinstrucciones y datos.

Instrucciones:1. Reordenación de procedimientos.2. Alinear bloques de código al inicio de bloques de caché.3. Linearización de saltos.

Datos:1. Fusión de arrays.2. Intercambio de bucles.3. Fusión de bucles.4. Acceso por bloques.

cbed – Arquitectura de Computadores – Grupo ARCOS – http://www.arcos.inf.uc3m.es 28/44

Page 29: Optimizaciones avanzadas de memoria caché - Arquitectura ...ocw.uc3m.es/ingenieria-informatica/arquitectura-de... · Mezclas en búfer de escritura Búfer de escritura Un búfer

Optimizaciones avanzadas de memoria caché

Optimizaciones avanzadas

Optimizaciones del compilador

Reordenación de procedimientos

Objetivo: Reducir los fallos porconflicto debidos a que dosprocedimientos coincidentes en eltiempo se corresponden con la mismalínea de caché.Técnica: Reordenar losprocedimientos en memoria.

P1

P1

P1

P1

P2

P2

P2

P2

P3

P3

P3

P3

P1

P1

P1

P1

P3

P3

P3

P3

P2

P2

P2

P2

cbed – Arquitectura de Computadores – Grupo ARCOS – http://www.arcos.inf.uc3m.es 29/44

Page 30: Optimizaciones avanzadas de memoria caché - Arquitectura ...ocw.uc3m.es/ingenieria-informatica/arquitectura-de... · Mezclas en búfer de escritura Búfer de escritura Un búfer

Optimizaciones avanzadas de memoria caché

Optimizaciones avanzadas

Optimizaciones del compilador

Alineación de bloques básicos

Definición: Un bloque básico es un conjunto deinstrucciones que se ejecuta secuencialmente (nocontiene saltos).

Objetivo: Reducir la posibilidad de fallos de caché paracódigo secuencial.

Técnica: Hacer coincidir la primera instrucción de unbloque básico con la primera palabra de una línea decaché.

cbed – Arquitectura de Computadores – Grupo ARCOS – http://www.arcos.inf.uc3m.es 30/44

Page 31: Optimizaciones avanzadas de memoria caché - Arquitectura ...ocw.uc3m.es/ingenieria-informatica/arquitectura-de... · Mezclas en búfer de escritura Búfer de escritura Un búfer

Optimizaciones avanzadas de memoria caché

Optimizaciones avanzadas

Optimizaciones del compilador

Linearización de saltos

Objetivo: Reducir los fallos de caché debidos a saltoscondicionales.

Técnica: Si el compilador sabe que es probable que setome un salto, puede cambiar el sentido de la condición enintercambiar los bloques básicos de las dos alternativas.

Algunos compiladores definen extensiones para dar pistasal compilador.Ejemplo: gcc (__likely__).

cbed – Arquitectura de Computadores – Grupo ARCOS – http://www.arcos.inf.uc3m.es 31/44

Page 32: Optimizaciones avanzadas de memoria caché - Arquitectura ...ocw.uc3m.es/ingenieria-informatica/arquitectura-de... · Mezclas en búfer de escritura Búfer de escritura Un búfer

Optimizaciones avanzadas de memoria caché

Optimizaciones avanzadas

Optimizaciones del compilador

Fusión de arrays

Arrays paralelos

vector<int> key;vector<int> val ;

for ( int i=0;i<max;++i) {cout << key[i ] << ", "

<< val [ i ] << endl;}

Array fusionado

struct entry {int key;int val ;

};vector<entry> v;

for ( int i=0;i<max;++i) {cout << v[ i ]. key << ", "

<< v[ i ]. val << endl;}

Reducción de conflictos.Mejora de localidad espacial.

cbed – Arquitectura de Computadores – Grupo ARCOS – http://www.arcos.inf.uc3m.es 32/44

Page 33: Optimizaciones avanzadas de memoria caché - Arquitectura ...ocw.uc3m.es/ingenieria-informatica/arquitectura-de... · Mezclas en búfer de escritura Búfer de escritura Un búfer

Optimizaciones avanzadas de memoria caché

Optimizaciones avanzadas

Optimizaciones del compilador

Intercambio de bucles

Acceso con saltos

for ( int j=0; j<100; ++j) {for ( int i=0; i<5000; ++i) {

v[ i ][ j ] = k ∗ v[ i ][ j ];}

}

Accesos secuenciales

for ( int i=0; i<5000; ++i) {for ( int j=0; j<100; ++j) {

v[ i ][ j ] = k ∗ v[ i ][ j ];}

}

Objetivo: Mejorar localidad espacial.Dependiente del modelo de almacenamiento vinculado allenguaje de programación.

FOTRAN versus C.

cbed – Arquitectura de Computadores – Grupo ARCOS – http://www.arcos.inf.uc3m.es 33/44

Page 34: Optimizaciones avanzadas de memoria caché - Arquitectura ...ocw.uc3m.es/ingenieria-informatica/arquitectura-de... · Mezclas en búfer de escritura Búfer de escritura Un búfer

Optimizaciones avanzadas de memoria caché

Optimizaciones avanzadas

Optimizaciones del compilador

Fusión de bucles

Bucles separados

for ( int i=0; i<rows; ++i) {for ( int j=0; j<cols; ++j) {

a[ i ][ j ] = b[ i ][ j ] ∗ c[ i ][ j ];}

}for ( int i=0; i<rows; ++i) {

for ( int j=0; j<cols; ++j) {d[ i ][ j ] = a[ i ][ j ] + c[ i ][ j ];

}}

Bucles fusionados

for ( int i=0; i<rows; ++i) {for ( int j=0; j<cols; ++j) {

a[ i ][ j ] = b[ i ][ j ] ∗ c[ i ][ j ];d[ i ][ j ] = a[ i ][ j ] + c[ i ][ j ];

}}

Objetivo: Mejorar localidad temporal.Cuidado: Puede reducir localidad espacial.

cbed – Arquitectura de Computadores – Grupo ARCOS – http://www.arcos.inf.uc3m.es 34/44

Page 35: Optimizaciones avanzadas de memoria caché - Arquitectura ...ocw.uc3m.es/ingenieria-informatica/arquitectura-de... · Mezclas en búfer de escritura Búfer de escritura Un búfer

Optimizaciones avanzadas de memoria caché

Optimizaciones avanzadas

Optimizaciones del compilador

Acceso por bloques

Producto original

for ( int i=0; i<size; ++i) {for ( int j=0; j<size; ++j) {

r=0;for ( int k=0; k<size; ++k) {

r+= b[ i ][ k] ∗ c[k ][ j ];}a[ i ][ j ] = r ;

}}

Producto con acceso por bloques

for (bj=0; bj<size; bj+=bsize) {for (bk=0; bk<size; bk +=bs) {

for ( i=0; i<size; ++i) {for ( j=bj; j<min(bj+bsize,size); ++j) {

r=0;for (k=bk;k<min(bk+bsize,size); ++k) {

r +=b[i ][ k] ∗ c[k ][ j ];}a[ i ][ j ] += r;

}}

}}

bsize: Factor de bloque.

cbed – Arquitectura de Computadores – Grupo ARCOS – http://www.arcos.inf.uc3m.es 35/44

Page 36: Optimizaciones avanzadas de memoria caché - Arquitectura ...ocw.uc3m.es/ingenieria-informatica/arquitectura-de... · Mezclas en búfer de escritura Búfer de escritura Un búfer

Optimizaciones avanzadas de memoria caché

Optimizaciones avanzadas

Lectura adelantada hardware

2 Optimizaciones avanzadasCachés pequeñas y simplesPredicción de víaAcceso segmentado a la cachéCachés no bloqueantesCachés multi-bancoPalabra crítica primero y reinicio tempranoMezclas en búfer de escrituraOptimizaciones del compiladorLectura adelantada hardware

cbed – Arquitectura de Computadores – Grupo ARCOS – http://www.arcos.inf.uc3m.es 36/44

Page 37: Optimizaciones avanzadas de memoria caché - Arquitectura ...ocw.uc3m.es/ingenieria-informatica/arquitectura-de... · Mezclas en búfer de escritura Búfer de escritura Un búfer

Optimizaciones avanzadas de memoria caché

Optimizaciones avanzadas

Lectura adelantada hardware

Lectura adelantada de instrucciones

Observación: Las instrucciones presentan alta localidadespacial.

Instruction prefetching: Lectura adelantada deinstrucciones.

Lectura de dos bloques en caso de fallo.Bloque que provoca el fallo.Bloque siguiente.

Ubicación:Bloque que provoca el fallo→ caché de instrucciones.Bloque siguiente→ búfer de instrucciones.

cbed – Arquitectura de Computadores – Grupo ARCOS – http://www.arcos.inf.uc3m.es 37/44

Page 38: Optimizaciones avanzadas de memoria caché - Arquitectura ...ocw.uc3m.es/ingenieria-informatica/arquitectura-de... · Mezclas en búfer de escritura Búfer de escritura Un búfer

Optimizaciones avanzadas de memoria caché

Optimizaciones avanzadas

Lectura adelantada hardware

Lectura adelantada de datos

Ejemplo: Pentium 4.

Data prefetching: Permite lectura adelantada de páginasde 4KB a caché L2.

Se invoca lectura adelantada si:2 fallos en L2 debidos a una misma página.Distancia entre fallos menor que 256 bytes.

cbed – Arquitectura de Computadores – Grupo ARCOS – http://www.arcos.inf.uc3m.es 38/44

Page 39: Optimizaciones avanzadas de memoria caché - Arquitectura ...ocw.uc3m.es/ingenieria-informatica/arquitectura-de... · Mezclas en búfer de escritura Búfer de escritura Un búfer

Optimizaciones avanzadas de memoria caché

Conclusión

1 Introducción

2 Optimizaciones avanzadas

3 Conclusión

cbed – Arquitectura de Computadores – Grupo ARCOS – http://www.arcos.inf.uc3m.es 39/44

Page 40: Optimizaciones avanzadas de memoria caché - Arquitectura ...ocw.uc3m.es/ingenieria-informatica/arquitectura-de... · Mezclas en búfer de escritura Búfer de escritura Un búfer

Optimizaciones avanzadas de memoria caché

Conclusión

Resumen (I)

Cachés pequeñas y simples:Mejora: Tiempo de acierto.Empeora: Tasa de fallos.Complejidad: Muy baja.Observación: Ampliamente usada.

Predicción de vía:Mejora: Tiempo de acierto.Complejidad: Baja.Observación: Usada en Pentium 4.

Acceso segmentado a la caché:Mejora: Tiempo de acierto.Empeora: Ancho de banda.Complejidad: Baja.Observación: Ampliamente usada.

cbed – Arquitectura de Computadores – Grupo ARCOS – http://www.arcos.inf.uc3m.es 40/44

Page 41: Optimizaciones avanzadas de memoria caché - Arquitectura ...ocw.uc3m.es/ingenieria-informatica/arquitectura-de... · Mezclas en búfer de escritura Búfer de escritura Un búfer

Optimizaciones avanzadas de memoria caché

Conclusión

Resumen (II)

Cachés no bloqueantes:Mejora: Ancho de banda y penalización por fallo.Complejidad: Muy alta.Observación: Ampliamente usada.

Cachés multi-banco:Mejora: Ancho de banda.Complejidad: Baja.Observación: Usada en L2 de Intel i7 y Cortex A8.

Palabra crítica primero y reinicio temprano:Mejora: Penalización por fallo.Complejidad: AltaObservación: Ampliamente usada.

cbed – Arquitectura de Computadores – Grupo ARCOS – http://www.arcos.inf.uc3m.es 41/44

Page 42: Optimizaciones avanzadas de memoria caché - Arquitectura ...ocw.uc3m.es/ingenieria-informatica/arquitectura-de... · Mezclas en búfer de escritura Búfer de escritura Un búfer

Optimizaciones avanzadas de memoria caché

Conclusión

Resumen (III)

Mezclas en búfer de escritura:Mejora: Penalización por fallo.Complejidad: Baja.Observación: Ampliamente usada.

Optimizaciones del compilador:Mejora: Tasa de fallos.Complejidad: Baja para HW.Observación: El desafío está en el software.

Lectura adelantada hardware:Mejora: Penalización por fallo y tasa de fallos.Complejidad: Muy alta.Observación: Más común para instrucciones que datos.

cbed – Arquitectura de Computadores – Grupo ARCOS – http://www.arcos.inf.uc3m.es 42/44

Page 43: Optimizaciones avanzadas de memoria caché - Arquitectura ...ocw.uc3m.es/ingenieria-informatica/arquitectura-de... · Mezclas en búfer de escritura Búfer de escritura Un búfer

Optimizaciones avanzadas de memoria caché

Conclusión

Referencias

Computer Architecture. A Quantitative Approach5th Ed.Hennessy and Patterson.Secciones: 2.1, 2.2.

Ejercicios recomendados:2.1, 2.2, 2.3, 2.8, 2.9, 2.10, 2.11, 2.12

cbed – Arquitectura de Computadores – Grupo ARCOS – http://www.arcos.inf.uc3m.es 43/44

Page 44: Optimizaciones avanzadas de memoria caché - Arquitectura ...ocw.uc3m.es/ingenieria-informatica/arquitectura-de... · Mezclas en búfer de escritura Búfer de escritura Un búfer

Optimizaciones avanzadas de memoria caché

Conclusión

Optimizaciones avanzadas de memoriacaché

Arquitectura de Computadores

J. Daniel García Sánchez (coordinador)David Expósito Singh

Javier García BlasÓscar Pérez Alonso

J. Manuel Pérez Lobato

Grupo ARCOSDepartamento de Informática

Universidad Carlos III de Madrid

cbed – Arquitectura de Computadores – Grupo ARCOS – http://www.arcos.inf.uc3m.es 44/44