Teoria memorias cache

60
Tema 5 (II) Memoria caché Grupo ARCOS Estructura de Computadores Grado en Ingeniería Informática Universidad Carlos III de Madrid

Transcript of Teoria memorias cache

Page 1: Teoria memorias cache

Tema 5 (II)Memoria caché

Grupo ARCOS

Estructura de Computadores

Grado en Ingeniería Informática

Universidad Carlos III de Madrid

Page 2: Teoria memorias cache

Contenidos

1. Memoria caché� Introducción:

� Acceso a bloque y principio de proximidad

� Funcionamiento

Estructura de Computadores

ARCOS @ UC3M 2010-20112

� Funcionamiento

� Organización

� Estructura de la memoria caché

� Diseño de la memoria cache

Page 3: Teoria memorias cache

¡ATENCIÓN!

� Estas transparencias son un guión para la clase

� Los libros dados en la bibliografía junto con lo explicado en clase representa el material de estudio

Estructura de Computadores

3

explicado en clase representa el material de estudio para el temario de la asignatura

� Para la preparación de los exámenes se ha de utilizar todo el material de estudios

ARCOS @ UC3M 2010-2011

Page 4: Teoria memorias cache

Contenidos

1. Memoria cache� Introducción:

� Acceso a bloque y principio de proximidad

� Funcionamiento

Estructura de Computadores

ARCOS @ UC3M 2010-20114

� Funcionamiento

� Organización

� Estructura de la memoria caché

� Diseño de la memoria cache

Page 5: Teoria memorias cache

Característica de la memoria principal

� Se premia el acceso a posiciones consecutivas de memoria

� Ejemplo 1: acceder a 5 posiciones de memoria individuales

Estructura de Computadores

ARCOS @ UC3M 2010-20115

� Ejemplo 2: acceder a 5 posiciones de memoria consecutivas

Page 6: Teoria memorias cache

Característica de los accesos a memoria

� “Principio de proximidad de referencias”:

En el curso de la ejecución de un programa, las referencias a memoria tienden a estaragrupadas por:

.data

vector: .space 4*1024

Estructura de Computadores

ARCOS @ UC3M 2010-20116

� proximidad espacial� Secuencia de instrucciones

� proximidad temporal� Bucles

vector: .space 4*1024

.text

main: li $t0 0

la $t1 vector

b2: bge $t0 1024 finb2

mult $t2 $t0 4

add $t2 $t1 $t2

sw $t0 ($t2)

add $t0 $t0 1

b b2

finb2: jr $ra

Page 7: Teoria memorias cache

Principios de proximidad

� Proximidad espacial

Cuando un programa accede a una determinada posición de memoria, es muy probable que accesos futuros se realicen en posiciones próximas de memoria

Estructura de Computadores

ARCOS @ UC3M 2010-20117

� Proximidad temporal

Cuando un programa accede a una determinada posición de memoria, es muy probable que esa posición vuelva a ser accedida por el mismo programa en un futuro

Page 8: Teoria memorias cache

Objetivo: aprovechar los accesos contiguos

� Si cuando accedo a una posición de memoriatransfiero sólo los datos de esa posición, no aprovecho los posibles accesos contiguos.

Estructura de Computadores

ARCOS @ UC3M 2010-20118

CPUMemoria

principal

Page 9: Teoria memorias cache

Objetivo: aprovechar los accesos contiguos

� Si cuando se accede a una posición de memoriase transfiere esos datos y los contiguos, síaprovecho los accesos contiguos

Estructura de Computadores

ARCOS @ UC3M 2010-20119

CPUMemoria

principal

Page 10: Teoria memorias cache

Objetivo: aprovechar los accesos contiguos

� Si cuando se accede a una posición de memoriase transfiere esos datos y los contiguos, síaprovecho los accesos contiguos� Transfiero de la memoria principal un bloque de palabras� ¿Dónde almaceno las palabras del bloque?

Estructura de Computadores

ARCOS @ UC3M 2010-201110

� ¿Dónde almaceno las palabras del bloque?

CPUMemoria

principal

