Tema 5 (II)
Memoria caché
Grupo ARCOS
Estructura de Computadores
Grado en Ingeniería Informática
Universidad Carlos III de...
Contenidos
1. Memoria caché
Introducción:
Acceso a bloque y principio de proximidad
Funcionamiento
Estructura de Computado...
¡ATENCIÓN!
Estas transparencias son un guión para la clase
Los libros dados en la bibliografía junto con lo
explicado en c...
Contenidos
1. Memoria cache
Introducción:
Acceso a bloque y principio de proximidad
Funcionamiento
Estructura de Computado...
Característica de la memoria principal
Se premia el acceso a
posiciones consecutivas de memoria
Ejemplo 1: acceder a 5 pos...
Característica de los accesos a memoria
“Principio de proximidad de referencias”:
En el curso de la ejecución de un progra...
Principios de proximidad
Proximidad espacial
Cuando un programa accede a una determinada posición
de memoria, es muy proba...
Objetivo: aprovechar los accesos contiguos
Si cuando accedo a una posición de memoria
transfiero sólo los datos de esa pos...
Objetivo: aprovechar los accesos contiguos
Si cuando se accede a una posición de memoria
se transfiere esos datos y los co...
Objetivo: aprovechar los accesos contiguos
Si cuando se accede a una posición de memoria
se transfiere esos datos y los co...
Memoria Cache
Cantidad pequeña de memoria rápida
Está entre la memoria principal normal y la CPU
transferencia transferenc...
Contenidos
1. Memoria cache
Introducción:
Acceso a bloque y principio de proximidad
Funcionamiento
Estructura de Computado...
lw $t0 ($a0)
li $t1 4
…
Funcionamiento general
1. La CPU solicita contenidos de una posición de memoria.
2. La cache compr...
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...
1. Tca: Tiempo de acceso a caché -> 10 ns
120
Tm = Pca * Tca + (1-Pca) * (Tmp + Tca) ~
Pca * Tca + (1-Pca) * (Tmp)
Ejemplo...
1. Tca: Tiempo de acceso a caché -> 10 ns
120
Tm = Pca * Tca + (1-Pca) * (Tmp + Tca) ~
Pca * Tca + (1-Pca) * (Tmp)
Ejemplo...
Tm = Pca * Tca + (1-Pca) * (Tmp + Tca) ~
Pca * Tca + (1-Pca) * (Tmp)
Ejemplo
Tm = X * 10 + (1-X) * (120 + 10) ~
Tm = X * 1...
.data
vector: .space 4*1024
.text
.globl main
main: li $t0 0
Ejercicio
Datos:
Tmp: 120 ns
Tiempos de acceso: ¿?
int vector...
.data
vector: .space 4*1024
.text
.globl main
main: li $t0 0
Ejercicio (sol.)
Datos:
Tmp: 120 ns
Tiempos de acceso:
Por da...
Ejercicio
Datos:
Tca: 10 ns
Tmp: 120 ns
Tamaño línea: 8 palabras
Tiempos de acceso: ¿?
.data
vector: .space 4*1024
.text
....
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...
Contenidos
1. Memoria cache
Introducción:
Acceso a bloque y principio de proximidad
Funcionamiento
Estructura de Computado...
Organización de la M.C.
En la memoria caché, los datos están organizados en bloques
denominados líneas de caché
En la memo...
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 D...
Tecnologías de RAM
RAM dinámica (DRAM)
Almacena bits como carga en condensadores.
Tiende a descargarse: necesita refrescos...
Memoria Cache: niveles
Es habitual encontrar tres niveles:
L1 o nivel 1:
Caché interna: la más cercana a la CPU
Tamaño peq...
Ejemplo
Computador:
Tiempo de acceso a caché: 4 ns
Tiempo de acceso a bloque de MP: 120 ns.
Si se tiene una tasa de aciert...
Ejemplo: AMD quad-core
Estructura de Computadores
ARCOS @ UC3M 2010-201128
Ejemplo: AMD quad-core
Estructura de Computadores
ARCOS @ UC3M 2010-201129
Ejemplo: Intel Core i7
Estructura de Computadores
ARCOS @ UC3M 2010-201130
La memoria principal
lógicamente se divide en
bloques de igual tamaño
1 bloque = k palabras.
Ejercicio: ¿Cuantos
0
4
8
12
...
Acceso a una palabra de la M.P.
Ejemplo:
Computador de 32 bits
Memoria direccionada por
bytes
Acceso a memorial
principal ...
Acceso a una palabra de la M.P.
Ejemplo:
Computador de 32 bits
Memoria direccionada por
bytes
Acceso a memorial
principal ...
Contenidos
1. Memoria cache
Introducción:
Acceso a bloque y principio de proximidad
Funcionamiento
Estructura de Computado...
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í...
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 igu...
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 igu...
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 ...
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...
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 funcio...
La función de correspondencia directa asocia una única
línea de caché a cada bloque de memoria principal:
donde nl es el n...
Función de correspondencia directa
M.P.
(2)
M.C.
Etiqueta Líneas
Estructura de Computadores
ARCOS @ UC3M 2010-201142
etiqu...
Ejemplo: correspondencia directa
Directa:
Cada bloque de M.P. le corresponde una
sola línea de caché (siempre la misma)
La...
La función de correspondencia totalmente asociativa
permite asociar un bloque de memoria principal en
cualquier línea de l...
Función de correspondencia asociativa
M.P.
M.C.
Etiqueta Líneas
Estructura de Computadores
ARCOS @ UC3M 2010-201145
etique...
Ejemplo: correspondencia asociativa
Asociativa:
Un bloque de M.P. puede cargarse en
cualquier línea de caché
La dir. de M....
La función de correspondencia asociativa por
conjuntos permite asociar un bloque de MP a un único
conjunto de M.C.
donde n...
Función de correspondencia asociativa por
conjuntos
M.P.
(2)
M.C.
Etiqueta Líneas
Conjunto
Estructura de Computadores
ARCO...
Ejemplo:
correspondencia asociativa por conuntos
Asociativa por conjuntos:
Un bloque de M.P. puede cargarse en
cualquier l...
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 reem...
Algoritmo de sustitución
Correspondencia directa:
No hay elección posible
Para cada bloque/palabra solo hay una
posible lí...
Diseño de la cache
Política de escritura
La información en la memoria caché se encuentra replicada
Mantener la cocherencia...
Política de escritura
Escritura inmediata:
La escritura se hace tanto en M.P. como
en cache
[V] Coherencia
[I] Mucho tráfi...
Política de escritura
Ej: CPU multicore con caché por core
Las escrituras en caché solo son vistas
por un core
Si cada cor...
Ejercicio (1/2)
Considere un computador de 32 bits con las
siguientes características:
Memoria física instalada de 256 MB
...
Ejercicio (2/2)
Se pide:
a) ¿Cuántos bloques tiene la memoria principal? (0,25 puntos)
b) ¿Cuántos conjuntos tiene la memo...
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 princip...
Solución
c) La dirección de una caché asociativa por conjuntos se divide en tres
partes: etiqueta, conjunto y byte dentro ...
Solución
d) Utilizamos el formato de la dirección del apartado anterior:
El byte asociado a esta dirección se encontraría ...
Tema 5 (II)
Memoria caché
Grupo ARCOS
Estructura de Computadores
Grado en Ingeniería Informática
Universidad Carlos III de...
Upcoming SlideShare
Loading in …5
×

