jerarquias de memoria -...
Transcript of jerarquias de memoria -...
![Page 1: jerarquias de memoria - materias.fi.uba.armaterias.fi.uba.ar/6620/clases/jerarquias_de_memoria.pdf · Reemplazar el elemento de una arreglo por una variable temporal, para que pueda](https://reader034.fdocumento.com/reader034/viewer/2022042805/5f5e987531ff2f1f5e03cecc/html5/thumbnails/1.jpg)
JERARQUÍAS DE MEMORIA
Organización de Computadoras
Facultad de Ingeniería Universidad de Buenos Aires
14/05/2010 Jerarquías de Memoria 1
Universidad de Buenos Aires2010
![Page 2: jerarquias de memoria - materias.fi.uba.armaterias.fi.uba.ar/6620/clases/jerarquias_de_memoria.pdf · Reemplazar el elemento de una arreglo por una variable temporal, para que pueda](https://reader034.fdocumento.com/reader034/viewer/2022042805/5f5e987531ff2f1f5e03cecc/html5/thumbnails/2.jpg)
Introducción
14/05/2010 Modelización y Simulación de Jerarquías de Memoria
2
![Page 3: jerarquias de memoria - materias.fi.uba.armaterias.fi.uba.ar/6620/clases/jerarquias_de_memoria.pdf · Reemplazar el elemento de una arreglo por una variable temporal, para que pueda](https://reader034.fdocumento.com/reader034/viewer/2022042805/5f5e987531ff2f1f5e03cecc/html5/thumbnails/3.jpg)
La Brecha CPU-Memoria
1000
10000
100000
Des
emp
eño
CPU
55% por año
14/05/2010 Modelización y Simulación de Jerarquías de Memoria
3
1
10
100
1000
1980 1985 1990 1995 2000 2005
Año
Des
emp
eño
CPU
Memoria35% por año
7% por año
![Page 4: jerarquias de memoria - materias.fi.uba.armaterias.fi.uba.ar/6620/clases/jerarquias_de_memoria.pdf · Reemplazar el elemento de una arreglo por una variable temporal, para que pueda](https://reader034.fdocumento.com/reader034/viewer/2022042805/5f5e987531ff2f1f5e03cecc/html5/thumbnails/4.jpg)
El Principio de Localidad para las Referencias a Memoria
� Los programas referencian la memoria localmente• Localidad espacial•
14/05/2010 Modelización y Simulación de Jerarquías de Memoria
4
• Localidad temporal
![Page 5: jerarquias de memoria - materias.fi.uba.armaterias.fi.uba.ar/6620/clases/jerarquias_de_memoria.pdf · Reemplazar el elemento de una arreglo por una variable temporal, para que pueda](https://reader034.fdocumento.com/reader034/viewer/2022042805/5f5e987531ff2f1f5e03cecc/html5/thumbnails/5.jpg)
La Memoria Local o Memoria Cache
CPUMemoria
PrincipalCPU CacheMemoria
14/05/2010 Modelización y Simulación de Jerarquías de Memoria
5
CPU PrincipalCPU CacheMemoria
Principal
![Page 6: jerarquias de memoria - materias.fi.uba.armaterias.fi.uba.ar/6620/clases/jerarquias_de_memoria.pdf · Reemplazar el elemento de una arreglo por una variable temporal, para que pueda](https://reader034.fdocumento.com/reader034/viewer/2022042805/5f5e987531ff2f1f5e03cecc/html5/thumbnails/6.jpg)
Funcionamiento Básico
.
Bloques
.. .
14/05/2010 Modelización y Simulación de Jerarquías de Memoria
6
CPU Cache
Memoria
Principal
Transferencia
de Bloques
Transferencia
de Palabras
![Page 7: jerarquias de memoria - materias.fi.uba.armaterias.fi.uba.ar/6620/clases/jerarquias_de_memoria.pdf · Reemplazar el elemento de una arreglo por una variable temporal, para que pueda](https://reader034.fdocumento.com/reader034/viewer/2022042805/5f5e987531ff2f1f5e03cecc/html5/thumbnails/7.jpg)
0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
0
1
2
3
4
Bloque
Nro.
Bloque
Nro.
...
.
Organizaciones Básicas: Totalmente Asociativa
14/05/2010 Modelización y Simulación de Jerarquías de Memoria
7
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
5
6
7
Memoria
Cache
Totalmente Asociativa
![Page 8: jerarquias de memoria - materias.fi.uba.armaterias.fi.uba.ar/6620/clases/jerarquias_de_memoria.pdf · Reemplazar el elemento de una arreglo por una variable temporal, para que pueda](https://reader034.fdocumento.com/reader034/viewer/2022042805/5f5e987531ff2f1f5e03cecc/html5/thumbnails/8.jpg)
0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
0
1
2
3
4
Bloque
Nro.
Bloque
Nro.Organizaciones Básicas: Correspondencia Directa
14/05/2010 Modelización y Simulación de Jerarquías de Memoria
8
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
5
6
7
Memoria
Cache por
Correspondencia Directa
![Page 9: jerarquias de memoria - materias.fi.uba.armaterias.fi.uba.ar/6620/clases/jerarquias_de_memoria.pdf · Reemplazar el elemento de una arreglo por una variable temporal, para que pueda](https://reader034.fdocumento.com/reader034/viewer/2022042805/5f5e987531ff2f1f5e03cecc/html5/thumbnails/9.jpg)
0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
0
1
2
3
4
Bloque
Nro.
Conjunto
Nro.
0 {
1 {
2 {
Organizaciones Básicas: Asociativa por Conjuntos
14/05/2010 Modelización y Simulación de Jerarquías de Memoria
9
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
5
6
7
Memoria
Cache Asociativa
por Conjuntos
2 {
3 {
![Page 10: jerarquias de memoria - materias.fi.uba.armaterias.fi.uba.ar/6620/clases/jerarquias_de_memoria.pdf · Reemplazar el elemento de una arreglo por una variable temporal, para que pueda](https://reader034.fdocumento.com/reader034/viewer/2022042805/5f5e987531ff2f1f5e03cecc/html5/thumbnails/10.jpg)
14/05/2010 Modelización y Simulación de Jerarquías de Memoria
10
![Page 11: jerarquias de memoria - materias.fi.uba.armaterias.fi.uba.ar/6620/clases/jerarquias_de_memoria.pdf · Reemplazar el elemento de una arreglo por una variable temporal, para que pueda](https://reader034.fdocumento.com/reader034/viewer/2022042805/5f5e987531ff2f1f5e03cecc/html5/thumbnails/11.jpg)
14/05/2010 Modelización y Simulación de Jerarquías de Memoria
11
![Page 12: jerarquias de memoria - materias.fi.uba.armaterias.fi.uba.ar/6620/clases/jerarquias_de_memoria.pdf · Reemplazar el elemento de una arreglo por una variable temporal, para que pueda](https://reader034.fdocumento.com/reader034/viewer/2022042805/5f5e987531ff2f1f5e03cecc/html5/thumbnails/12.jpg)
14/05/2010 Modelización y Simulación de Jerarquías de Memoria
12
![Page 13: jerarquias de memoria - materias.fi.uba.armaterias.fi.uba.ar/6620/clases/jerarquias_de_memoria.pdf · Reemplazar el elemento de una arreglo por una variable temporal, para que pueda](https://reader034.fdocumento.com/reader034/viewer/2022042805/5f5e987531ff2f1f5e03cecc/html5/thumbnails/13.jpg)
Políticas de reemplazo
� LRU� FIFO� RANDOM� RANDOM� Basadas en Distancias de Pila LRU� Óptima (Belady 1963)
14/05/2010 Modelización y Simulación de Jerarquías de Memoria
13
![Page 14: jerarquias de memoria - materias.fi.uba.armaterias.fi.uba.ar/6620/clases/jerarquias_de_memoria.pdf · Reemplazar el elemento de una arreglo por una variable temporal, para que pueda](https://reader034.fdocumento.com/reader034/viewer/2022042805/5f5e987531ff2f1f5e03cecc/html5/thumbnails/14.jpg)
Que pasa en una escritura?
� Write Through� Write Back
Alocación: -Write Allocate-Write No-Allocate
14/05/2010 Modelización y Simulación de Jerarquías de Memoria
14
![Page 15: jerarquias de memoria - materias.fi.uba.armaterias.fi.uba.ar/6620/clases/jerarquias_de_memoria.pdf · Reemplazar el elemento de una arreglo por una variable temporal, para que pueda](https://reader034.fdocumento.com/reader034/viewer/2022042805/5f5e987531ff2f1f5e03cecc/html5/thumbnails/15.jpg)
Cache Performance
14/05/2010 Modelización y Simulación de Jerarquías de Memoria
15
![Page 16: jerarquias de memoria - materias.fi.uba.armaterias.fi.uba.ar/6620/clases/jerarquias_de_memoria.pdf · Reemplazar el elemento de una arreglo por una variable temporal, para que pueda](https://reader034.fdocumento.com/reader034/viewer/2022042805/5f5e987531ff2f1f5e03cecc/html5/thumbnails/16.jpg)
Ecuación de desempeño de CPUcon Memoria cache
14/05/2010 Modelización y Simulación de Jerarquías de Memoria
16
![Page 17: jerarquias de memoria - materias.fi.uba.armaterias.fi.uba.ar/6620/clases/jerarquias_de_memoria.pdf · Reemplazar el elemento de una arreglo por una variable temporal, para que pueda](https://reader034.fdocumento.com/reader034/viewer/2022042805/5f5e987531ff2f1f5e03cecc/html5/thumbnails/17.jpg)
Optimizaciones para mejorar el desempeño en sistemas con memoria cache
� Reducir la Penalidad de miss� Reducir el Miss Rate� Reducir el tiempo de Hit
14/05/2010 Modelización y Simulación de Jerarquías de Memoria
17
![Page 18: jerarquias de memoria - materias.fi.uba.armaterias.fi.uba.ar/6620/clases/jerarquias_de_memoria.pdf · Reemplazar el elemento de una arreglo por una variable temporal, para que pueda](https://reader034.fdocumento.com/reader034/viewer/2022042805/5f5e987531ff2f1f5e03cecc/html5/thumbnails/18.jpg)
Reduccion de Penalidad de missCaches multinivel
14/05/2010 Modelización y Simulación de Jerarquías de Memoria
18
![Page 19: jerarquias de memoria - materias.fi.uba.armaterias.fi.uba.ar/6620/clases/jerarquias_de_memoria.pdf · Reemplazar el elemento de una arreglo por una variable temporal, para que pueda](https://reader034.fdocumento.com/reader034/viewer/2022042805/5f5e987531ff2f1f5e03cecc/html5/thumbnails/19.jpg)
Reduccion de Penalidad de missCritical Word First, Early Restart
14/05/2010 Modelización y Simulación de Jerarquías de Memoria
19
![Page 20: jerarquias de memoria - materias.fi.uba.armaterias.fi.uba.ar/6620/clases/jerarquias_de_memoria.pdf · Reemplazar el elemento de una arreglo por una variable temporal, para que pueda](https://reader034.fdocumento.com/reader034/viewer/2022042805/5f5e987531ff2f1f5e03cecc/html5/thumbnails/20.jpg)
Reduccion de Penalidad de miss
� Prioridad a Lecturas sobre las escrituras� Merging Write buffers� Caches de VíctimasCaches de Víctimas
14/05/2010 Modelización y Simulación de Jerarquías de Memoria
20
![Page 21: jerarquias de memoria - materias.fi.uba.armaterias.fi.uba.ar/6620/clases/jerarquias_de_memoria.pdf · Reemplazar el elemento de una arreglo por una variable temporal, para que pueda](https://reader034.fdocumento.com/reader034/viewer/2022042805/5f5e987531ff2f1f5e03cecc/html5/thumbnails/21.jpg)
Reducción de la Tasa Miss
Causas de los misses en memoria cache?Causas de los misses en memoria cache?
14/05/2010 Modelización y Simulación de Jerarquías de Memoria
21
![Page 22: jerarquias de memoria - materias.fi.uba.armaterias.fi.uba.ar/6620/clases/jerarquias_de_memoria.pdf · Reemplazar el elemento de una arreglo por una variable temporal, para que pueda](https://reader034.fdocumento.com/reader034/viewer/2022042805/5f5e987531ff2f1f5e03cecc/html5/thumbnails/22.jpg)
Herramientas de Modelado y Análisis
14/05/2010 Modelización y Simulación de Jerarquías de Memoria
22
![Page 23: jerarquias de memoria - materias.fi.uba.armaterias.fi.uba.ar/6620/clases/jerarquias_de_memoria.pdf · Reemplazar el elemento de una arreglo por una variable temporal, para que pueda](https://reader034.fdocumento.com/reader034/viewer/2022042805/5f5e987531ff2f1f5e03cecc/html5/thumbnails/23.jpg)
Una Clasificación para los Desaciertos en Memoria Cache
� Modelo de las “Tres C” • A favor:
• Tipos conceptuales• Obligatorios
14/05/2010 Modelización y Simulación de Jerarquías de Memoria
23
• Obligatorios• Capacidad• Conflicto
• Muy difundidos
• En contra• Da resultados incorrectos• No clasifica individualmente
![Page 24: jerarquias de memoria - materias.fi.uba.armaterias.fi.uba.ar/6620/clases/jerarquias_de_memoria.pdf · Reemplazar el elemento de una arreglo por una variable temporal, para que pueda](https://reader034.fdocumento.com/reader034/viewer/2022042805/5f5e987531ff2f1f5e03cecc/html5/thumbnails/24.jpg)
Otro Modelo: de las Tres C Determinístico “D3C”
• Obligatorios• Capacidad• Conflicto
14/05/2010 Modelización y Simulación de Jerarquías de Memoria
24
Definición operacional:
BDConflicto
BDCapacidad
computablenoDosObligatori
≤
>
→
:
:
:
![Page 25: jerarquias de memoria - materias.fi.uba.armaterias.fi.uba.ar/6620/clases/jerarquias_de_memoria.pdf · Reemplazar el elemento de una arreglo por una variable temporal, para que pueda](https://reader034.fdocumento.com/reader034/viewer/2022042805/5f5e987531ff2f1f5e03cecc/html5/thumbnails/25.jpg)
C
Desaciertos dela cache bajoestudio
Desaciertos de lacache totalmente
asociativa(Capacidad 3C)
Desaciertos de la cache totalmente asociativa infinita
(Obligatorios)
14/05/2010 Modelización y Simulación de Jerarquías de Memoria
25
BU
A
C
Total de referenciasa memoria
Capacidad D3C Conflicto D3C
ABConflicto
CBACapacidad
CosObligatori
¬=
¬=
=
.
..
![Page 26: jerarquias de memoria - materias.fi.uba.armaterias.fi.uba.ar/6620/clases/jerarquias_de_memoria.pdf · Reemplazar el elemento de una arreglo por una variable temporal, para que pueda](https://reader034.fdocumento.com/reader034/viewer/2022042805/5f5e987531ff2f1f5e03cecc/html5/thumbnails/26.jpg)
El Modelo del Lazo Simple
� Aplicaciones con desempeño pobre bajo LRU• Memoria Virtual•
14/05/2010 Modelización y Simulación de Jerarquías de Memoria
26
• Memoria Cache• Lazos: componente importante en la mayoría de
las aplicaciones.
![Page 27: jerarquias de memoria - materias.fi.uba.armaterias.fi.uba.ar/6620/clases/jerarquias_de_memoria.pdf · Reemplazar el elemento de una arreglo por una variable temporal, para que pueda](https://reader034.fdocumento.com/reader034/viewer/2022042805/5f5e987531ff2f1f5e03cecc/html5/thumbnails/27.jpg)
El Modelo del Lazo Simple
14/05/2010 Modelización y Simulación de Jerarquías de Memoria
27
Memoria
Lazo
![Page 28: jerarquias de memoria - materias.fi.uba.armaterias.fi.uba.ar/6620/clases/jerarquias_de_memoria.pdf · Reemplazar el elemento de una arreglo por una variable temporal, para que pueda](https://reader034.fdocumento.com/reader034/viewer/2022042805/5f5e987531ff2f1f5e03cecc/html5/thumbnails/28.jpg)
El Modelo del Lazo Simple
14/05/2010 Modelización y Simulación de Jerarquías de Memoria
28
Memoria
CacheLazo
![Page 29: jerarquias de memoria - materias.fi.uba.armaterias.fi.uba.ar/6620/clases/jerarquias_de_memoria.pdf · Reemplazar el elemento de una arreglo por una variable temporal, para que pueda](https://reader034.fdocumento.com/reader034/viewer/2022042805/5f5e987531ff2f1f5e03cecc/html5/thumbnails/29.jpg)
Uso de la Clasificación D3C para el Modelo del Lazo Simple
Obligatorios Capacidad Conflicto Total
3C 0 1 -0,4 0,6
D3C 0 0,6 0 0,6
14/05/2010 Modelización y Simulación de Jerarquías de Memoria
29
D3C 0 0,6 0 0,6
Cache LRU asociativa por conjuntos de grado 2, lazo 20% más grande que la memoria cache.
![Page 30: jerarquias de memoria - materias.fi.uba.armaterias.fi.uba.ar/6620/clases/jerarquias_de_memoria.pdf · Reemplazar el elemento de una arreglo por una variable temporal, para que pueda](https://reader034.fdocumento.com/reader034/viewer/2022042805/5f5e987531ff2f1f5e03cecc/html5/thumbnails/30.jpg)
El Modelo del Lazo Simple
� Definiciones• L tamaño del lazo• C tamaño de la memoria cache• α=(L-C)/L
14/05/2010 Modelización y Simulación de Jerarquías de Memoria
30
• α=(L-C)/L� Organizaciones analizadas
• Todas las asociatividades• Políticas de reemplazo
LRU/FIFO, Random, Óptima y No Reemplazo
![Page 31: jerarquias de memoria - materias.fi.uba.armaterias.fi.uba.ar/6620/clases/jerarquias_de_memoria.pdf · Reemplazar el elemento de una arreglo por una variable temporal, para que pueda](https://reader034.fdocumento.com/reader034/viewer/2022042805/5f5e987531ff2f1f5e03cecc/html5/thumbnails/31.jpg)
Relación de Desaciertos para el Modelo del Lazo Simple
14/05/2010 Modelización y Simulación de Jerarquías de Memoria
31
![Page 32: jerarquias de memoria - materias.fi.uba.armaterias.fi.uba.ar/6620/clases/jerarquias_de_memoria.pdf · Reemplazar el elemento de una arreglo por una variable temporal, para que pueda](https://reader034.fdocumento.com/reader034/viewer/2022042805/5f5e987531ff2f1f5e03cecc/html5/thumbnails/32.jpg)
Uso de la Clasificación D3C para el Modelo de las Referencias a Memoria al Azar
M
B−1B
−1
Obligatorios Capacidad Conflicto Total
3C 0 0
14/05/2010 Modelización y Simulación de Jerarquías de Memoria
32
M−1
M
B−1
−
−
−
B
M
�
B
�M
B
M 1
3C 0 0
D3C 0 ≠0M
B−1
![Page 33: jerarquias de memoria - materias.fi.uba.armaterias.fi.uba.ar/6620/clases/jerarquias_de_memoria.pdf · Reemplazar el elemento de una arreglo por una variable temporal, para que pueda](https://reader034.fdocumento.com/reader034/viewer/2022042805/5f5e987531ff2f1f5e03cecc/html5/thumbnails/33.jpg)
Uso de la Clasificación D3C para el Caso de la Anomalía de Belady
B = 3 Obligatorios Capacidad Conflicto Total
3C 5 5 -1 9
D3C 5 4 0 9
14/05/2010 Modelización y Simulación de Jerarquías de Memoria
33
B = 4 Obligatorios Capacidad Conflicto Total
3C 5 3 3 10
D3C 5 3 2 10
Secuencia: 0,1,2,3,0,1,4,0,1,2,3,4, cache totalmente asociativa FIFO
![Page 34: jerarquias de memoria - materias.fi.uba.armaterias.fi.uba.ar/6620/clases/jerarquias_de_memoria.pdf · Reemplazar el elemento de una arreglo por una variable temporal, para que pueda](https://reader034.fdocumento.com/reader034/viewer/2022042805/5f5e987531ff2f1f5e03cecc/html5/thumbnails/34.jpg)
Uso de la Clasificación D3C en la Cache de Víctimas
6
8
10
Total
14/05/2010 Modelización y Simulación de Jerarquías de Memoria
34
-2
0
2
4
DM DM + V DM DM + V DM DM + V
Mis
s
TotalConfCap.
3C D3C
Benchmark Su2cor, cache DM de 8 Kbytes y cache de víctimas de128 bytes (4 bloques de 32 bytes)
![Page 35: jerarquias de memoria - materias.fi.uba.armaterias.fi.uba.ar/6620/clases/jerarquias_de_memoria.pdf · Reemplazar el elemento de una arreglo por una variable temporal, para que pueda](https://reader034.fdocumento.com/reader034/viewer/2022042805/5f5e987531ff2f1f5e03cecc/html5/thumbnails/35.jpg)
Metodología Experimental
� Simulaciones manejadas por trazas� Benchmarks SPEC95
• SPECint95:• compress, go, gcc, m88ksim, li, perl, ijpeg, vortex
14/05/2010 Modelización y Simulación de Jerarquías de Memoria
35
• compress, go, gcc, m88ksim, li, perl, ijpeg, vortex• SPECfp95
• applu, apsi, turb3d, su2cor, hydro2d, swim, tomcatv, wave5, mgrid, fppp.
� Trazas• Herramienta: ATOM• Formato: ASF• Logitud: 700 a 1200 millones de instrucciones
![Page 36: jerarquias de memoria - materias.fi.uba.armaterias.fi.uba.ar/6620/clases/jerarquias_de_memoria.pdf · Reemplazar el elemento de una arreglo por una variable temporal, para que pueda](https://reader034.fdocumento.com/reader034/viewer/2022042805/5f5e987531ff2f1f5e03cecc/html5/thumbnails/36.jpg)
Benchmarks SPECint95
Cache de Instrucciones
3
3.5
4
4.5
14/05/2010 Modelización y Simulación de Jerarquías de Memoria
36
0
0.5
1
1.5
2
2.5
3
1 2 4 8 16 32 64 128 256 512 1024 2048
Asociatividad
Mis
s
Oblig Oblig+Cap Total Oblig+Cap(3C)
8Kb
16Kb
32Kb64Kb
![Page 37: jerarquias de memoria - materias.fi.uba.armaterias.fi.uba.ar/6620/clases/jerarquias_de_memoria.pdf · Reemplazar el elemento de una arreglo por una variable temporal, para que pueda](https://reader034.fdocumento.com/reader034/viewer/2022042805/5f5e987531ff2f1f5e03cecc/html5/thumbnails/37.jpg)
Cache de Instrucciones
0
0.5
1
1.5
2
2.5
3
3.5
4
4.5
1 2 4 8 16 32 64 128 256 512 1024 2048
Asociatividad
Mis
s
Oblig Oblig+Cap Total Oblig+Cap(3C)
8Kb
16Kb
32Kb64Kb
Cache de Instrucciones
0
0,5
1
1,5
2
2,5
1 2 4 8 16 32 64 128 256 512 1024 2048
Asociatividad
Mis
s
Oblig Oblig+Cap Total Oblig+Cap(3C)
8Kb
16Kb
32Kb64Kb
SPECint SPECfp
14/05/2010 Modelización y Simulación de Jerarquías de Memoria
37
Cache de Datos
0
1
2
3
4
5
6
7
8
9
1 2 4 8 16 32 64 128 256 512 1024 2048
Asociatividad
Mis
s
Oblig Oblig+Cap Total Oblig+Cap(3C)
8Kb
16Kb
32Kb64Kb
Cache de Datos
02468
1012141618
1 2 4 8 16 32 64 128 256 512 1024 2048
Asociatividad
Mis
s
Obig Obig+Cap Total Obig+Cap(3C)
8Kb16Kb 32Kb
64Kb
SPECint SPECfp
![Page 38: jerarquias de memoria - materias.fi.uba.armaterias.fi.uba.ar/6620/clases/jerarquias_de_memoria.pdf · Reemplazar el elemento de una arreglo por una variable temporal, para que pueda](https://reader034.fdocumento.com/reader034/viewer/2022042805/5f5e987531ff2f1f5e03cecc/html5/thumbnails/38.jpg)
Reducción de la Tasa Miss
� Caches más grandes y más asociativas
10
Cache de Datos, SPECint95
14/05/2010 Modelización y Simulación de Jerarquías de Memoria
38
02468
10
8192 16384 32768 65536
Mis
s
Tamaño (Bytes)
DM
2W
4W
SW
FA
![Page 39: jerarquias de memoria - materias.fi.uba.armaterias.fi.uba.ar/6620/clases/jerarquias_de_memoria.pdf · Reemplazar el elemento de una arreglo por una variable temporal, para que pueda](https://reader034.fdocumento.com/reader034/viewer/2022042805/5f5e987531ff2f1f5e03cecc/html5/thumbnails/39.jpg)
Reducción de la tasa de miss.Asociatividad mas alta.
� La organización de correspondencia directa sufre de thrashing.
� El esquema asociativo por conjunto lo reduce o elimina.
![Page 40: jerarquias de memoria - materias.fi.uba.armaterias.fi.uba.ar/6620/clases/jerarquias_de_memoria.pdf · Reemplazar el elemento de una arreglo por una variable temporal, para que pueda](https://reader034.fdocumento.com/reader034/viewer/2022042805/5f5e987531ff2f1f5e03cecc/html5/thumbnails/40.jpg)
Reducción de la Tasa Miss
� Bloques más grandes
14/05/2010 Modelización y Simulación de Jerarquías de Memoria
40
![Page 41: jerarquias de memoria - materias.fi.uba.armaterias.fi.uba.ar/6620/clases/jerarquias_de_memoria.pdf · Reemplazar el elemento de una arreglo por una variable temporal, para que pueda](https://reader034.fdocumento.com/reader034/viewer/2022042805/5f5e987531ff2f1f5e03cecc/html5/thumbnails/41.jpg)
Reducción de Ciclos de stall en cache via paralelismo
� Caches no bloqueantes� Hardware prefetching� Software prefetching� Software prefetching
• Programa• CompiladorOpciones
Buffer prefetchingCache prefetching
14/05/2010 Modelización y Simulación de Jerarquías de Memoria
41
![Page 42: jerarquias de memoria - materias.fi.uba.armaterias.fi.uba.ar/6620/clases/jerarquias_de_memoria.pdf · Reemplazar el elemento de una arreglo por una variable temporal, para que pueda](https://reader034.fdocumento.com/reader034/viewer/2022042805/5f5e987531ff2f1f5e03cecc/html5/thumbnails/42.jpg)
Redución de la tasa de miss. Optimizaciones del Software
� Lectura adelantada (prefetching) de datos e instrucciones.
� Reemplazo de elementos de arreglos por escalares.� Intercambio de bucles.� Operación en bloques (blocking algorithms).� Rellenado de arreglos (array padding).� Reducción de solapamiento (aliasing).
![Page 43: jerarquias de memoria - materias.fi.uba.armaterias.fi.uba.ar/6620/clases/jerarquias_de_memoria.pdf · Reemplazar el elemento de una arreglo por una variable temporal, para que pueda](https://reader034.fdocumento.com/reader034/viewer/2022042805/5f5e987531ff2f1f5e03cecc/html5/thumbnails/43.jpg)
Optimización de Memoria #1:Lectura Adelantada (prefetching)
� Especula con los accesos futuros a datos e instrucciones.� Se implementa a nivel de hardware o software.� Suficiente un prefetch por bloque de la caché.
![Page 44: jerarquias de memoria - materias.fi.uba.armaterias.fi.uba.ar/6620/clases/jerarquias_de_memoria.pdf · Reemplazar el elemento de una arreglo por una variable temporal, para que pueda](https://reader034.fdocumento.com/reader034/viewer/2022042805/5f5e987531ff2f1f5e03cecc/html5/thumbnails/44.jpg)
Lectura Adelantada (cont.)
� Útil en bucles con patrones de acceso simples (aplicaciones científicas).
� En lenguaje C, es posible realizar una lectura adelantada mediante __builtin_prefetch(), si la arquitectura lo soporta.arquitectura lo soporta.
Desde MIPS IV, se soporta prefetching mediante la
instrucción pref
![Page 45: jerarquias de memoria - materias.fi.uba.armaterias.fi.uba.ar/6620/clases/jerarquias_de_memoria.pdf · Reemplazar el elemento de una arreglo por una variable temporal, para que pueda](https://reader034.fdocumento.com/reader034/viewer/2022042805/5f5e987531ff2f1f5e03cecc/html5/thumbnails/45.jpg)
Lectura Adelantada (cont.)
� ¿Con cuánta anticipación debe leerse un bloque desde memoria principal a caché?
� Si se hace cerca del instante de uso, podría ser tarde.� Conviene aplicarlo con mayor anticipación.� Conviene aplicarlo con mayor anticipación.� Deberá considerarse:
• Cuántos tiempo insume el prefetch.• Cuántos tiempo insume una iteración del bucle.
� Por ejemplo:
TP
TI = 1/3 TP
TP = Tiempo prefetch
TI = Tiempo iteración
![Page 46: jerarquias de memoria - materias.fi.uba.armaterias.fi.uba.ar/6620/clases/jerarquias_de_memoria.pdf · Reemplazar el elemento de una arreglo por una variable temporal, para que pueda](https://reader034.fdocumento.com/reader034/viewer/2022042805/5f5e987531ff2f1f5e03cecc/html5/thumbnails/46.jpg)
Lectura Adelantada (cont.)
� Se debe generar un pipeline para que el bucle no deba esperar.
x[24] … x[31]x[16] …x[23]
x[8] …x[15]
x[0] …x[7]
PROCESAx[0] … x[7]
PROCESAx[8] … x[15]
PROCESAx[16] … x[23]
PROCESAx[24] … x[31] …
x[32] … x[39]
x[40] … x[47]
Distancia d = 3
En general � d = TP / TI
![Page 47: jerarquias de memoria - materias.fi.uba.armaterias.fi.uba.ar/6620/clases/jerarquias_de_memoria.pdf · Reemplazar el elemento de una arreglo por una variable temporal, para que pueda](https://reader034.fdocumento.com/reader034/viewer/2022042805/5f5e987531ff2f1f5e03cecc/html5/thumbnails/47.jpg)
Lectura Adelantada (cont.)24
Agregar una estructura condicional (if..else) o desenrollar el bucle, para no ejecutar el prefetch en todas las iteraciones.
FACTOR DE DESENROLLADO
IGUAL A LA CANT. DE ELEMENTOS POR
BLOQUE DE CACHÉ
![Page 48: jerarquias de memoria - materias.fi.uba.armaterias.fi.uba.ar/6620/clases/jerarquias_de_memoria.pdf · Reemplazar el elemento de una arreglo por una variable temporal, para que pueda](https://reader034.fdocumento.com/reader034/viewer/2022042805/5f5e987531ff2f1f5e03cecc/html5/thumbnails/48.jpg)
Optimización de Memoria #2:Reemplazo de Elem. de Arreglos
� Pocos compiladores intentan mantener los elementos de un arreglo en registros, entre iteraciones sucesivas.
� Reemplazar el elemento de una arreglo por una variable temporal, para que pueda mantenerse en un registro.
![Page 49: jerarquias de memoria - materias.fi.uba.armaterias.fi.uba.ar/6620/clases/jerarquias_de_memoria.pdf · Reemplazar el elemento de una arreglo por una variable temporal, para que pueda](https://reader034.fdocumento.com/reader034/viewer/2022042805/5f5e987531ff2f1f5e03cecc/html5/thumbnails/49.jpg)
Optimización de Memoria #3:Intercambio de Bucles
� Según el lenguaje, un arreglo multidimensional podría almacenarse en memoria, ordenado por filas o por columnas.
Orden por filas(row-major order)
Orden por columnas(column-major order)
![Page 50: jerarquias de memoria - materias.fi.uba.armaterias.fi.uba.ar/6620/clases/jerarquias_de_memoria.pdf · Reemplazar el elemento de una arreglo por una variable temporal, para que pueda](https://reader034.fdocumento.com/reader034/viewer/2022042805/5f5e987531ff2f1f5e03cecc/html5/thumbnails/50.jpg)
Intercambio de Bucles (cont.)
� Se busca acceder al arreglo en pasos unitarios (unit stride).
� Esto permite aprovechar A(1,1)
A(1,2)
A(1,1)
A(2,1)
Orden por filas(row-major order)
Orden por columnas(column-major order)
� Esto permite aprovechar la localidad espacial en la memoria caché de datos.
A(1,3)
A(1,4)
A(2,1)
A(2,2)
A(2,3)
A(2,4)
...
A(3,1)
A(4,1)
A(1,2)
A(2,2)
A(3,2)
A(4,2)
...
![Page 51: jerarquias de memoria - materias.fi.uba.armaterias.fi.uba.ar/6620/clases/jerarquias_de_memoria.pdf · Reemplazar el elemento de una arreglo por una variable temporal, para que pueda](https://reader034.fdocumento.com/reader034/viewer/2022042805/5f5e987531ff2f1f5e03cecc/html5/thumbnails/51.jpg)
Intercambio de Bucles (cont.)
� C/C++, Java, Pascal utilizan row-major order.� Fortran y versiones viejas de BASIC, utilizan
column-major order.� Por lo tanto, deben intercambiarse los bucles, de ser � Por lo tanto, deben intercambiarse los bucles, de ser
necesario:
![Page 52: jerarquias de memoria - materias.fi.uba.armaterias.fi.uba.ar/6620/clases/jerarquias_de_memoria.pdf · Reemplazar el elemento de una arreglo por una variable temporal, para que pueda](https://reader034.fdocumento.com/reader034/viewer/2022042805/5f5e987531ff2f1f5e03cecc/html5/thumbnails/52.jpg)
Intercambio de Bucles (cont.)
Usando row-major order:
Desaciertos de escritura en la matriz (1 cada 8 escrituras)
![Page 53: jerarquias de memoria - materias.fi.uba.armaterias.fi.uba.ar/6620/clases/jerarquias_de_memoria.pdf · Reemplazar el elemento de una arreglo por una variable temporal, para que pueda](https://reader034.fdocumento.com/reader034/viewer/2022042805/5f5e987531ff2f1f5e03cecc/html5/thumbnails/53.jpg)
Intercambio de Bucles (cont.)
Usando column-major order:
Desaciertos de escritura en la matriz (8 cada 8 escrituras)
![Page 54: jerarquias de memoria - materias.fi.uba.armaterias.fi.uba.ar/6620/clases/jerarquias_de_memoria.pdf · Reemplazar el elemento de una arreglo por una variable temporal, para que pueda](https://reader034.fdocumento.com/reader034/viewer/2022042805/5f5e987531ff2f1f5e03cecc/html5/thumbnails/54.jpg)
Optimización de Memoria #4:Operación en Bloques
� Permite decrementar la cantidad de desaciertos de
capacidad cuando se opera con arreglos grandes.� Mejora la localidad temporal (mantiene en la
caché, datos que se usarán en el corto plazo).caché, datos que se usarán en el corto plazo).
![Page 55: jerarquias de memoria - materias.fi.uba.armaterias.fi.uba.ar/6620/clases/jerarquias_de_memoria.pdf · Reemplazar el elemento de una arreglo por una variable temporal, para que pueda](https://reader034.fdocumento.com/reader034/viewer/2022042805/5f5e987531ff2f1f5e03cecc/html5/thumbnails/55.jpg)
Operación en Bloques (cont.)
� Ejemplo: multiplicación de matrices.� Elevada cantidad de desaciertos.� Para una caché 2WSA 2-KB con bloques de 32
bytes, multiplicar dos matrices de 64x64 bytes, multiplicar dos matrices de 64x64 enteros, produce una tasa de desaciertos del 11,3%
![Page 56: jerarquias de memoria - materias.fi.uba.armaterias.fi.uba.ar/6620/clases/jerarquias_de_memoria.pdf · Reemplazar el elemento de una arreglo por una variable temporal, para que pueda](https://reader034.fdocumento.com/reader034/viewer/2022042805/5f5e987531ff2f1f5e03cecc/html5/thumbnails/56.jpg)
Operación en Bloques (cont.)
� Solución: operar en bloques pequeños.� Se reducen los accesos conflictivos, ya que los bloques
pequeños pueden ser mantenidos en la caché.
![Page 57: jerarquias de memoria - materias.fi.uba.armaterias.fi.uba.ar/6620/clases/jerarquias_de_memoria.pdf · Reemplazar el elemento de una arreglo por una variable temporal, para que pueda](https://reader034.fdocumento.com/reader034/viewer/2022042805/5f5e987531ff2f1f5e03cecc/html5/thumbnails/57.jpg)
Operación en Bloques (cont.)
2WSA 2-KB (bloque de 32 bytes)
![Page 58: jerarquias de memoria - materias.fi.uba.armaterias.fi.uba.ar/6620/clases/jerarquias_de_memoria.pdf · Reemplazar el elemento de una arreglo por una variable temporal, para que pueda](https://reader034.fdocumento.com/reader034/viewer/2022042805/5f5e987531ff2f1f5e03cecc/html5/thumbnails/58.jpg)
Optimización de Memoria #5:Rellenado de Arreglos (padding)
� Suma de matrices.
C(0,0)
C(0,1)
C(0,2)
0x00000080
0x00000084
0x00000088
...C
(64 bytes)
A(0,0)
A(0,1)
A(0,2)
...
B(0,0)
B(0,1)
B(0,2)
...
0x00000000
0x00000004
0x00000008
0x00000040
0x00000044
0x00000048
A(64 bytes)
B(64 bytes)
![Page 59: jerarquias de memoria - materias.fi.uba.armaterias.fi.uba.ar/6620/clases/jerarquias_de_memoria.pdf · Reemplazar el elemento de una arreglo por una variable temporal, para que pueda](https://reader034.fdocumento.com/reader034/viewer/2022042805/5f5e987531ff2f1f5e03cecc/html5/thumbnails/59.jpg)
Rellenado de Arreglos (cont.)
Memoria caché DM64 bytes8 bytes por línea
THRASHING
![Page 60: jerarquias de memoria - materias.fi.uba.armaterias.fi.uba.ar/6620/clases/jerarquias_de_memoria.pdf · Reemplazar el elemento de una arreglo por una variable temporal, para que pueda](https://reader034.fdocumento.com/reader034/viewer/2022042805/5f5e987531ff2f1f5e03cecc/html5/thumbnails/60.jpg)
Rellenado de Arreglos (cont.)
Memoria caché DM64 bytes8 bytes por línea
![Page 61: jerarquias de memoria - materias.fi.uba.armaterias.fi.uba.ar/6620/clases/jerarquias_de_memoria.pdf · Reemplazar el elemento de una arreglo por una variable temporal, para que pueda](https://reader034.fdocumento.com/reader034/viewer/2022042805/5f5e987531ff2f1f5e03cecc/html5/thumbnails/61.jpg)
Rellenado de Arreglos (cont.)� Se cambia la forma en que los arreglos son almacenados
en memoria principal.� Reduce los accesos conflictivos.� Disminuye el thrashing y, por consiguiente, la cantidad de � Disminuye el thrashing y, por consiguiente, la cantidad de
desaciertos.� Como desventaja, utiliza mayor cantidad de memoria.
![Page 62: jerarquias de memoria - materias.fi.uba.armaterias.fi.uba.ar/6620/clases/jerarquias_de_memoria.pdf · Reemplazar el elemento de una arreglo por una variable temporal, para que pueda](https://reader034.fdocumento.com/reader034/viewer/2022042805/5f5e987531ff2f1f5e03cecc/html5/thumbnails/62.jpg)
Rellenado de Arreglos (cont.)Sin rellenado:
Desaciertos de escritura en la matriz (8 cada 8 escrituras)
Desaciertos de lectura (8 cada 8 lecturas)
![Page 63: jerarquias de memoria - materias.fi.uba.armaterias.fi.uba.ar/6620/clases/jerarquias_de_memoria.pdf · Reemplazar el elemento de una arreglo por una variable temporal, para que pueda](https://reader034.fdocumento.com/reader034/viewer/2022042805/5f5e987531ff2f1f5e03cecc/html5/thumbnails/63.jpg)
Rellenado de Arreglos (cont.)Con rellenado:
Rellenos
Desaciertos de escritura en la matriz C (1 cada 8 escrituras)
Desaciertos de lectura de matrices A y B (1 cada 8 lecturas)
![Page 64: jerarquias de memoria - materias.fi.uba.armaterias.fi.uba.ar/6620/clases/jerarquias_de_memoria.pdf · Reemplazar el elemento de una arreglo por una variable temporal, para que pueda](https://reader034.fdocumento.com/reader034/viewer/2022042805/5f5e987531ff2f1f5e03cecc/html5/thumbnails/64.jpg)
Algo sobre Valgrind
� Herramienta para profiling y debugging.� Site: http://valgrind.org/� Soporta cualquier lenguaje compilado.
Pública y de código abierto.� Pública y de código abierto.� Aplica la técnica de instrumentación dinámica de código.� Ejemplo de ejecución:
valgrind --tool=<tool> my_prog
![Page 65: jerarquias de memoria - materias.fi.uba.armaterias.fi.uba.ar/6620/clases/jerarquias_de_memoria.pdf · Reemplazar el elemento de una arreglo por una variable temporal, para que pueda](https://reader034.fdocumento.com/reader034/viewer/2022042805/5f5e987531ff2f1f5e03cecc/html5/thumbnails/65.jpg)
Algo sobre Valgrind (cont.)� Cachegrind es el módulo para simulación de memorias
caché.� Junto con la herramineta cg_annotate, es posible
detectar el origen de los desaciertos en caché.$ valgrind --tool=cachegrind --D1=2048,2,32 prueba$ valgrind --tool=cachegrind --D1=2048,2,32 prueba
(genera un archivo cachegrind.out.<pid>)
$ cg_annotate --<pid> prueba.c
IMPORTANTE: no olvidar compilar prueba.c utilizando la opción -g para incluir información de debugging útil para Valgrind).
![Page 66: jerarquias de memoria - materias.fi.uba.armaterias.fi.uba.ar/6620/clases/jerarquias_de_memoria.pdf · Reemplazar el elemento de una arreglo por una variable temporal, para que pueda](https://reader034.fdocumento.com/reader034/viewer/2022042805/5f5e987531ff2f1f5e03cecc/html5/thumbnails/66.jpg)
Redución del tiempo de hit
� Caches más pequeñas y más simples
14/05/2010 Modelización y Simulación de Jerarquías de Memoria
66
![Page 67: jerarquias de memoria - materias.fi.uba.armaterias.fi.uba.ar/6620/clases/jerarquias_de_memoria.pdf · Reemplazar el elemento de una arreglo por una variable temporal, para que pueda](https://reader034.fdocumento.com/reader034/viewer/2022042805/5f5e987531ff2f1f5e03cecc/html5/thumbnails/67.jpg)
Redución del tiempo de hit
� Evitar traducción de páginas� Cache pipeline� Trace Caches (intel p4)� Trace Caches (intel p4)
14/05/2010 Modelización y Simulación de Jerarquías de Memoria
67
![Page 68: jerarquias de memoria - materias.fi.uba.armaterias.fi.uba.ar/6620/clases/jerarquias_de_memoria.pdf · Reemplazar el elemento de una arreglo por una variable temporal, para que pueda](https://reader034.fdocumento.com/reader034/viewer/2022042805/5f5e987531ff2f1f5e03cecc/html5/thumbnails/68.jpg)
Mejorar el ancho de banda de la memoria principal.
14/05/2010 Modelización y Simulación de Jerarquías de Memoria
68
![Page 69: jerarquias de memoria - materias.fi.uba.armaterias.fi.uba.ar/6620/clases/jerarquias_de_memoria.pdf · Reemplazar el elemento de una arreglo por una variable temporal, para que pueda](https://reader034.fdocumento.com/reader034/viewer/2022042805/5f5e987531ff2f1f5e03cecc/html5/thumbnails/69.jpg)
Intercalado
14/05/2010 Modelización y Simulación de Jerarquías de Memoria
69
![Page 70: jerarquias de memoria - materias.fi.uba.armaterias.fi.uba.ar/6620/clases/jerarquias_de_memoria.pdf · Reemplazar el elemento de una arreglo por una variable temporal, para que pueda](https://reader034.fdocumento.com/reader034/viewer/2022042805/5f5e987531ff2f1f5e03cecc/html5/thumbnails/70.jpg)
Tecnología DRAM
14/05/2010 Modelización y Simulación de Jerarquías de Memoria
70
![Page 71: jerarquias de memoria - materias.fi.uba.armaterias.fi.uba.ar/6620/clases/jerarquias_de_memoria.pdf · Reemplazar el elemento de una arreglo por una variable temporal, para que pueda](https://reader034.fdocumento.com/reader034/viewer/2022042805/5f5e987531ff2f1f5e03cecc/html5/thumbnails/71.jpg)
14/05/2010 Modelización y Simulación de Jerarquías de Memoria
71
![Page 72: jerarquias de memoria - materias.fi.uba.armaterias.fi.uba.ar/6620/clases/jerarquias_de_memoria.pdf · Reemplazar el elemento de una arreglo por una variable temporal, para que pueda](https://reader034.fdocumento.com/reader034/viewer/2022042805/5f5e987531ff2f1f5e03cecc/html5/thumbnails/72.jpg)
DRAM Convencional
14/05/2010 Modelización y Simulación de Jerarquías de Memoria
72
![Page 73: jerarquias de memoria - materias.fi.uba.armaterias.fi.uba.ar/6620/clases/jerarquias_de_memoria.pdf · Reemplazar el elemento de una arreglo por una variable temporal, para que pueda](https://reader034.fdocumento.com/reader034/viewer/2022042805/5f5e987531ff2f1f5e03cecc/html5/thumbnails/73.jpg)
DRAM de Modo Página Rápido
14/05/2010 Modelización y Simulación de Jerarquías de Memoria
73
![Page 74: jerarquias de memoria - materias.fi.uba.armaterias.fi.uba.ar/6620/clases/jerarquias_de_memoria.pdf · Reemplazar el elemento de una arreglo por una variable temporal, para que pueda](https://reader034.fdocumento.com/reader034/viewer/2022042805/5f5e987531ff2f1f5e03cecc/html5/thumbnails/74.jpg)
14/05/2010 Modelización y Simulación de Jerarquías de Memoria
74
![Page 75: jerarquias de memoria - materias.fi.uba.armaterias.fi.uba.ar/6620/clases/jerarquias_de_memoria.pdf · Reemplazar el elemento de una arreglo por una variable temporal, para que pueda](https://reader034.fdocumento.com/reader034/viewer/2022042805/5f5e987531ff2f1f5e03cecc/html5/thumbnails/75.jpg)
RAM Sincrónica
14/05/2010 Modelización y Simulación de Jerarquías de Memoria
75
![Page 76: jerarquias de memoria - materias.fi.uba.armaterias.fi.uba.ar/6620/clases/jerarquias_de_memoria.pdf · Reemplazar el elemento de una arreglo por una variable temporal, para que pueda](https://reader034.fdocumento.com/reader034/viewer/2022042805/5f5e987531ff2f1f5e03cecc/html5/thumbnails/76.jpg)
Evolución DRAM sincrónica
� SDRAM� DDR� DDR2� DDR2� DDR3� DDR4, 5, etc (video)
14/05/2010 Modelización y Simulación de Jerarquías de Memoria
76
![Page 77: jerarquias de memoria - materias.fi.uba.armaterias.fi.uba.ar/6620/clases/jerarquias_de_memoria.pdf · Reemplazar el elemento de una arreglo por una variable temporal, para que pueda](https://reader034.fdocumento.com/reader034/viewer/2022042805/5f5e987531ff2f1f5e03cecc/html5/thumbnails/77.jpg)
Memoria Virtual
Programa > memoriafisica
Protección Compartir DireccionesVirtuales
Overlays x
RegistroCerco
x x
Memoria V. Páginada
x x x x
Memoria V. Segmentada
x x x x
14/05/2010 Modelización y Simulación de Jerarquías de Memoria
77
![Page 78: jerarquias de memoria - materias.fi.uba.armaterias.fi.uba.ar/6620/clases/jerarquias_de_memoria.pdf · Reemplazar el elemento de una arreglo por una variable temporal, para que pueda](https://reader034.fdocumento.com/reader034/viewer/2022042805/5f5e987531ff2f1f5e03cecc/html5/thumbnails/78.jpg)
Memoria Virtual Páginada
14/05/2010 Modelización y Simulación de Jerarquías de Memoria
78
![Page 79: jerarquias de memoria - materias.fi.uba.armaterias.fi.uba.ar/6620/clases/jerarquias_de_memoria.pdf · Reemplazar el elemento de una arreglo por una variable temporal, para que pueda](https://reader034.fdocumento.com/reader034/viewer/2022042805/5f5e987531ff2f1f5e03cecc/html5/thumbnails/79.jpg)
Memoria Virtual Páginada: tamañosde los espacios virtual y físico
14/05/2010 Modelización y Simulación de Jerarquías de Memoria
79
![Page 80: jerarquias de memoria - materias.fi.uba.armaterias.fi.uba.ar/6620/clases/jerarquias_de_memoria.pdf · Reemplazar el elemento de una arreglo por una variable temporal, para que pueda](https://reader034.fdocumento.com/reader034/viewer/2022042805/5f5e987531ff2f1f5e03cecc/html5/thumbnails/80.jpg)
Paginado vs Segmentado
Segmentado: bloques de tamaño variable Dos palabras porDirección: nro segmentoy offset
14/05/2010 Modelización y Simulación de Jerarquías de Memoria
80
![Page 81: jerarquias de memoria - materias.fi.uba.armaterias.fi.uba.ar/6620/clases/jerarquias_de_memoria.pdf · Reemplazar el elemento de una arreglo por una variable temporal, para que pueda](https://reader034.fdocumento.com/reader034/viewer/2022042805/5f5e987531ff2f1f5e03cecc/html5/thumbnails/81.jpg)
Comparación parámetrosMemoria Virual–Memoria Cache
14/05/2010 Modelización y Simulación de Jerarquías de Memoria
81
![Page 82: jerarquias de memoria - materias.fi.uba.armaterias.fi.uba.ar/6620/clases/jerarquias_de_memoria.pdf · Reemplazar el elemento de una arreglo por una variable temporal, para que pueda](https://reader034.fdocumento.com/reader034/viewer/2022042805/5f5e987531ff2f1f5e03cecc/html5/thumbnails/82.jpg)
Paginado vs Segmentado
14/05/2010 Modelización y Simulación de Jerarquías de Memoria
82
![Page 83: jerarquias de memoria - materias.fi.uba.armaterias.fi.uba.ar/6620/clases/jerarquias_de_memoria.pdf · Reemplazar el elemento de una arreglo por una variable temporal, para que pueda](https://reader034.fdocumento.com/reader034/viewer/2022042805/5f5e987531ff2f1f5e03cecc/html5/thumbnails/83.jpg)
Mapeo de las Páginas Virtuales
14/05/2010 Modelización y Simulación de Jerarquías de Memoria
83
![Page 84: jerarquias de memoria - materias.fi.uba.armaterias.fi.uba.ar/6620/clases/jerarquias_de_memoria.pdf · Reemplazar el elemento de una arreglo por una variable temporal, para que pueda](https://reader034.fdocumento.com/reader034/viewer/2022042805/5f5e987531ff2f1f5e03cecc/html5/thumbnails/84.jpg)
Proceso de traducción
14/05/2010 Modelización y Simulación de Jerarquías de Memoria
84
![Page 85: jerarquias de memoria - materias.fi.uba.armaterias.fi.uba.ar/6620/clases/jerarquias_de_memoria.pdf · Reemplazar el elemento de una arreglo por una variable temporal, para que pueda](https://reader034.fdocumento.com/reader034/viewer/2022042805/5f5e987531ff2f1f5e03cecc/html5/thumbnails/85.jpg)
Traducción: tabla de Traducciónde páginas.
14/05/2010 Modelización y Simulación de Jerarquías de Memoria
85
![Page 86: jerarquias de memoria - materias.fi.uba.armaterias.fi.uba.ar/6620/clases/jerarquias_de_memoria.pdf · Reemplazar el elemento de una arreglo por una variable temporal, para que pueda](https://reader034.fdocumento.com/reader034/viewer/2022042805/5f5e987531ff2f1f5e03cecc/html5/thumbnails/86.jpg)
14/05/2010 Modelización y Simulación de Jerarquías de Memoria
86
![Page 87: jerarquias de memoria - materias.fi.uba.armaterias.fi.uba.ar/6620/clases/jerarquias_de_memoria.pdf · Reemplazar el elemento de una arreglo por una variable temporal, para que pueda](https://reader034.fdocumento.com/reader034/viewer/2022042805/5f5e987531ff2f1f5e03cecc/html5/thumbnails/87.jpg)
Páginas se alojan en memoriafísica o disco.
14/05/2010 Modelización y Simulación de Jerarquías de Memoria
87
![Page 88: jerarquias de memoria - materias.fi.uba.armaterias.fi.uba.ar/6620/clases/jerarquias_de_memoria.pdf · Reemplazar el elemento de una arreglo por una variable temporal, para que pueda](https://reader034.fdocumento.com/reader034/viewer/2022042805/5f5e987531ff2f1f5e03cecc/html5/thumbnails/88.jpg)
Técnicas de traducción rápida: TLB (Translation Lookaside Buffer) o cache de traducción de páginas.
14/05/2010 Modelización y Simulación de Jerarquías de Memoria
88
CPU TLB
MEMORIA
![Page 89: jerarquias de memoria - materias.fi.uba.armaterias.fi.uba.ar/6620/clases/jerarquias_de_memoria.pdf · Reemplazar el elemento de una arreglo por una variable temporal, para que pueda](https://reader034.fdocumento.com/reader034/viewer/2022042805/5f5e987531ff2f1f5e03cecc/html5/thumbnails/89.jpg)
14/05/2010 Modelización y Simulación de Jerarquías de Memoria
89
![Page 90: jerarquias de memoria - materias.fi.uba.armaterias.fi.uba.ar/6620/clases/jerarquias_de_memoria.pdf · Reemplazar el elemento de una arreglo por una variable temporal, para que pueda](https://reader034.fdocumento.com/reader034/viewer/2022042805/5f5e987531ff2f1f5e03cecc/html5/thumbnails/90.jpg)
TLB. Ejemplo
14/05/2010 Modelización y Simulación de Jerarquías de Memoria
90
![Page 91: jerarquias de memoria - materias.fi.uba.armaterias.fi.uba.ar/6620/clases/jerarquias_de_memoria.pdf · Reemplazar el elemento de una arreglo por una variable temporal, para que pueda](https://reader034.fdocumento.com/reader034/viewer/2022042805/5f5e987531ff2f1f5e03cecc/html5/thumbnails/91.jpg)
Miss en TLB (MIPS)
14/05/2010 Modelización y Simulación de Jerarquías de Memoria
91
![Page 92: jerarquias de memoria - materias.fi.uba.armaterias.fi.uba.ar/6620/clases/jerarquias_de_memoria.pdf · Reemplazar el elemento de una arreglo por una variable temporal, para que pueda](https://reader034.fdocumento.com/reader034/viewer/2022042805/5f5e987531ff2f1f5e03cecc/html5/thumbnails/92.jpg)
TLB y CACHE
14/05/2010 Modelización y Simulación de Jerarquías de Memoria
92
![Page 93: jerarquias de memoria - materias.fi.uba.armaterias.fi.uba.ar/6620/clases/jerarquias_de_memoria.pdf · Reemplazar el elemento de una arreglo por una variable temporal, para que pueda](https://reader034.fdocumento.com/reader034/viewer/2022042805/5f5e987531ff2f1f5e03cecc/html5/thumbnails/93.jpg)
Index Virtual – Tag Físico
14/05/2010 Modelización y Simulación de Jerarquías de Memoria
93
![Page 94: jerarquias de memoria - materias.fi.uba.armaterias.fi.uba.ar/6620/clases/jerarquias_de_memoria.pdf · Reemplazar el elemento de una arreglo por una variable temporal, para que pueda](https://reader034.fdocumento.com/reader034/viewer/2022042805/5f5e987531ff2f1f5e03cecc/html5/thumbnails/94.jpg)
Caches direccionadas pordirecciones virtuales
14/05/2010 Modelización y Simulación de Jerarquías de Memoria
94
CPU TLBMEMORIA
CACHE
![Page 95: jerarquias de memoria - materias.fi.uba.armaterias.fi.uba.ar/6620/clases/jerarquias_de_memoria.pdf · Reemplazar el elemento de una arreglo por una variable temporal, para que pueda](https://reader034.fdocumento.com/reader034/viewer/2022042805/5f5e987531ff2f1f5e03cecc/html5/thumbnails/95.jpg)
FIN
14/05/2010 Modelización y Simulación de Jerarquías de Memoria
95
FIN