Page 11: Teoria memorias cache

Memoria Cache

� Cantidad pequeña de memoria rápida� Está entre la memoria principal normal y la CPU

transferencia transferencia

Estructura de Computadores

ARCOS @ UC3M 2010-201111

CPU cacheMemoria

principal

transferencia

de palabras

transferencia

de bloques

Page 12: Teoria memorias cache

Contenidos

1. Memoria cache� Introducción:

� Acceso a bloque y principio de proximidad

� Funcionamiento

Estructura de Computadores

ARCOS @ UC3M 2010-201112

� Funcionamiento

� Organización

� Estructura de la memoria caché

� Diseño de la memoria cache

Page 13: Teoria memorias cache

lw $t0 ($a0)

li $t1 4

Funcionamiento general

1. La CPU solicita contenidos de una posición de memoria.

2. La cache comprueba si ya están los datos de esta posición:

CPU cache Memoria

principal

2

1

3.A.1

3.B.1

3.B.13.B.2

Estructura de Computadores

ARCOS @ UC3M 2010-201113

2. La cache comprueba si ya están los datos de esta posición:

� Si está (acierto de caché),

3.A.1 Se la sirve a la CPU desde la cache (rápidamente).

� Si no está (fallo de caché),

3.B.1 La cache transfiere desde memoria principal el bloque asociado a la posición.

3.B.2 Después la cache entrega los datos pedidos a la CPU.

Page 14: Teoria memorias cache

1. La CPU solicita contenidos de una posición de memoria.

2. La cache comprueba si ya están los datos de esta posición:

Tm = Pca * Tca + (1-Pca) * (Tmp + Tca) ~

Pca * Tca + (1-Pca) * (Tmp)

Rendimiento general

Estructura de Computadores

2. La cache comprueba si ya están los datos de esta posición:

� Si está (acierto de caché),

3.A.1 Se la sirve a la CPU desde la cache (rápidamente).

� Si no está (fallo de caché),

3.B.1 La cache transfiere desde memoria principal el bloque asociado a la posición.

3.B.2 Después la cache entrega los datos pedidos a la CPU.

ARCOS @ UC3M 2010-201114

Page 15: Teoria memorias cache

1. Tca: Tiempo de acceso a caché -> 10 ns

120

Tm = Pca * Tca + (1-Pca) * (Tmp + Tca) ~

Pca * Tca + (1-Pca) * (Tmp)

Ejemplo

Estructura de Computadores

2. Tmp: Tiempo de acceso a memoria principal -> 120 ns

3. Pca: Probabilidad de estar en caché -> X = 0.1, 0.2, …, 0.9, 1.0

10%, 20%, …, 90%, 100%

ARCOS @ UC3M 2010-201115

Page 16: Teoria memorias cache

1. Tca: Tiempo de acceso a caché -> 10 ns

120

Tm = Pca * Tca + (1-Pca) * (Tmp + Tca) ~

Pca * Tca + (1-Pca) * (Tmp)

Ejemplo

Tm = X * 10 + (1-X) * (120 + 10) ~

Tm = X * 10 + (1-X) * (120) = 120-110*X

Estructura de Computadores

2. Tmp: Tiempo de acceso a memoria principal -> 120 ns

3. Pca: Probabilidad de estar en caché -> X = 0.1, 0.2, …, 0.9, 1.0

10%, 20%, …, 90%, 100%

ARCOS @ UC3M 2010-201116

Page 17: Teoria memorias cache

Tm = Pca * Tca + (1-Pca) * (Tmp + Tca) ~

Pca * Tca + (1-Pca) * (Tmp)

Ejemplo

Tm = X * 10 + (1-X) * (120 + 10) ~

Tm = X * 10 + (1-X) * (120) = 120-110*X

100

120

140

Tie

mpo m

edio

de a

cceso

a m

em

oria (ns)

Estructura de Computadores

ARCOS @ UC3M 2010-201117

0

20

40

60

80

100

0 10 20 30 40 50 60 70 80 90 100

Tie

mpo m

edio

de a

cceso

a m

em

oria (ns)

