Este documento trata sobre la memoria caché. Explica que la memoria caché es una pequeña cantidad de memoria rápida ubicada entre la CPU y la memoria principal. Almacena copias de datos de la memoria principal para acelerar los futuros accesos a esos datos basados en el principio de localidad espacial y temporal. También describe la organización de la memoria caché en líneas y bloques, y los diferentes niveles de caché como la caché L1 interna y la caché L2 externa.
1. Tema 5 (II)
Memoria caché
Grupo ARCOS
Estructura de Computadores
Grado en Ingeniería Informática
Universidad Carlos III de Madrid
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. ¡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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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
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. .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. 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. 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. 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. 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. 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. 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. 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. 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.
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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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
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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. Tema 5 (II)
Memoria caché
Grupo ARCOS
Estructura de Computadores
Grado en Ingeniería Informática
Universidad Carlos III de Madrid