Teoria memorias cache

1,267 views

Published on

Published in: Internet
  • Be the first to comment

Teoria memorias cache

  1. 1. Tema 5 (II) Memoria caché Grupo ARCOS Estructura de Computadores Grado en Ingeniería Informática Universidad Carlos III de Madrid
  2. 2. 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
  3. 3. ¡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
  4. 4. 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
  5. 5. 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
  6. 6. 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 estar agrupadas 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
  7. 7. 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
  8. 8. Objetivo: aprovechar los accesos contiguos Si cuando accedo a una posición de memoria transfiero sólo los datos de esa posición, no aprovecho los posibles accesos contiguos. Estructura de Computadores ARCOS @ UC3M 2010-20118 CPU Memoria principal
  9. 9. Objetivo: aprovechar los accesos contiguos Si cuando se accede a una posición de memoria se transfiere esos datos y los contiguos, sí aprovecho los accesos contiguos Estructura de Computadores ARCOS @ UC3M 2010-20119 CPU Memoria principal
  10. 10. Objetivo: aprovechar los accesos contiguos Si cuando se accede a una posición de memoria se 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? CPU Memoria principal
  11. 11. 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 cache Memoria principal transferencia de palabras transferencia de bloques
  12. 12. 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
  13. 13. 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.1 3.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.
  14. 14. 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
  15. 15. 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
  16. 16. 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
  17. 17. 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 Tiempomediodeacceso amemoria(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 Tiempomediodeacceso amemoria(ns) Probabilidad de estar en cache (%)
  18. 18. .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
  19. 19. .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
  20. 20. 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
  21. 21. 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.280 T. 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
  22. 22. 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
  23. 23. 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
  24. 24. 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 Procesador Memoria Principal Memoria caché Direcciones Direcciones Datos Datos
  25. 25. 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é
  26. 26. 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
  27. 27. 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.
  28. 28. Ejemplo: AMD quad-core Estructura de Computadores ARCOS @ UC3M 2010-201128
  29. 29. Ejemplo: AMD quad-core Estructura de Computadores ARCOS @ UC3M 2010-201129
  30. 30. Ejemplo: Intel Core i7 Estructura de Computadores ARCOS @ UC3M 2010-201130
  31. 31. La memoria principal lógicamente se divide en bloques de igual tamaño 1 bloque = k palabras. Ejercicio: ¿Cuantos 0 4 8 12 16 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-2011 Estructura de Computadores Bloque 3 Bloque 4 Bloque n
  32. 32. Acceso a una palabra de la M.P. Ejemplo: Computador de 32 bits Memoria direccionada por bytes Acceso a memorial principal por palabras 0 4 8 12 16 20 24 28 32 36 40 32 principal por palabras Acceso a la palabra con dirección 0x00000064 ARCOS @ UC3M 2010-2011 Estructura de Computadores Palabra de 32 bits 40 44 48 52 56 60 64 68 72 76
  33. 33. Acceso a una palabra de la M.P. Ejemplo: Computador de 32 bits Memoria direccionada por bytes Acceso a memorial principal por palabras 0 4 8 12 16 20 24 28 32 36 40 33 principal por palabras Acceso a la palabra con dirección 0x00000064 ARCOS @ UC3M 2010-2011 Estructura de Computadores Palabra de 32 bits 40 44 48 52 56 60 64 68 72 76 00000000000000000000000001000000
  34. 34. 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
  35. 35. 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)
  36. 36. 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
  37. 37. 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ños para la caché L1, L2, ...
  38. 38. 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 memoria caché 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.
  39. 39. 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 determina M.P. M.C . Estructura de Computadores ARCOS @ UC3M 2010-201139
  40. 40. 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
  41. 41. 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) = Desplazamiento m bits restantes = n – log2(NL) – log2(Nbytes) etiqueta log2 (NL) = nl Número de línea etiqueta línea Byte
  42. 42. 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)
  43. 43. 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’, entonces está 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
  44. 44. 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
  45. 45. 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)
  46. 46. 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 22 e 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
  47. 47. 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
  48. 48. 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)
  49. 49. 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 e 2 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 palabraconjunto cto1
  50. 50. 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
  51. 51. 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
  52. 52. 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
  53. 53. 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.
  54. 54. 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.1 e M.C.2
  55. 55. 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.
  56. 56. 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)
  57. 57. 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.
  58. 58. 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)
  59. 59. 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 %
  60. 60. Tema 5 (II) Memoria caché Grupo ARCOS Estructura de Computadores Grado en Ingeniería Informática Universidad Carlos III de Madrid

×