Probabilidad de estar en cache (%)

Page 18: Teoria memorias cache

.data

vector: .space 4*1024

.text

.globl main

main: li $t0 0

Ejercicio

� Datos:� Tmp: 120 ns

� Tiempos de acceso: ¿?

int vector[1024];

int main ( void ) {

int i;

for (i = 0; i<1024; i++)

vector[i] = i;

}

Estructura de Computadores

main: li $t0 0

la $t1 vector

b2: bge $t0 1024 finb2

mult $t2 $t0 4

add $t2 $t1 $t2

sw $t0 ($t2)

add $t0 $t0 1

b b2

finb2: jr $ra

ARCOS @ UC3M 2010-201118

Page 19: Teoria memorias cache

.data

vector: .space 4*1024

.text

.globl main

main: li $t0 0

Ejercicio (sol.)

� Datos:� Tmp: 120 ns

� Tiempos de acceso:� Por datos:

int vector[1024];

int main ( void ) {

int i;

for (i = 0; i<1024; i++)

vector[i] = i;

}

Estructura de Computadores

main: li $t0 0

la $t1 vector

b2: bge $t0 1024 finb2

mult $t2 $t0 4

add $t2 $t1 $t2

sw $t0 ($t2)

add $t0 $t0 1

b b2

finb2: jr $ra

ARCOS @ UC3M 2010-201119

� Por datos:� Na=1.024

� T=1.024*120=122.880

� Por instrucciones:� Na=2+6*1.024+2=6.148

� T=6.148*120=737.760

T. sin caché = 860.640 ns

Page 20: Teoria memorias cache

Ejercicio

� Datos:� Tca: 10 ns� Tmp: 120 ns� Tamaño línea: 8 palabras

� Tiempos de acceso: ¿?

.data

vector: .space 4*1024

.text

.globl main

main: li $t0 0

int vector[1024];

int main ( void ) {

int i;

for (i = 0; i<1024; i++)

vector[i] = i;

}

Estructura de Computadores

ARCOS @ UC3M 2010-201120

main: li $t0 0

la $t1 vector

b2: bge $t0 1024 finb2

mult $t2 $t0 4

add $t2 $t1 $t2

sw $t0 ($t2)

add $t0 $t0 1

b b2

finb2: jr $ra

Page 21: Teoria memorias cache

Ejercicio (sol.)

� Datos:� Tca: 10 ns� Tmp: 120 ns� Tamaño línea: 8 palabras

� Tiempos de acceso:� Por instrucciones:

Na=2+6*1.024+1=6.148

.data

vector: .space 4*1024

.text

.globl main

main: li $t0 0

int vector[1024];

int main ( void ) {

int i;

for (i = 0; i<1024; i++)

vector[i] = i;

}

Estructura de Computadores

ARCOS @ UC3M 2010-201121

� Na=2+6*1.024+1=6.148� Primer acceso: 120 ns� Siguientes 1+6*1.024: 10 ns� Último acceso: 120 ns

� T=120+6.145*10+120=61.690� Por datos:

� Na=1.024� Primer acceso: 120 ns� Siguientes 7 pal.: 10 ns

� T=1*128*120 + 7*128*10=33.280T. sin caché = 860.640 ns

T. con caché = 94.970 ns

Una mejora de casi x9 en este ejemplo

main: li $t0 0

la $t1 vector

b2: bge $t0 1024 finb2

mult $t2 $t0 4

add $t2 $t1 $t2

sw $t0 ($t2)

add $t0 $t0 1

b b2

finb2: jr $ra

Page 22: Teoria memorias cache

Contenidos

1. Memoria cache� Introducción:

� Acceso a bloque y principio de proximidad

� Funcionamiento

Estructura de Computadores

ARCOS @ UC3M 2010-201122

� Funcionamiento

� Organización

� Estructura de la memoria caché

� Diseño de la memoria cache

Page 23: Teoria memorias cache

Organización de la M.C.

� En la memoria caché, los datos están organizados en bloques denominados líneas de caché

� En la memoria principal, los datos están organizados en bloques

� El tamaño del bloque de M.P. debe coincidir con el tamaño de la línea de M.C.

Estructura de Computadores

ARCOS @ UC3M 2010-201123

de la línea de M.C.

� Cada línea de M.C. almacena un número determinado de bytes consecutivos de memoria (Nbytes)

� La unidad de transferencia entre la M.P. y la memoria caché es el bloque. Entre la M.C. y el procesador es la palabra

Page 24: Teoria memorias cache

La memoria caché

� Se construye con tecnología SRAM� Integrada en el mismo procesador.

� Más rápida y más cara que la memoria DRAM.

� Mantiene una copia de partes de la memoria principal

Estructura de Computadores

ARCOS @ UC3M 2010-201124

ProcesadorMemoria

Principal

Memoria

caché

Direcciones Direcciones

Datos Datos

Page 25: Teoria memorias cache

Tecnologías de RAM

� RAM dinámica (DRAM)� Almacena bits como carga en condensadores.� Tiende a descargarse: necesita refrescos periódicos.

� Ventaja: construcción más simple, más almacenamiento, más económica

� Inconveniente: necesita circuitería de refresco, más lenta.

� Tiempo de acceso: 50-100 ns.

Usada en memoria principal

Estructura de Computadores

ARCOS @ UC3M 2010-201125

� Tiempo de acceso: 50-100 ns.

� RAM estática (SRAM)� Almacena bits como interruptores en on y off.� Tiende a no descargarse: no necesita refresco.

� Ventaja: No necesita circuitería de refresco, más rápida.

� Inconveniente: Construcción compleja, menos almacenamiento, más cara.

� Tiempo de acceso: 1-10 ns.

Usada en la memoria caché

Page 26: Teoria memorias cache

Memoria Cache: niveles

� Es habitual encontrar tres niveles:

� L1 o nivel 1:

� Caché interna: la más cercana a la CPU

� Tamaño pequeño (8KB-128KB) y máxima velocidad

L2 o nivel 2:

Estructura de Computadores

ARCOS @ UC3M 2010-201126

� L2 o nivel 2:

� Cache externa: entre L1 y L3 (o entre L1 y M.Principal)

� Tamaño mediano (256KB – 4MB) y menor velocidad que L1

� L3 o nivel 3:

� último nivel antes de M. Principal

� Tamaño mayor y menor velocidad que L2

Page 27: Teoria memorias cache

Ejemplo

� Computador:� Tiempo de acceso a caché: 4 ns

� Tiempo de acceso a bloque de MP: 120 ns.

� Si se tiene una tasa de aciertos del 90%. ¿Cuál es el tiempo medio de acceso?

Estructura de Computadores

ARCOS @ UC3M 2010-201127

tiempo medio de acceso?

� Tasas de acierto necesarias para que el tiempo medio de acceso sea menor de 10 ns y 5 ns.

Page 28: Teoria memorias cache

Ejemplo: AMD quad-core

Estructura de Computadores

ARCOS @ UC3M 2010-201128

Page 29: Teoria memorias cache

Ejemplo: AMD quad-core

Estructura de Computadores

ARCOS @ UC3M 2010-201129

Page 30: Teoria memorias cache

Ejemplo: Intel Core i7

Estructura de Computadores

ARCOS @ UC3M 2010-201130

Page 31: Teoria memorias cache

� La memoria principal lógicamente se divide en bloques de igual tamaño� 1 bloque = k palabras.

� Ejercicio: ¿Cuantos

0481216

Bloque 1

Bloque 2

Organización de la M.P.

31

Ejercicio: ¿Cuantos bloques de 4 palabras hay en una memoria de 1GB?� Solución:

2^30 B / 16 B = 230-4 B = 2^26 B = 64 megabloques ≈ 64 millones

ARCOS @ UC3M 2010-2011Estructura de Computadores

Bloque 3

Bloque 4

Bloque n

Page 32: Teoria memorias cache

Acceso a una palabra de la M.P.

� Ejemplo:� Computador de 32 bits

� Memoria direccionada por bytes

� Acceso a memorial principal por palabras

04812

1620

24

2832

36

40

32

principal por palabras

� Acceso a la palabra con dirección 0x00000064

ARCOS @ UC3M 2010-2011Estructura de Computadores

Palabra de 32 bits

40444852

5660

64

6872

76

Page 33: Teoria memorias cache

Acceso a una palabra de la M.P.

� Ejemplo:� Computador de 32 bits

� Memoria direccionada por bytes

� Acceso a memorial principal por palabras

04812

1620

24

2832

36

40

33

principal por palabras

� Acceso a la palabra con dirección 0x00000064

ARCOS @ UC3M 2010-2011Estructura de Computadores

Palabra de 32 bits

40444852

5660

64

6872

76

00000000000000000000000001000000

Page 34: Teoria memorias cache

Contenidos

1. Memoria cache� Introducción:

� Acceso a bloque y principio de proximidad

� Funcionamiento

Estructura de Computadores

ARCOS @ UC3M 2010-201134

� Funcionamiento

� Organización

� Estructura de la memoria caché

� Diseño de la memoria cache

Page 35: Teoria memorias cache

Expresiones utilizadas� NB � Número de bloques de la MP

� nb � número de bloque (identificador) asignado de la MP

� NL �Número de líneas de la caché

� nl � Número de línea de caché (identificador) asignada

� NC � Número de conjuntos de la caché (asociativa por conjuntos)

� nc � Número de conjunto asignado de la caché

Estructura de Computadores

ARCOS @ UC3M 2010-201135

� nc � Número de conjunto asignado de la caché

� Nbytes � Número de bytes contiguos. Representa el tamaño de un bloque de MP y una línea de memoria caché

� Acierto de caché � el dato se encuentra en la memoria caché

� Fallo de caché � el dato NO se encuentra en la memoria caché y ha de accederse a M.P. (o al nivel de caché superior)

Page 36: Teoria memorias cache

Estructura y diseño de la cache

214 líneas de 4 bytes

222 bloques de 4 bytes

� Se divide la M.P. y la M.C. en bloques de igual tamaño

� A cada bloque de M.P. le corresponderá una línea de M.C. (bloque en caché)

Estructura de Computadores

ARCOS @ UC3M 2010-201136

M.P.

M.C.64 KB

16 MB

4 bytes

Page 37: Teoria memorias cache

Estructura y diseño de la cache

214 líneas de 4 bytes

222 bloques de 4 bytes

� Se divide la M.P. y la M.C. en bloques de igual tamaño

� A cada bloque de M.P. le corresponderá una línea de M.C. (bloque en caché)

� En el diseño se determina:

Estructura de Computadores

ARCOS @ UC3M 2010-201137

M.P.

M.C.64 KB

16 MB

4 bytes � En el diseño se determina:

� Tamaño� Función de correspondencia� Algoritmo de sustitución� Política de escritura

� Es habitual distintos diseñospara la caché� L1, L2, ...

Page 38: Teoria memorias cache

Diseño de la caché

1. Tamaño� Determina el tamaño de las líneas y de los bloques para hacer eficiente

el uso de la memoria caché

2. Función de correspondencia:� Asignación de líneas de caché a bloques de memoria principal

� Identifica unívocamente cada uno de los bloques almacenados en la memoria

Estructura de Computadores

ARCOS @ UC3M 2010-201138

� Identifica unívocamente cada uno de los bloques almacenados en la memoriacaché

3. Algoritmo de sustitución� Determina la línea de caché a reemplazar por un nuevo bloque de memoria

principal

4. Política de escritura� Coherencia entre la M.C. y la M.P.

Page 39: Teoria memorias cache

Diseño de la cache

� Tamaño� El tamaño total y de los bloques en los que se organiza

� Por estudios sobre códigos muy usados se determinaM.P.

M.C.

Estructura de Computadores

ARCOS @ UC3M 2010-201139

Page 40: Teoria memorias cache

Diseño de la cache

� Función de correspondencia� ¿Dónde está en caché los datos de una posición de M.P.?

� Tres tipos de funciones de correspondencia:� Directa

� Asociativa

� Asociativa por conjuntos

M.P.

M.C.

Estructura de Computadores

ARCOS @ UC3M 2010-201140

M.P.16 MB

212 conjuntos de 4 líneas de 4

bytes

222 bloques de 4 bytes

M.C.

64 KB

palabra de 4 bytes

ecto0

cto1

M.P.

M.C.64 KB

16 MB

214 líneas de 4 bytes

222 bloques de 4 bytes

palabra de 4 bytes

e

M.P.16 MB

214 líneas de 4 bytes

222 bloques de 4 bytes

M.C.64 KB

palabra de 4 bytes

e

Page 41: Teoria memorias cache

� La función de correspondencia directa asocia una única línea de caché a cada bloque de memoria principal:

donde nl es el número de línea de la caché y nb es el número de bloque de MP

Función de correspondencia directa

nl = nb mod NL

Estructura de Computadores

� Distribución de bloques de manera cíclica

� Dada una dirección de n bits:

ARCOS @ UC3M 2010-201141

Dirección n bits

log2 (Nbytes) =

Desplazamientom bits restantes =

n – log2(NL) – log2(Nbytes)

etiqueta log2 (NL) = nl

Número de línea

etiqueta línea Byte

Page 42: Teoria memorias cache

Función de correspondencia directa

M.P.

(2)

M.C.Etiqueta Líneas

Estructura de Computadores

ARCOS @ UC3M 2010-201142

etiqueta línea Byte

Comparador(2)

(2)

(1)

acierto (3)

Fallo (3)

Page 43: Teoria memorias cache

Ejemplo: correspondencia directa

� Directa:� Cada bloque de M.P. le corresponde una

sola línea de caché (siempre la misma)

� La dirección de M.P. la determina:

214 líneas de 4 bytes

222 bloques de 4 bytes

palabra de 4 bytes

22-14 14 2

etiqueta línea palabra

e

Estructura de Computadores

ARCOS @ UC3M 2010-201143

� Si en ‘línea’ está ‘etiqueta’, entoncesestá el bloque en caché

� Ej: línea caché bloque de M.P. asoc.0 0, 214, 2* 214 , 3*…1 1, 214 +1, …

� [V] simple, poco costosa[I] mal patrón acceso → ↑ fallos M.P.

M.C.64 KB

16 MB

Page 44: Teoria memorias cache

� La función de correspondencia totalmente asociativa permite asociar un bloque de memoria principal en cualquier línea de la memoria caché

� Dada una dirección de n bits:

Función de correspondencia asociativa

Estructura de Computadores

ARCOS @ UC3M 2010-201144

Dirección n bits

log2 (Nbytes) =

Desplazamiento

n – log2(Nbytes)

etiqueta

etiqueta Byte

Page 45: Teoria memorias cache

Función de correspondencia asociativa

M.P.

M.C.Etiqueta Líneas

Estructura de Computadores

ARCOS @ UC3M 2010-201145

etiqueta Byte

Comparador(1)

acierto (2)

Fallo (2)

Page 46: Teoria memorias cache

Ejemplo: correspondencia asociativa

� Asociativa:� Un bloque de M.P. puede cargarse en

cualquier línea de caché

� La dir. de M.P. se interpreta como:214 líneas de 4 bytes

222 bloques de 4 bytes

palabra de 4 bytes

2

etiqueta palabra

22e

Estructura de Computadores

ARCOS @ UC3M 2010-201146

� Si hay un línea con ‘etiqueta’ en la caché, está allí el bloque

� [V] indep. del patrón de acceso[I] búsqueda costosa

M.P.16 MB

M.C.64 KB

Page 47: Teoria memorias cache

� La función de correspondencia asociativa por conjuntos permite asociar un bloque de MP a un único conjunto de M.C.

donde nc es el número de conjunto y nb es el número de bloque de MP

Función de correspondencia asociativa por conjuntos

nc = nb mod NC

Estructura de Computadores

donde nc es el número de conjunto y nb es el número de bloque de MP

� Dada una dirección de n bits:

ARCOS @ UC3M 2010-201147

Dirección n bits

log2 (Nbytes) =

Desplazamiento

m bits restantes =

n – log2(Nc) – log2(Nbytes)

etiqueta log2 (NC) = nC

Número de conjunto

etiqueta conjunto Byte

Page 48: Teoria memorias cache

Función de correspondencia asociativa por conjuntos

M.P.

(2)

M.C.Etiqueta Líneas

Conjunto

Estructura de Computadores

ARCOS @ UC3M 2010-201148

etiqueta Conjunto Byte

Comparador(2)

(2)

(1)

acierto (3)

Fallo (3)

Page 49: Teoria memorias cache

Ejemplo: correspondencia asociativa por conuntos

� Asociativa por conjuntos:� Un bloque de M.P. puede cargarse en

cualquier línea de caché (vía) de un conjunto determinado

� La dir. de M.P. se interpreta como:

212 conjuntos de 4 líneas de 4 bytes

222 bloques de 4 bytes

palabra de 4 bytes

e2

etiqueta palabra

1210

conjunto

cto0

Estructura de Computadores

ARCOS @ UC3M 2010-201149

� Si hay un línea con ‘etiqueta’ en el conjunto ‘conjunto’, está allí el bloque en caché

� [V] lo mejor de directa y asociativa[I] búsqueda menos costosa

M.P.16 MB

M.C.64 KB

etiqueta palabraconjuntocto1

Page 50: Teoria memorias cache

Diseño de la cache

� Algoritmo de sustitución� Si la caché está llena y hay un fallo, ¿Qué bloque se quita?

� Políticas de reemplazo:� LRU (Least recently Used)

� FIFO (First in First out)

� LFU (Least Frequently Used)

M.P.

M.C.

Estructura de Computadores

ARCOS @ UC3M 2010-201150

� LFU (Least Frequently Used)

� Aleatorio

Page 51: Teoria memorias cache

Algoritmo de sustitución

� Correspondencia directa:� No hay elección posible

� Para cada bloque/palabra solo hay una posible línea

� Correspondencia asociativa y asociativa por conjuntos

214 líneas de 4 bytes

222 bloques de 4 bytes

palabra de 4 bytes

e

Estructura de Computadores

ARCOS @ UC3M 2010-201151

asociativa por conjuntos� Algoritmos implementados en hardware

para buscar velocidad y mínimo número de fallos en cache

� Elección de bloque/palabra según:� LRU: utilizado menos recientemente

� FIFO: primero en entrar, primero en salir

� LFU: utilizado menos frecuéntenme

� Aleatoria: una línea al azar M.P.

M.C.64 KB

16 MB

Page 52: Teoria memorias cache

Diseño de la cache

� Política de escritura� La información en la memoria caché se encuentra replicada

� Mantener la cocherencia entre la información en memoria caché y memoria principal

� Ej.: write-back (velocidad) o write-through (coherencia -multicore, I/O DMA, etc.-)

M.P.

M.C.

Estructura de Computadores

ARCOS @ UC3M 2010-201152

Page 53: Teoria memorias cache

Política de escritura

� Escritura inmediata:� La escritura se hace tanto en M.P. como

en cache

� [V] Coherencia

� [I] Mucho tráfico

� Escritura diferida:

e

Estructura de Computadores

ARCOS @ UC3M 2010-201153

� Escritura diferida:� La escritura solo se hace en la caché,

indicando en un bit que no está volcada la línea en M.P.

� Al sustituir el bloque (o cuando ↓ tráfico con M.P.) se escribe en M.P.

� [V] Velocidad

� [I] Coherencia + inconsistencia M.P.

M.C.

Page 54: Teoria memorias cache

Política de escritura

� Ej: CPU multicore con caché por core� Las escrituras en caché solo son vistas

por un core

� Si cada core escribe sobre una misma palabra, ¿cúal es el resultado final?

� Ej: módulo de E/S con acceso directo a

e

M.C.1

Estructura de Computadores

ARCOS @ UC3M 2010-201154

� Ej: módulo de E/S con acceso directo a M.P.� Actualización por DMA puede no ser

coherente

� Porcentaje de referencias a memoria para escritura del orden del 15%.

M.P.

M.C.1e

M.C.2

Page 55: Teoria memorias cache

Ejercicio (1/2)

� Considere un computador de 32 bits con las siguientes características:

� Memoria física instalada de 256 MB con un tiempo de acceso de 70 ns.

Direccionamiento de la memoria por bytes.

Estructura de Computadores

ARCOS @ UC3M 2010-201155

� Direccionamiento de la memoria por bytes.

� Tamaño de la memoria caché de 64 KB.

� Tamaño de la línea 64 bytes.

� La caché es asociativa por conjuntos de 4 vías.

� El tiempo de acceso a la caché es de 5 ns y el tiempo de penalización en caso de fallo es de 100 ns.

Page 56: Teoria memorias cache

Ejercicio (2/2)

� Se pide:

a) ¿Cuántos bloques tiene la memoria principal? (0,25 puntos)

b) ¿Cuántos conjuntos tiene la memoria caché? (0,25 puntos)

c) Dada una dirección de memoria, indique qué partes de la dirección se utilizan para identificar la etiqueta, el conjunto y el byte dentro de la

Estructura de Computadores

ARCOS @ UC3M 2010-201156

utilizan para identificar la etiqueta, el conjunto y el byte dentro de la línea. Indique también el número de bits de cada parte. (1 punto)

d) Dada la siguiente dirección de memoria 0000 0011 1100 0011 0000 0000 1111 1000. En caso de encontrarse en la memoria caché ¿en qué conjunto se almacenaría? (0,25 puntos)

e) Si el tiempo medio de acceso al sistema de memoria es de 8 ns ¿cuál es tasa de acierto necesaria para lograr este tiempo? (0,25 puntos)

Page 57: Teoria memorias cache

Solución

a) La memoria tiene un tamaño de línea de 64 bytes = 26 bytes. Por tanto, el número de bloques de memoria principal será

nbloques = tamaño memoria / tamaño de línea = 256 MB / 64 = 256 x 220 / 64 = 256 * 214 bloques

Estructura de Computadores

ARCOS @ UC3M 2010-201157

b) El número de líneas de memoria caché es

nlineas = tamaño memoria / tamaño de línea =64 KB / 64 bytes = 216 / 26 = 210 = 1024 líneas

Conjuntos = Nº líneas / Nº vías = 1024 / 4 = 256 conjuntos.

Page 58: Teoria memorias cache

Solución

c) La dirección de una caché asociativa por conjuntos se divide en tres partes: etiqueta, conjunto y byte dentro de la línea.

� Byte: el tamaño de la línea es 64 bytes = 26bytes. Se necesitan, por tanto 6 bits para identificar el byte dentro de la línea.

� Conjunto: Hay 256 conjuntos = 28, por lo que se necesitan 8 bits para identificar un conjunto

Estructura de Computadores

ARCOS @ UC3M 2010-201158

� Etiqueta: para la etiqueta se emplean el resto de los bits de la dirección = 32 – 6 – 8 = 18

La dirección quedaría:

Conjunto (8 bits) Byte (6 bits)Etiqueta (18 bits)

Page 59: Teoria memorias cache

Solución

d) Utilizamos el formato de la dirección del apartado anterior:

El byte asociado a esta dirección se encontraría en el conjunto 3

e) El cálculo del tiempo medio de acceso a memoria se hace con la siguiente fórmula:

Conjunto (8 bits) Byte (6 bits)Etiqueta (18 bits)

Estructura de Computadores

ARCOS @ UC3M 2010-201159

siguiente fórmula:

� Tmedio = h * tc + (1-h) * tfallo

� 8 = h * 5 + (1-h) * 100

Despejando h, se tiene h = 92/95 = 0,967 (tanto por uno) Es decir, una tasa de acierto del 96,7 %

Page 60: Teoria memorias cache

Tema 5 (II)Memoria caché

Grupo ARCOS

Estructura de Computadores

Grado en Ingeniería Informática

Universidad Carlos III de Madrid