Tema 4. Subsistema de Memoria Tema 4. Subsistema de Memoria

Anuncio
Tema 4. Subsistema de Memoria
4.1. Introducción
4.2. Memoria cache
4.3. Memoria principal
4.4. Memoria virtual
Fundamentos de Computadores 2 - ITIG 2004/2005 – Tema 4. Subsistema de memoria
1
Tema 4. Subsistema de Memoria
4.1. Introducción
Jerarquía de memoria y
tecnologías asociadas
4.2. Memoria cache
Principio de localidad
4.3. Memoria principal
Terminología
4.4. Memoria virtual
Fundamentos de Computadores 2 - ITIG 2004/2005 – Tema 4. Subsistema de memoria
2
4.1
I
N
T
R
O
Introducción
•
Memoria Ideal Æ Rápida, grande y barata.
– ¿Qué significa que sea “rápida”?
• Monociclo Æ Poca latencia de operación (tciclo pequeño)
• Multiciclo Æ Que no determine el tiempo de ciclo.
– ¿Qué significa que sea “grande”?
• Que el tamaño de la memoria no limite los programas que puedo
ejecutar.
– ¿Qué significa que sea “barata?
• Abordable económicamente.
•
Sin embargo, la realidad es otra:
– Las memorias grandes son lentas
– Las memorias rápidas son pequeñas (y caras)
Fundamentos de Computadores 2 - ITIG 2004/2005 – Tema 4. Subsistema de memoria
3
4.1
Diferencia de rendimientos entre memoria y procesador
Gap Procesador- Memoria DRAM (latencia)
µProc
60%/año
(2X/1.5años)
1000
CPU
“Ley de Moore”
100
Gap: crece 50%/año
10
DRAM
9%/año
(2X/10 años)
DRAM
1982
1983
1984
1985
1986
1987
1988
1989
1990
1991
1992
1993
1994
1995
1996
1997
1998
1999
2000
1
1980
1981
Rendimiento
I
N
T
R
O
Año
Fundamentos de Computadores 2 - ITIG 2004/2005 – Tema 4. Subsistema de memoria
4
4.1
I
N
T
R
O
Tecnologías de memoria (1)
•
Las tecnologías principales de memoria son
• SRAM: Static Random Access Memory
• Baja densidad, alto consumo potencia, cara, rápida
• Estática Æ no necesita ser “refrescada”
• DRAM: Dynamic Random Access Memory
• Alta densidad, baja potencia, barato, lento
• Dinámica Æ necesita ser “refrescada” regularmente
• Disco Magnético
•
Cada tipo de memoria tiene sus características (1997):
Tecnología de memoria
Tiempo de acceso
Coste por Mbyte
SRAM
5-25 ns
100-250 $
DRAM
60-120 ns
5-100 $
10-20 millones ns
0,10-0,20 $
Disco Magnético
Fundamentos de Computadores 2 - ITIG 2004/2005 – Tema 4. Subsistema de memoria
5
4.1
I
N
T
R
O
Tecnologías de memoria (2)
•
Tendencias tecnológicas:
Capacidad
Velocidad (latencia)
SRAM:
2x en 3 años
2x en 3 años
DRAM:
4x en 3 años
2x en 10 años
Disco:
4x en 3 años
2x en 10 años
Evolución de la memoria DRAM
Año
•
Tamaño
Tiempo ciclo
1980
64 Kb
250 ns
1983
256 Kb
220 ns
1986
1 Mb
190 ns
1989
4 Mb
165 ns
1992
16 Mb
145 ns
1995
64 Mb
1000:1!
120 ns
2:1!
¿Podríamos hacer una memoria ideal con tecnología SRAM? Compromisos:
• Capacidad-Velocidad Æ Alta capacidad y alta velocidad
• Coste-Velocidad Æ Alta velocidad y bajo coste
Fundamentos de Computadores 2 - ITIG 2004/2005 – Tema 4. Subsistema de memoria
6
4.1
I
N
T
R
O
Tecnologías de memoria y tipos de acceso
•
El acceso puede ser aleatorio, pseudo-aleatorio y secuencial.
– Acceso Aleatorio:
• El tiempo de acceso es el mismo para todas las posiciones de memoria
– Ejemplo: DRAM, SRAM
– Acceso Pseudo-aleatorio:
• El tiempo de acceso varía de una posición a otra y depende del
momento en que se realice.
– Ejemplo: Disco magnético, CDROM
– Acceso Secuencial:
• El tiempo de acceso depende de la localización del dato en el medio.
– Ejemplo: Cinta magnética
Fundamentos de Computadores 2 - ITIG 2004/2005 – Tema 4. Subsistema de memoria
7
4.1
I
N
T
R
O
Impacto de la velocidad de la memoria en el rendimiento
•
Supongamos un procesador a 200 MHz (tciclo=5 ns), con un CPI medio de 1.1
ciclos con un sistema de memoria ideal para un programa determinado que
tiene 50% de instrucciones aritmético-lógicas, 30% de instrucciones de cargaalmacenamiento (memoria) y 20% de instrucciones de control.
•
Si ahora ponemos un sistema de memoria real que provoca que el 10% de las
instrucciones de memoria tengan una penalización de 50 ciclos, ¿cómo varía el
CPI?
CPI = CPImem_ideal + ciclos de bloqueo promedio por instrucción =
= 1.1
+ 0,30 * 0,10 * 50 = 1.1 + 1.5 = 2,6 ciclos por instrucción
Rendimiento = Tcpu_mem_ideal / Tcpu_mem_real
= N * 1.1 * 5 / N * 2.6 * 5 = 0.42
Æ Hemos perdido el 58% de rendimiento Æ El procesador pasa ahora el
58% del tiempo bloqueado esperando que lleguen los datos de memoria
Fundamentos de Computadores 2 - ITIG 2004/2005 – Tema 4. Subsistema de memoria
8
4.1
I
N
T
R
O
Organización jerárquica de la memoria
•
Objetivo: Dar la impresión al usuario de que tiene una memoria grande,
rápida y barata.
•
¿Cómo?
– Organizando la memoria de forma jerárquica,
compromiso entre Tecnología, Coste y Velocidad.
•
llegando
así
a
un
¿En qué consiste?
– En utilizar distintos niveles de memorias de forma que los niveles más
cercanos al procesador utilizan tecnología más rápida (aunque son de
menor tamaño y más caras) y los niveles más lejanos al procesador
utilizan tecnología más lenta (y son de mayor tamaño y más baratas).
Fundamentos de Computadores 2 - ITIG 2004/2005 – Tema 4. Subsistema de memoria
9
4.1
I
N
T
R
O
Visión general del sistema de memoria
Procesador
Control
Memoria
Memoria
Memoria
Ruta de
Datos
Velocidad: Más rápida
Tamaño: Más pequeña
Coste: Más cara
Memoria
Memoria
Más lenta
Más grande
Más barata
Fundamentos de Computadores 2 - ITIG 2004/2005 – Tema 4. Subsistema de memoria
10
4.1
I
N
T
R
O
¿Por qué funciona la jerarquía de memorias?
•
Los programas no acceden de forma aleatoria a su código y a sus datos, sino
que tienden a tener un comportamiento predefinido que sigue un determinado
patrón.
•
Principio de localidad de referencia: Los programas acceden en cualquier
instante de tiempo a una porción de memoria relativamente pequeña del
espacio de direcciones total.
Probabilidad de referencia
en un instante de tiempo
determinado
n
0
Espacio de direcciones
2 -1
Fundamentos de Computadores 2 - ITIG 2004/2005 – Tema 4. Subsistema de memoria
11
4.1
I
N
T
R
O
Principio de localidad
•
Localidad Temporal: Si se referencia una posición de memoria en un
instante de tiempo determinado, existe una alta probabilidad de que vuelva a
ser referenciada en los instantes siguientes.
– Ejemplo: Instrucciones en bucles, variables
•
Localidad Espacial: Si se referencia una posición de memoria en un instante
determinado, existe una alta probabilidad de que en los instantes siguientes se
referencien las posiciones de memoria cercanas.
– Ejemplo: Acceso a los elementos de un vector de datos, acceso a
instrucciones secuenciales.
Fundamentos de Computadores 2 - ITIG 2004/2005 – Tema 4. Subsistema de memoria
12
4.1
I
N
T
R
O
Niveles de la jerarquía y tecnologías asociadas
•
Aplicando el Principio de Localidad:
– Presentamos al usuario tanta memoria como sea posible en la tecnología
más barata.
– Proporcionamos acceso a la velocidad ofrecida por la tecnología más
rápida.
CPU
Procesador
Tipo de memoria
Semiconductor
SRAM
Semiconductor
L1 Cache
SRAM
Semiconductor
L2 Cache
SRAM
Semiconductor
Memoria principal
DRAM
Registros
Registros
Tarjeta
Nivel jerárquico
L1 Cache
L2 Cache
Sistema
Memoria principal
Disco
Cinta Magnética
Tecnología
Tamaño
Tiempo
acceso
512 bytes
5 ns
32 KB
10 ns
512 KB
25 ns
32 MB
75 ns
Disco magnético
Disco duro
2 GB
Disco óptico
CD-ROM
xx GB
Cinta magnética
Cinta
xx GB
10 ms
10 MB/seg
300 ms
600 KB/seg
seg-min
10 MB/min
Discos ópticos
Fundamentos de Computadores 2 - ITIG 2004/2005 – Tema 4. Subsistema de memoria
13
4.1
I
N
T
R
O
Terminología (1)
•
Nivel superior e inferior
– Entre dos niveles adyacentes de la jerarquía de memoria se denomina
nivel superior al que está más cerca del procesador y nivel inferior al
que está más lejos.
– El nivel superior es siempre mas pequeño y rápido que el inferior.
•
Bloque
– Es la unidad mínima de información que está presente o no en un nivel de
la jerarquía.
Ⱥ Las transferencias de información se realizan siempre entre niveles adyacentes
de la jerarquía.
Ⱥ La cantidad mínima de información que se transfiere es un bloque.
Fundamentos de Computadores 2 - ITIG 2004/2005 – Tema 4. Subsistema de memoria
14
4.1
I
N
T
R
O
Terminología (2)
•
Acierto y Fallo
– Si los datos que se piden a un nivel se encuentran allí, se dice que se ha
producido un acierto (hit). En caso contrario se produce un fallo (miss).
– Cuando se produce un fallo en un nivel se accede al nivel inmediatamente
inferior para buscar esa información.
•
Tasa de fallos y de aciertos
– La tasa de aciertos de un nivel (hit rate) Æ porcentaje de accesos
encontrados en ese nivel, sobre el total de accesos realizados a dicho
nivel.
– La tasa de fallos de un nivel (miss rate) Æ porcentaje de accesos no
encontrados en ese nivel, sobre el total de accesos realizados a dicho
nivel. También se define como (1-tasa de aciertos).
Fundamentos de Computadores 2 - ITIG 2004/2005 – Tema 4. Subsistema de memoria
15
4.1
I
N
T
R
O
Terminología (3)
•
La tasa de aciertos y/o la tasa de fallos se usan a menudo como medida del
rendimiento de la jerarquía de memoria.
– Menor tasa de fallos Æ menos veces hay que recurrir a los niveles más
bajos (y más lentos) de la jerarquía Æ tiempo medio de acceso a memoria
es mucho menor.
– Una tasa de fallos baja indica que se accede pocas veces a los niveles más
lentos de la jerarquía de memoria.
Fundamentos de Computadores 2 - ITIG 2004/2005 – Tema 4. Subsistema de memoria
16
4.1
I
N
T
R
O
Terminología (4)
•
Tiempo de acierto
– Tiempo necesario para acceder a un datos en el nivel superior de la
jerarquía.
– Incluye el tiempo necesario para detectar si se trata de un acierto o de un
fallo.
•
Penalización de fallo
– Tiempo necesario para reemplazar un bloque del nivel superior por el
correspondiente bloque del nivel inferior + Tiempo de suministrar este
bloque al procesador.
Tiempo de acierto << Penalización de fallo
Fundamentos de Computadores 2 - ITIG 2004/2005 – Tema 4. Subsistema de memoria
17
4.1
I
N
T
R
O
Evaluación del rendimiento de una jerarquía de memoria
•
Métrica de rendimiento
– Tiempo medio que se tarda en hacer un acceso a memoria
TMEDIO= Tiempo de acierto + Tasa de fallos * Penalización de fallos
Fundamentos de Computadores 2 - ITIG 2004/2005 – Tema 4. Subsistema de memoria
18
4.1
I
N
T
R
O
Cuestiones sobre cualquier nivel de la jerarquía de memoria
•
Q1: ¿Dónde puede ubicarse un bloque en el nivel superior?
– Ubicación de bloque
•
Q2: ¿Cómo se encuentra un bloque si está en el nivel superior?
– Identificación del bloque
•
Q3: ¿Qué bloque debe reemplazarse en caso de fallo?
– Sustitución de bloque
•
Q4: ¿Qué ocurre en una escritura?
– Estrategias de escritura
•
A continuación analizaremos cada una de estas cuestiones para los niveles de
cache (nivel superior) y memoria principal (nivel inferior).
Fundamentos de Computadores 2 - ITIG 2004/2005 – Tema 4. Subsistema de memoria
19
Tema 4. Subsistema de Memoria
4.1. Introducción
4.2. Memoria cache
4.3. Memoria principal
Introducción
Métodos de correspondencia
(ubicación de bloque)
Identificación de bloque
4.4. Memoria virtual
Sustitución de bloque
Estrategias de escritura
Evaluación del rendimiento
Clasificación de los fallos
Elección del tamaño de bloque
Fundamentos de Computadores 2 - ITIG 2004/2005 – Tema 4. Subsistema de memoria
20
4.2
M
C
A
C
H
E
Introducción
•
Originariamente, cache es el nombre del nivel de la jerarquía de memoria
entre los registros y la memoria principal.
•
Hoy día es cualquier memoria gestionada para aprovechar la localidad de los
accesos.
– Ejemplo: Cache de disco.
•
La práctica totalidad de las máquinas actuales poseen uno o varios niveles de
memoria cache que se encuentran dentro y/o fuera del chip.
•
(En alguna bibliografía, al bloque de la cache se le denomina línea)
Fundamentos de Computadores 2 - ITIG 2004/2005 – Tema 4. Subsistema de memoria
21
4.2
M
C
A
C
H
E
Q1: ¿Dónde puede ubicarse un bloque en una cache? (1)
•
Cuando una cache solicita un bloque al nivel inferior, tiene que decidir dónde
lo ubica
•
La posible ubicación de un bloque crea tres categorías en la organización de
las caches
– Caches de correspondencia directa (direct mapped cache)
– Caches completamente asociativas (fully associative cache)
– Caches de correspondencia
asociative cache)
asociativa
por
conjuntos
(set
Fundamentos de Computadores 2 - ITIG 2004/2005 – Tema 4. Subsistema de memoria
22
4.2
M
C
A
C
H
E
Q1: ¿Dónde puede ubicarse un bloque en una cache? (2)
•
Correspondencia directa
– Cada bloque solo puede ir en una posición de la cache.
– Para asignar la posición donde debe ir cada bloque se utiliza la dirección de
memoria:
Dirección de la estructura de bloque MODULO Número de bloques de la cache
00
01
10 11
Memoria cache
Memoria
principal
Bloque 0
Bloque 15
0000 0001 0010 0011 0100 0101 0110 0111 1000 1001 1010 1011 1100 1101 1110 1111
Fundamentos de Computadores 2 - ITIG 2004/2005 – Tema 4. Subsistema de memoria
23
4.2
M
C
A
C
H
E
Q1: ¿Dónde puede ubicarse un bloque en una cache? (3)
•
Correspondencia totalmente asociativa
– Cada bloque puede ir en cualquier posición de la cache.
00
01
10 11
Memoria cache
Memoria
principal
Bloque 0
Bloque 15
0000 0001 0010 0011 0100 0101 0110 0111 1000 1001 1010 1011 1100 1101 1110 1111
Fundamentos de Computadores 2 - ITIG 2004/2005 – Tema 4. Subsistema de memoria
24
4.2
M
C
A
C
H
E
Q1: ¿Dónde puede ubicarse un bloque en una cache? (4)
•
Correspondencia asociativa por conjuntos
– Conjunto: Grupo de bloques de la cache.
– Primero se hace corresponder el bloque a un conjunto, y luego dentro del
conjunto puede ubicarse en cualquiera de los bloques.
Dirección de la estructura de bloque MODULO Número de conjuntos de la cache
Asociativa por conjuntos de N vías ิ Asociatividad N ิ N bloques por conjunto
00 01 10 11
Conjunto 0
Memoria
cache
Conjunto 1
Memoria
Bloque 0
principal
Bloque 15
0000 0001 0010 0011 0100 0101 0110 0111 1000 1001 1010 1011 1100 1101 1110 1111
Fundamentos de Computadores 2 - ITIG 2004/2005 – Tema 4. Subsistema de memoria
25
4.2
M
C
A
C
H
E
Ejemplo de ubicación de bloque
•
En una cache de 8 bloques ¿En qué bloque de la cache se ubicaría el
bloque 12 de memoria principal?
Totalmente
asociativa
El bloque 12 puede ir
en cualquier bloque de
la cache
Correspondencia
directa
El bloque 12 sólo puede
ir en el bloque 4:
12 MOD 8
0 1 2 3 4 5 6 7
0 1 2 3 4 5 6 7
0
1
2
3
4
5
6
7
8
Asociativa por
conjuntos (2 vías)
El bloque 12 puede ir
en cualquier bloque del
conjunto 0:
12 MOD 4
0 1 2 3 4 5 6 7
c0 c1 c2 c3
9 10 11 12 13 14 15 16 17
Fundamentos de Computadores 2 - ITIG 2004/2005 – Tema 4. Subsistema de memoria
26
4.2
M
C
A
C
H
E
Extremos en la organización de la cache (1)
•
Para un tamaño dado, las diversas organizaciones son realmente un continuo
de la política de asociatividad por conjuntos:
Correspondencia directa = asociativa por conjuntos de 1 vía
Totalmente asociativa = asociativa por conjuntos de L vías
Parámetros de la organización:
A: Asociatividad o número de vías por conjunto
B: Tamaño de bloque
S: Número de conjuntos
L: Número de bloques en la cache
C: Tamaño de la cache
Asociatividad (A)
Nombre
Relaciones de interés:
C=S*A*B
L = C/B
L=S*A
Nº conjuntos (S)
Características
Menor tiempo de acceso
1
Correspondencia directa
L
n
Asociativa por conjuntos n vías
L/n
Compromiso entre ambas
L
Totalmente asociativa
1
Mejor tasa de aciertos
Menor tasa de aciertos
Número de comparadores
Fundamentos de Computadores 2 - ITIG 2004/2005 – Tema 4. Subsistema de memoria
27
4.2
M
C
A
C
H
E
Extremos en la organización de la cache (2)
One-way set associative
(direct mapped)
Asociativa por conjuntos
1 vía (directa)
Block
Asociativa por conjuntos
2 vías
Tag Data
0
Two-way set associative
1
2
Set
3
0
4
1
5
2
6
3
Tag Data Tag Data
7
Asociativa por conjuntos
8 vías (totalmente asociativa)
Four-way set associative
Set
Asociativa por conjuntos
4 vías
Tag Data Tag Data Tag Data Tag Data
0
1
Eight-way set associative (fully associative)
Tag Data Tag Data Tag Data Tag Data Tag Data Tag Data Tag Data Tag Data
Fundamentos de Computadores 2 - ITIG 2004/2005 – Tema 4. Subsistema de memoria
28
4.2
M
C
A
C
H
E
Q2: ¿Cómo se encuentra un bloque en una cache? (1)
•
Puesto que en el bloque 0 de la cache pueden haber bloques distintos de
memoria principal....
...¿cómo se sabe qué bloque de memoria principal está ocupando en cada
momento cada bloque de la cache? Æ Identificación del bloque
00
01
10 11
Memoria cache
Memoria
principal
Bloque 0
Bloque 15
0000 0001 0010 0011 0100 0101 0110 0111 1000 1001 1010 1011 1100 1101 1110 1111
Fundamentos de Computadores 2 - ITIG 2004/2005 – Tema 4. Subsistema de memoria
29
4.2
M
C
A
C
H
E
Q2: ¿Cómo se encuentra un bloque en una cache? (2)
•
Identificación de bloque Æ Información adicional para cada bloque de la
cache que permite identificar el bloque de memoria que ocupa ese bloque de
cache.
– Campo de etiqueta de dirección (tag) Æ Parte alta de la dirección que no
se utiliza para indexar la cache.
– Bit de validez Æ Indica si el bloque tiene datos válidos (V=1) o no (V=0)
•
Ejemplo: cache con 4 bloques y 8 bytes/bloque.
B lo q u e
0
1
2
3
V a lid e z
V
V
V
V
E tiqu e ta
tag
tag
tag
tag
b7
b7
b7
b7
b6
b6
b6
b6
D atos (8
b5
b4
b5
b4
b5
b4
b5
b4
b yte s)
b3
b2
b3
b2
b3
b2
b3
b2
b1
b1
b1
b1
b0
b0
b0
b0
Fundamentos de Computadores 2 - ITIG 2004/2005 – Tema 4. Subsistema de memoria
30
4.2
M
C
A
C
H
E
Q2: ¿Cómo se encuentra un bloque en una cache? (3)
•
La dirección que suministra el procesador tiene los siguientes campos:
Dirección del bloque de memoria
(byte dentro del bloque)
Índice
Tag
Desplazamiento
• Índice Æ selecciona el conjunto
• Tag Æ chequea todos los bloques del conjunto
• Desplazamiento Æ dirección del dato dentro del bloque
( Las caches totalmente asociativas no tienen índice)
Fundamentos de Computadores 2 - ITIG 2004/2005 – Tema 4. Subsistema de memoria
31
4.2
M
C
A
C
H
E
Q2: ¿Cómo se encuentra un bloque en una cache? (4)
•
Ejemplo: En una cache de correspondencia directa con 64 bloques y tamaño
de bloque de 16 bytes, ¿en qué bloque está el dato cuya dirección es 1200?
• 64 bloques
• Correspondencia directa
ĺ 1 vía
• Tamaño del bloque = 16 bytes = 24
• 32 – 6 – 4 = 22
ĺ 64 conjuntos = 2 ĺ 6 bits para el índice
6
Ⱥ 4 bits para el desplazamiento
Ⱥ 22 bits para tag
120010 = 0000 04B016 = 0000 0000 0000 0000 0000 0100 1011 00002
0000 0000 0000 0000 0000 01
001011
(6 bits)
0000
(4bits)
Bloque cache = Dirección bloque MODULO Nº bloques cache = 75 MOD 64 = 11
Dirección bloque = parte entera (dirección / nº bytes por bloque)
= parte entera (1200/16) = 75
Fundamentos de Computadores 2 - ITIG 2004/2005 – Tema 4. Subsistema de memoria
32
4.2
M
C
A
C
H
E
Tamaño total de la cache
•
Tamaño total de la cache = tamaño datos + tamaño etiquetas + tamaño bits
validez
•
Ejemplo: Calcular el tamaño total de una memoria cache de correspondencia
directa con 64 KB de datos y bloques de 4 palabras suponiendo que la dirección
es de 32 bits.
12
Nº bloques =Nº conjuntos= 64 Kbytes/ 16 bytes = 4 K = 2
Tamaño del bloque = 16 bytes = 24
ĺ 12 bits para el índice
Ⱥ 4 bits para el desplazamiento
32-4-12= 16 bits
12 bits
4 bits
TAG
Nº de bloque
Desplazamiento
Tamaño de datos = 64Kbytes
Tamaño etiqueta = 4 K * 16 bits = 64 Kbits
Tamaño bits validez = 4 K * 1 bit = 4 Kbits
Tamaño total = 64 Kbytes + 64 Kbits + 4 Kbits = 72.5 Kbytes
De otra forma: 4K * (16 bytes + 16 bits + 1 bit) = 72.5 Kbytes
Fundamentos de Computadores 2 - ITIG 2004/2005 – Tema 4. Subsistema de memoria
33
4.2
M
C
A
C
H
E
Hardware necesario (1)
•
Correspondencia directa o asociativa por conjuntos de 1 vía
Address (showing bit positions)
31 30
13 12 11
210
Byte
offset
Parámetros:
–
–
–
Hit
Bloques de 1 palabra
1024 bloques o conjuntos
Tamaño total de la cache =
= (1+20+32)*1024
= 53kbits
10
20
Tag
Data
Index
Index Valid Tag
Data
0
1
2
1021
1022
1023
20
32
Fundamentos de Computadores 2 - ITIG 2004/2005 – Tema 4. Subsistema de memoria
34
4.2
M
C
A
C
H
E
Hardware necesario (2)
•
Asociativa por conjuntos de 4 vías
31 30
12 11 10 9 8
3210
8
22
Parámetros:
–
–
–
–
–
–
A = 4 bloques/conjunto
B = 1 palabra = 4 bytes
S = 28 = 256 conjuntos
L = S*A = 256 *4
= 1024 bloques
C=S*A*B
= 256*4*4
= 4096 bytes (datos)
Index
0
1
2
V
Tag
Data
V
Tag
Data
V
Tag
Data
V
Tag
Data
253
254
255
22
32
Tamaño total =
= 256*[4*(1+22+32)]
= 7040 bytes
4-to-1 multiplexor
Hit
•
Data
Aumento de la asociatividad Æ Aumento de la complejidad hardware
Fundamentos de Computadores 2 - ITIG 2004/2005 – Tema 4. Subsistema de memoria
35
4.2
M
C
A
C
H
E
Efecto de aumentar la asociatividad (1)
•
Incrementando la asociatividad se disminuye el índice y se expande la
etiqueta
– El índice selecciona al conjunto
– La etiqueta se usa para seleccionar el bloque correspondiente
– El desplazamiento se usa para obtener el dato
•
Aumentar la asociatividad es una decisión de compromiso entre el coste de un
fallo frente al coste de la asociatividad (en tiempo y en circuitería extra).
Fundamentos de Computadores 2 - ITIG 2004/2005 – Tema 4. Subsistema de memoria
36
4.2
M
Efecto de aumentar la asociatividad (2)
C
A
C
H
E
•
Ejemplo:
Dada una cache con 4K bloques distintos de tamaño 4 bytes y direcciones de
32 bits, encontrar el número total de conjuntos y el número total de bits
necesarios para las etiquetas suponiendo que la cache fuese de
correspondencia directa, asociativa por conjuntos de 2 vías y de 4 vías, y
totalmente asociativa.
Tamaño de las etiquetas:
Correspondencia directa Æ 72 Kbits
Asociativa por conjuntos de 2 vías Æ 76 Kbits
Asociativa por conjuntos de 4 vías Æ 80 Kbits
Totalmente asociativa Æ 120 Kbits
37
Fundamentos de Computadores 2 - ITIG 2004/2005 – Tema 4. Subsistema de memoria
4.2
M
Características extremas de las caches
C
A
C
H
E
Correspondencia directa
Totalmente asociativa
•
Un bloque solo puede ubicarse en un
bloque de la cache
•
Un bloque puede estar
cualquier lugar de la cache
•
Tasa de aciertos baja
– Casos patológicos pueden dar 0%
de tasa de aciertos.
•
Mejor tasa de aciertos
•
Tiempo de acceso bajo
– No multiplexor para datos
•
Tiempo de acceso más alto.
•
Hardware más sencillo
– Acceso paralelo al tag y a los
datos
•
Hardware más complejo.
– Muchos comparadores
– Memorias y buses anchos
(tag grande)
Fundamentos de Computadores 2 - ITIG 2004/2005 – Tema 4. Subsistema de memoria
en
38
4.2
M
C
A
C
H
E
Q3: ¿Qué bloque debe reemplazarse en caso de fallo?
•
Cache con Correspondencia directa Æ No tenemos que decidir. Un bloque sólo
puede estar en un lugar de la cache.
•
Cache con Asociatividad Æ Se puede escoger dónde situar el nuevo bloque, y
qué bloque reemplazar. Existen distintas políticas de reemplazo:
– Aleatoria (a veces pseudoaleatoria)
• El bloque de la cache a sustituir se elige aleatoriamente.
• Fácil implementación hardware.
– Menos recientemente usado (LRU)
• Se registran los accesos a los datos. El bloque a sustituir es el que
hace más tiempo que no se referencia.
• Solución muy cara cuando aumenta el número de bloques a gestionar
Æ se implementa una aproximación.
– FIFO
• Menos eficiente que la aleatoria y más difícil de implementar.
•
La política de reemplazo juega un papel más importante en las memorias
cache más pequeñas.
Fundamentos de Computadores 2 - ITIG 2004/2005 – Tema 4. Subsistema de memoria
39
4.2
M
C
A
C
H
E
Tasa de falllos vs. Política de reemplazo
•
Ejemplo tomado de una traza VAX con tamaño de bloque de 16 bytes
Tasa de fallos
Tamaño
•
2 Vías
LRU
Aleatorio
4 Vías
LRU
Aleatorio
8 Vías
LRU
Aleatorio
16 KB
5,18 %
5,69 % 4,67 %
5,29 % 4,39 %
4,96 %
64 KB
1,88 %
2,01 % 1,54 %
1,66 % 1,39 %
1,53 %
256 KB
1,15 %
1,17 % 1,13 %
1,13 % 1,12 %
1,12 %
Observaciones realizadas:
– Para un tamaño de cache dado, a medida que aumentamos la asociatividad
disminuye la tasa de fallos, independientemente de la política de reemplazo.
– Para caches pequeñas funciona mejor la política de reemplazo LRU.
– También se observa que para caches de mayor tamaño hay poca diferencia entre los
algoritmos LRU y aleatorio, sobre todo cuando se aumenta la asociatividad.
Fundamentos de Computadores 2 - ITIG 2004/2005 – Tema 4. Subsistema de memoria
40
4.2
M
C
A
C
H
E
Q4: ¿Qué ocurre en una escritura? (1)
•
Las lecturas dominan los accesos a la cache ya que todas las instrucciones
deben leerse.
•
Las escrituras son menos frecuentes y tardan más
– La comparación de las etiquetas y la escritura de los datos no pueden
realizarse en paralelo Æ La escritura no puede comenzar hasta que se
comprueba que las etiquetas coinciden.
•
Políticas de escritura:
– Escritura directa (write through)
– Postescritura (write back ó copy back)
Fundamentos de Computadores 2 - ITIG 2004/2005 – Tema 4. Subsistema de memoria
41
4.2
M
C
A
C
H
E
Q4: ¿Qué ocurre en una escritura? (2)
•
Políticas de escritura: Escritura directa (write through)
– La información se escribe en la cache y en la memoria principal.
– La CPU debe esperar a que finalice la escritura en el nivel inferior Æ Detención
– Optimización Æ Buffer de escritura
• La CPU escribe en un buffer y sigue sin detención.
• Aspectos:
Profundidad
del
buffer
y
velocidades
generación/realización de escrituras.
relativas
de
– Mantiene la coherencia de forma natural.
– Aumenta el tráfico de memoria.
– Los fallos de cache son más sencillos de tratar puesto que permiten desechar el
bloque en un reemplazo sin necesidad de una actualización previa de la memoria
principal.
Fundamentos de Computadores 2 - ITIG 2004/2005 – Tema 4. Subsistema de memoria
42
4.2
M
C
A
C
H
E
Q4: ¿Qué ocurre en una escritura? (3)
•
Políticas de escritura: Postescritura (write back ó copy back)
– La información se escribe sólo en el bloque de la cache y se marca que ha sido
modificada mediante el bit de modificación (dirty bit).
– Un bloque modificado en la cache (dirty bit=1) se escribe en memoria principal sólo
cuando es reemplazado. Si no fue modificado, simplemente se desecha.
– No mantiene la coherencia de forma natural Æ hay que introducir métodos de
coherencia (entrada/salida por DMA y multiprocesadores).
– Bajo tráfico de memoria
Fallo de lectura
– Las escrituras son rápidas pero las
lecturas pueden ser más lentas si
dirty bit=1.
¿Bloque modificado?
Sí
No
Actualizar bloque en memoria
Leer bloque
Fundamentos de Computadores 2 - ITIG 2004/2005 – Tema 4. Subsistema de memoria
43
4.2
M
C
A
C
H
E
Q4: ¿Qué ocurre en una escritura? (4)
•
Cuando el procesador intenta escribir en una dirección de memoria que no se
encuentra en ningún bloque de la cache se produce un fallo de escritura
•
Si se produce Fallo de escritura, ¿qué se hace con el bloque?:
– Ubicar en escritura (write allocate)
• El bloque se carga en la cache y luego se actúa como en un acierto de
escritura.
• Similar a un fallo de lectura.
• Generalmente utilizada por caches de postescritura, esperando que
siguientes escrituras sean capturadas por la cache.
– No ubicar en escritura (no write allocate)
• El bloque se modifica directamente en la memoria principal (nivel
inferior) y no se carga en la cache.
• Generalmente utilizada por caches de escritura directa, ya que las
escrituras posteriores a ese bloque deberán ir, en cualquier caso, a
memoria.
Fundamentos de Computadores 2 - ITIG 2004/2005 – Tema 4. Subsistema de memoria
44
4.2
M
C
A
C
H
E
Evaluación del rendimiento de una cache (1)
•
El comportamiento de la cache influye en el rendimiento de la CPU puesto que
puede generar más ciclos de ejecución de los estrictamente necesarios para
ejecutar el programa, cuando los datos no se encuentran en la cache.
TCPU = (Ciclos_Ejecución_CPU + Ciclos_Bloqueo_Memoria) x Tiempo de ciclo
Tiempo que la CPU está
ejecutando instrucciones.
Incluye:
• Ciclos de reloj de aciertos
en cache
Tiempo que la CPU está
bloqueada
esperando
por
datos de memoria.
Incluye:
• Penalización de fallos
• Detenciones en el buffer de
escritura
• Detenciones en la memoria
virtual
TCPU = N x (CPIEjecución + CPIBloqueo_Memoria) x Tciclo
Fundamentos de Computadores 2 - ITIG 2004/2005 – Tema 4. Subsistema de memoria
45
4.2
M
C
A
C
H
E
Evaluación del rendimiento de una cache (2)
• Si asumimos que los ciclos de
fundamentalmente a fallos en cache:
bloqueo
de
memoria
se
deben
Ciclos_Bloqueo_Memoria Ciclos_Bloqueo_Lectura Ciclos_Bloqueo_Escritura
Ciclos_Bloqueo_Lectura Tasa _ lecturas uTasa_fallos_lecturas u Penalización_fallos_lectura
Ciclos_Bloqueo_Escritura Tasa _ escrituras uTasa_fallos_escritura u Penalización_fallo_escritura Bloqueos_buffer_escritura
• Además, con escritura write-through las penalizaciones de lectura y
escritura son las mismas, por lo que
Ciclos_Blo queo_Memoria Tasa _ accesos _ a _ memoria uTasa_fallo s u Penalizaci ón_fallos
Fundamentos de Computadores 2 - ITIG 2004/2005 – Tema 4. Subsistema de memoria
46
4.2
M
C
A
C
H
E
Evaluación del rendimiento de una cache (3) - Ejemplo
•
Supongamos que tenemos un procesador con cache ideal en el que
ejecutamos un programa que realiza 1.4 accesos a memoria por instrucción. A
este procesador el conectamos una cache real que presenta una tasa de fallos
del 10% y una penalización de fallos de 10 ciclos. Calcular del impacto en el
rendimiento de haber incluido una cache real
TCPU_con_Cache
= N x (CPIEjecución + 1.4 x 0.1 x 10) x Tciclo
TCPU_sin_Cache
= N x (CPIEjecución) x Tciclo
Si CPIEjecución= 1.4 (Ej. RISC) Ⱥ CPIMedio= 1.4 + 1.4 = 2.8 (50% más lento)
Si CPIEjecución=
•
8 (Ej. CISC) Ⱥ CPIMedio= 8 + 1.4 = 9.4 (15 % más lento)
Conclusión: El efecto de la detención de memoria es muy significativo cuando
el CPI y Tciclo son bajos.
– A más bajo CPI, el impacto es más pronunciado.
– La penalización de fallos se mide en ciclos de reloj. A igual tiempo de
acceso a memoria y menor Tciclo (mayor frecuencia) la penalización de
fallos es mayor.
Fundamentos de Computadores 2 - ITIG 2004/2005 – Tema 4. Subsistema de memoria
47
4.2
M
C
A
C
H
E
Evaluación del rendimiento de una cache (4) - Ejercicio
•
Supongamos que ejecutamos un programa y obtenemos una tasa de fallos del 3%. Si la
máquina donde lo ejecutamos tiene un CPI de 2 sin bloqueos a memoria y una
penalización de fallos de 40 ciclos para todos los fallos, determinar cuánto más rápida
sería una máquina con una cache perfecta (sin fallos).
(Suponga que el 36% de las instrucciones del programa son de acceso a memoria)
•
Suponga ahora que a la máquina se le aplica una segmentación mejor consiguiendo
disminuir el CPI de 2 a 1, sin cambiar la frecuencia de reloj. ¿Cuánto más rápida es ahora
la máquina con cache ideal respecto a la máquina con cache real? ¿Qué porcentaje de
tiempo de ejecución se emplea en bloqueos de memoria en cada caso?
•
Si en vez de tocar la segmentación se dobla la frecuencia de reloj de la máquina original,
compare los CPI de la máquina rápida y lenta cuando ambas tienen memoria real.
¿Cuánto más rápida será la máquina con cache real y reloj rápido respecto a la máquina
con cache real y reloj lento? (supónganse los mismos datos de tasa de fallos, etc..)
Fundamentos de Computadores 2 - ITIG 2004/2005 – Tema 4. Subsistema de memoria
48
4.2
M
C
A
C
H
E
Clasificación de los fallos de la cache
•
Los fallos de la cache son de uno de los tipos siguientes:
– Forzosos (compulsory)
• El primer acceso a un bloque no está en la cache y debe ser traído
desde la memoria principal a la cache. También llamados fallos de
primera referencia o de arranque frío.
– Capacidad (capacity)
• Si la cache no puede contener todos los bloques necesarios durante la
ejecución del programa, se descartan bloques de la cache (sustitución)
que posteriormente se recuperan.
– Conflicto (conflict)
• Si la estrategia de ubicación de bloque es de correspondencia directa o
asociativa por conjuntos, se pueden producir fallos de conflicto ya que
a varios bloques de la memoria principal les puede corresponder el
mismo conjunto en la cache. En estos casos es necesario descartar un
bloque a pesar de que existen bloques libres en la cache.
Fundamentos de Computadores 2 - ITIG 2004/2005 – Tema 4. Subsistema de memoria
49
4.2
M
C
A
C
H
E
Introducción de la cache en el diseño del procesador
•
¿Cómo?
– Cambiando las memorias del diseño del procesador por memorias cache.
•
Si hay un acierto Æ la ruta de datos continúa usando los datos igual que antes
(modificaciones mínimas)
•
Si hay un fallo Æ bloquear el procesador, buscar los datos en el siguiente nivel
de memoria, copiarlos en la cache y reanudar la ejecución de la instrucción
que causó el fallo.
•
Tratamiento de fallo de lectura de instrucción:
1. Enviar el valor del (PC-4) a la memoria.
2. Acceso a memoria principal y esperar a que se complete el acceso.
3. Escribir el bloque en la cache (datos, etiqueta y bit de validez).
4. Reiniciar la ejecución de la instrucción desde el principio.
•
Tratamiento de fallo de lectura de datos Æ Similar.
Fundamentos de Computadores 2 - ITIG 2004/2005 – Tema 4. Subsistema de memoria
50
4.2
M
C
A
C
H
E
Elección del tamaño de bloque en la cache
• Bloque de Tamaño 1 palabra
– No explota localidad espacial
– Escrituras sencillas (no importa si hay fallo de escritura)
• Bloque de Tamaño multipalabra
– Explota mejor la localidad espacial, disminuyendo entonces la tasa de fallos,
EXCEPTO si se aumenta mucho el tamaño de bloque (dejando fijo el tamaño total de
la cache) porque entonces el número de bloques diferentes en la cache es muy
pequeño para poder explotar la localidad temporal y se produce un aumento de la
tasa de fallos.
– El tratamiento de las escrituras es más complicado: Si hay fallo de escritura se
requiere hacer una lectura previa.
– Aumenta la penalización de un fallo. A medida que el bloque comienza a ser muy
grande la penalización de fallos crece. Si crece más de lo que disminuye la tasa de
fallos entonces el producto (tasa de fallos * penalización de fallos) aumenta,
produciéndose una disminución global del rendimiento.
– Aumenta la eficiencia de la cache, al aumentar el ratio (información útil de datos
/información total) (por disminuir el nº de etiquetas en relación a los datos)
Fundamentos de Computadores 2 - ITIG 2004/2005 – Tema 4. Subsistema de memoria
51
4.2
M
C
A
C
H
E
Algunas técnicas para mejorar el rendimiento de la cache
• Asociatividad – reduce la tasa de fallos
– Introducir asociatividad permite mayor flexibilidad en la ubicación de los bloques en
la cache, permitiendo así explotar mejor la localidad temporal.
• Memorias cache multinivel – reducen la penalización de fallos
– Se añade un segundo nivel de cache fuera del chip (L2) con un tiempo de acceso
menor que el de la memoria principal.
– Cuando ocurre un fallo en la cache primaria (L1), se accede a la cache secundaria
(L2) para buscar los datos.
• Si están allí Æ se reduce la penalización de fallo.
• Si no están Æ accedemos a la memoria principal. En este caso la penalización de
fallo es mucho mayor porque incluye el tiempo de acceder a la L2 y fallar.
– Como el acceso a la L2 cuesta pocos ciclos (en relación con lo que cuesta un acceso a
la memoria principal), el diseño se centra en disminuir el tiempo de acierto de la L1
(para así poder disminuir el tciclo) más que en disminuir su tasa de fallos.
– Normalmente la L1 es de pequeño tamaño y con asociatividad 2 o 4, mientras que la
L2 es grande y con asociatividad 2, como mucho.
Fundamentos de Computadores 2 - ITIG 2004/2005 – Tema 4. Subsistema de memoria
52
Tema 4. Subsistema de Memoria
4.1. Introducción
4.2. Memoria cache
4.3. Memoria principal
Conceptos generales
4.4. Memoria virtual
Organizaciones para mejorar el
rendimiento
Algunas tecnologías DRAM
Fundamentos de Computadores 2 - ITIG 2004/2005 – Tema 4. Subsistema de memoria
53
4.3
M
P
R
I
N
C
I
P
A
L
Conceptos generales
•
La memoria principal es el siguiente nivel de la jerarquía de memorias, a
continuación de la/s cache/s, y por tanto satisface las demandas de ese nivel.
•
Además, sirve de interface para la E/S del sistema computador Æ Destino de
las entradas y fuente de las salidas.
•
Está construida con DRAMs, las cuales están pensadas para aumentar la
densidad en lugar de disminuir el tiempo de acceso
•
Al ser el siguiente nivel de la jerarquía, y por el hecho de ser un nivel más
lento que la cache, su organización influye en la penalización de fallo y por
tanto influye en el rendimiento.
Fundamentos de Computadores 2 - ITIG 2004/2005 – Tema 4. Subsistema de memoria
54
4.3
M
P
R
I
N
C
I
P
A
L
Rendimiento de la memoria principal
•
Los parámetros para evaluar el rendimiento de la memoria principal son
– Latencia : tiempo en obtener el primer acceso
– Ancho de banda : número de bytes leídos o escritos por unidad de tiempo
•
Para lograr un buen rendimiento, hay que conseguir el mejor ancho de banda
posible entre la cache y la memoria principal, ya que así se disminuye el
tiempo de transferencia. El tiempo de acceso o latencia es difícil de reducir.
•
Las posibles organizaciones para mejorar el rendimiento de la memoria
principal son
– Aumentar el ancho de la memoria
– Utilizar memoria entrelazada
– Utilizar bancos de memoria independientes
Fundamentos de Computadores 2 - ITIG 2004/2005 – Tema 4. Subsistema de memoria
55
4.3
M
P
R
I
N
C
I
P
A
L
Organización con ancho de una palabra
•
La conexión de la CPU con la cache es de 1 palabra de
ancho, al igual que la conexión entre la cache y la
memoria principal.
•
Si suponemos:
– 1 ciclo para enviar la dirección.
– 15 ciclos para cada acceso a una posición de la
DRAM.
– 1 ciclo para enviar una palabra de datos.
– Bloque de cache de 4 palabras (16 bytes).
•
Penalización de fallo = 1 + 4x15 + 4x1 = 65 ciclos
•
Medida del ancho de banda entre la cache y la
memoria principal
Nº bytes transferidos /ciclo = 16 / 65 = 0,25
CPU
Cache
Bus
Memory
Fundamentos de Computadores 2 - ITIG 2004/2005 – Tema 4. Subsistema de memoria
56
4.3
M
P
R
I
N
C
I
P
A
L
Organización con ancho de varias palabras
•
Se aumenta el ancho de banda haciendo la
memoria y el bus de varias palabras de ancho.
•
Aumentar el ancho de la memoria y del bus
disminuye el tiempo de acceso y el tiempo de
transferencia Æ disminuye la penalización de
fallo
•
•
CPU
Multiplexor
Se necesita un multiplexor que seleccione la
palabra del bloque de cache que se va a
suministrar a la CPU
Cache
Bus
Todas estas medidas aumentan el coste, y
aumentan también el tiempo de acceso a la
cache.
Memory
•
Si ancho de memoria es de 2 palabras
Penalización de fallo = 1 + 2x15 + 2x1 = 33 ciclos
Nº bytes transferidos/ciclo = 16/33 = 0,48
•
Si ancho de memoria = 4 palabras
Penalización de fallo = 1 + 1x15 + 1x1 = 17 ciclos
Nº bytes transferidos/ciclo = 16/17 = 0,94
Fundamentos de Computadores 2 - ITIG 2004/2005 – Tema 4. Subsistema de memoria
57
4.3
M
P
R
I
N
C
I
P
A
L
Organización de memoria entrelazada (1)
•
Se incrementa el ancho de banda ensanchando la memoria pero no el bus de
conexión.
•
Memoria organizada en bancos de 1 palabra de ancho. Se leen/escriben
simultáneamente varias palabras (tantas como bancos) con un solo tiempo de
acceso.
– Hay una parte común en la dirección que
se envía a todos los bancos
– Todos
los
bancos
acceden
simultáneamente al dato ubicado en esa
dirección
– Se lee el dato disponible en cada banco Ⱥ
se obtiene un bloque de datos
CPU
Cache
Bus
•
Los bits menos significativos de la dirección
seleccionan el banco de memoria. Direcciones
consecutivas de memoria (Dn) se ubican en
bancos consecutivos.
Memory
bank 0
Memory
bank 1
Memory
bank 2
Memory
bank 3
– Ejemplo con 4 bancos:
D0 -> Banco0; D1 -> Banco1;
D2 -> Banco2; D3 -> Banco3;
Dn -> Banco(Dn MODULO Nº Bancos)
Fundamentos de Computadores 2 - ITIG 2004/2005 – Tema 4. Subsistema de memoria
58
4.3
M
P
R
I
N
C
I
P
A
L
Organización de memoria entrelazada (2)
•
Se sigue pagando el coste de transmitir cada palabra secuencialmente, pero
se evita pagar más de una vez la latencia de acceso.
– Con 4 bancos de memoria
Penalización de fallo = 1 + 1x15 + 4x1 = 20 ciclos
Nº bytes transferidos/ciclo = 16/20 = 0,80
•
Se hacen más rápidas las escrituras Æ importante en write through.
•
Funcionan al mismo tiempo todos los módulos Æ más consumo
•
Dificultad para expandir la memoria
Fundamentos de Computadores 2 - ITIG 2004/2005 – Tema 4. Subsistema de memoria
59
4.3
M
P
R
I
N
C
I
P
A
L
Aspectos de diseño de la memoria principal (1)
•
Las DRAMs evolucionan hacia mayor densidad, no menor tiempo de acceso.
•
Una DRAM es una matriz de d x w elementos, siendo d el número de filas
distintas y w el número de bits de salida para cada fila (1ื wื 16, común 4 y
8)
•
Si aumenta la densidad, el tamaño total de la DRAM crece, pero como w se
mantiene constante (coste de verificación y encapsulado menor) Æ d crece.
•
Aumentar el tamaño total conduce a que la configuración mínima de memoria
crezca, y esto puede no interesarnos por razones de coste, etc... Æ Cada vez
es menos atractivo construir la memoria con múltiples bloques de memoria
porque la configuración mínima de memoria crece.
•
Ejemplo: Construir una memoria de 64 MB con chips de 4Mx 1 , y palabras de
32 bits.
4 bancos, c/u con 32 DRAMs de 4Mbit x 1 Æ 128 DRAMS de 4Mx 1
•
Si usamos chips de 16M x 1 Æ 1 solo banco con 32 chips de 16M x1, y si
quisieramos tener 4 bancos (por hacer la memoria entrelazada), estaríamos
obligados a poner 32x4 chips de 16M x 1, haciendo un total de 256MB de
memoria.
Fundamentos de Computadores 2 - ITIG 2004/2005 – Tema 4. Subsistema de memoria
60
4.3
M
P
R
I
N
C
I
P
A
L
Aspectos de diseño de la memoria principal (2)
•
Ejercicio: Diseña una memoria de 64 MB con chips de 64 Mbits de forma
de obtengamos 4 bancos. ¿Qué características (d y w) deben tener los
chips de 64 Mbits? ¿Cuántos chips de 64 Mbits tendrá cada banco?
•
Si no fijamos el tamaño total de la memoria a diseñar, sino la
características de los chips a utilizar y el nº de bancos Æ el tamaño total
de la memoria crece.
•
A medida que aumenta la densidad de los chips DRAM es más caro
construir memoria entrelazada porque hay que poner un tamaño total de
memoria mayor.
Fundamentos de Computadores 2 - ITIG 2004/2005 – Tema 4. Subsistema de memoria
61
4.3
M
P
R
I
N
C
I
P
A
L
Aspectos de diseño de la memoria principal (3)
•
¿Cómo hacer para aumentar la velocidad de transmisión desde memoria
principal a las caches aprovechándonos de la estructura de las DRAM?
•
Una DRAM es una matriz de celdas de memoria.
•
El acceso se divide en acceso a fila y acceso a columna. Son tiempos de
acceso secuenciales.
Dirección de memoria completa
Nº Fila
Activar RAS: row access strobe
Nº Columna
Activar CAS: column access strobe
Fundamentos de Computadores 2 - ITIG 2004/2005 – Tema 4. Subsistema de memoria
62
4.3
M
P
R
I
N
C
I
P
A
L
Aspectos de diseño de la memoria principal (4)
Fundamentos de Computadores 2 - ITIG 2004/2005 – Tema 4. Subsistema de memoria
63
4.3
M
P
R
I
N
C
I
P
A
L
Aspectos de diseño de la memoria principal (5)
•
Tecnologías DRAM
– DRAM estándar Æ acceso a fila (RAS) y luego acceso a columna (CAS); siempre
activar y desactivar ambas señales.
– DRAM con Fast Page Mode Æ Mejora del anterior. Se accede a una secuencia de
datos. El primer acceso especifica fila y columna, RAS se mantiene activo para toda
la secuencia. Los siguientes accesos sólo tienen que especificar la columna y activar
CAS Æ mejora el tiempo de acceso.
– DRAM EDO (Extended Data Output)Æ En las anteriores CAS debe estar activa el
tiempo suficiente para que el usuario pueda disponer del dato. La mejora EDO Æ
poner el dato en un buffer, así CAS se puede desactivar antes y mejora el tciclo
(determina el momento en que se puede comenzar otro acceso).
Fundamentos de Computadores 2 - ITIG 2004/2005 – Tema 4. Subsistema de memoria
64
4.3
M
P
R
I
N
C
I
P
A
L
Aspectos de diseño de la memoria principal (6)
– DRAM Síncrona (SDRAM)
• Permiten acceso en masa a datos secuenciales de la DRAM.
• Se proporciona dirección inicial y longitud de la secuencia (burst), y los datos se
transfieren al ritmo que fija una señal de reloj.
• Ventajas:
– Uso del reloj Æ no necesita sincronización.
– No necesita suministrar una dirección para cada dato a acceder (un
controlador las genera)
– Usa la circuitería ya existente en las DRAM añadiendo un pequeño coste al
sistema. A cambio se aumenta bastante el ancho de banda, sin incurrir en
desventajas de expansividad (como en organizaciones de memoria de
palabra ancha) o de tamaño mínimo de memoria (como en la memoria
entrelazada).
• MEJORA ADICIONAL Æ Dual Data Rate SDRAM (DDR SDRAM ó DDR)
– Permiten transferir datos en los dos flancos de reloj Æ dobla el ancho de
banda
Fundamentos de Computadores 2 - ITIG 2004/2005 – Tema 4. Subsistema de memoria
65
Tema 4. Subsistema de Memoria
4.1. Introducción
4.2. Memoria cache
4.3. Memoria principal
4.4. Memoria virtual
Conceptos generales
Aspectos de diseño
Traducción rápida de
direcciones (TLB)
Fundamentos de Computadores 2 - ITIG 2004/2005 – Tema 4. Subsistema de memoria
66
4.4
M
V
I
R
T
U
A
L
Conceptos generales (1)
•
Memoria virtual
– Técnica que realiza la gestión de dos niveles adyacentes de la jerarquía
de memorias: la memoria principal (ó memoria física)
y el
almacenamiento secundario (disco).
•
Motivaciones/ventajas
– Eliminar los inconvenientes de una memoria pequeña y limitada
• Los programas de usuario pueden exceder el tamaño de la memoria
principal. Nos permite utilizar un espacio lógico de direcciones
superior al realmente disponible en la memoria principal.
– Compartición eficiente de la memoria entre mútiples procesos
garantizando protección
• La memoria principal necesita solamente las partes activas de los
programas. Esto nos permite compartir eficientemente el procesador
así como la memoria principal. Proporciona los mecanismos de
protección necesarios.
Fundamentos de Computadores 2 - ITIG 2004/2005 – Tema 4. Subsistema de memoria
67
4.4
M
V
I
R
T
U
A
L
Conceptos generales (2)
•
La memoria virtual ve a la memoria principal como una cache y al disco como
el lugar donde ‘realmente’ residen los programas/datos
Transferencias en la jerarquía de memoria: Memoria principal - Disco
Registros
•
Cache
Bloques
Memoria
Principal
Páginas
Disco
Terminología
Ⱥ página
Fallo de memoria virtual Ⱥ fallo de página
– Bloque de memoria virtual
–
•
Dirección virtual – dirección física
– Las direcciones que aparecen en los programas son direcciones virtuales
– Son traducidas a direcciones físicas por el MMU (memory management unit),
combinación de hardware y software
Fundamentos de Computadores 2 - ITIG 2004/2005 – Tema 4. Subsistema de memoria
68
4.4
M
V
I
R
T
U
A
L
Aspectos básicos de diseño
•
Elección del tamaño de página
– Valores típicos actuales: 4Kb-16 Kb. En nuevos sistemas: 32 Kb-64 Kb
•
Q1: ¿Dónde puede ubicarse una página en la memoria principal?
– Ubicación de bloque
•
Q2: ¿Cómo se encuentra una página si está en la memoria principal?
– Identificación del bloque
•
Q3: ¿Qué página debe reemplazarse en caso de fallo?
– Sustitución de bloque
•
Q4: ¿Qué ocurre en una escritura?
– Estrategias de escritura
Fundamentos de Computadores 2 - ITIG 2004/2005 – Tema 4. Subsistema de memoria
69
4.4
M
V
I
R
T
U
A
L
Q1: Ubicación de páginas
•
La penalización por fallo en la memoria virtual implica acceder al disco
– Los tiempos de acceso a dispositivos de almacenamiento secundario actuales se
encuentran en torno a 1.000.000 de ciclos de reloj
– Un fallo de página tarda millones de ciclos en procesarse
•
Posibilidades en la organización de la memoria virtual:
– Correspondencia directa
• Algoritmo de ubicación sencillo
• Produce mas fallos de página (tasa de fallos alta)
– Totalmente asociativa
• Algoritmo mas complicado
• Produce menos fallos de página (tasa de fallos baja)
•
Siempre se elige la estrategia totalmente asociativa debido al alto coste de
la penalización por fallo
Fundamentos de Computadores 2 - ITIG 2004/2005 – Tema 4. Subsistema de memoria
70
4.4
M
V
I
R
T
U
A
L
Q2: Identificación de páginas
•
¿Cómo encontrar una página en la memoria física?
•
Existe una correspondencia entre direcciones virtuales y direcciones
físicas
•
Identificación de página
Virtual ad dre ss
3 1 3 0 29 28 2 7
1 5 14 13 1 2
11 10 9 8
Virtual p ag e n u m be r
3 2 1 0
Pa ge o ffset
Tran sla tio n
2 9 2 8 27
1 5 14 13 1 2
11 10 9 8
P hy sical pa ge n u m be r
3 2 1 0
Pa ge o ffset
Physica l a dd re ss
Fundamentos de Computadores 2 - ITIG 2004/2005 – Tema 4. Subsistema de memoria
71
4.4
M
V
I
R
T
U
A
L
Identificación de página: Tabla de páginas (1)
•
Tabla de páginas: Mecanismo de traducción de direcciones virtuales a físicas
•
Cada programa tiene su tabla de páginas residente en memoria que se
indexa con el número de página virtual para obtener la dirección de la página
física
Virtual page
number
Page table
Physical page or
disk
address
Valid
Physical memory
1
1
1
1
0
1
1
0
1
Disk storage
1
0
1
La tabla de páginas hace corresponder cada
página de la memoria virtual a una página de
la memoria física que estará en la memoria
principal o en el disco.
Fundamentos de Computadores 2 - ITIG 2004/2005 – Tema 4. Subsistema de memoria
72
4.4
M
V
I
R
T
U
A
L
Identificación de página: Tabla de páginas (2)
•
Traducción de direcciones:
•
En este ejemplo
– Tamaño de página = 212
bytes = 4KB
– Espacio de direcciones
virtual = 232 bytes =
4GB
– Espacio de direcciones
físico = 230 bytes = 1
GB
– Número de entradas en
la tabla de páginas =
220
Fundamentos de Computadores 2 - ITIG 2004/2005 – Tema 4. Subsistema de memoria
73
4.4
M
V
I
R
T
U
A
L
Q3: Sustitución de páginas
•
Si el bit de validez de una página virtual es 0, se produce un fallo de página
•
Tratamiento de los fallos de página:
1.
2.
3.
•
Se
Se
Se
–
pasa el control al SO
busca la página en el disco
elige qué página de memoria reemplazar
Siempre se utiliza el algoritmo LRU
(El papel de SO)
–
Cuando se inicia un programa, el SO crea espacio en el disco para todas las
páginas virtuales
–
También crea su correspondiente tabla de páginas
–
Gestiona los fallos de página
Fundamentos de Computadores 2 - ITIG 2004/2005 – Tema 4. Subsistema de memoria
74
4.4
M
V
I
R
T
U
A
L
Q4: Estrategias de escritura
•
Política de escritura
– Postescritura o write back. Otra política sería muy costosa.
– Cuando se sustituye una página el bit de modificación o sucio (dirty bit)
indica si la página ha de ser actualizada en disco o no.
• Debe añadirse este bit a la tabla de páginas
Fundamentos de Computadores 2 - ITIG 2004/2005 – Tema 4. Subsistema de memoria
75
4.4
M
V
I
R
T
U
A
L
Elección del tamaño de página
•
La decisión del tamaño de página implica una solución de compromiso entre
aquellos factores que favorecen una página mayor frente a los que favorecen
una página más pequeña
•
Ventajas de un tamaño de página grande
– Menos páginas Æ Tabla de páginas más pequeña Æ ahorro de memoria
– Transferencia más eficiente
•
Ventajas de un tamaño de página pequeño
– Mejor aprovechamiento de la memoria por una menor fragmentación de la
misma.
– La mayoría de los procesos son pequeños: una página grande implica un
tiempo mayor para invocar el proceso.
Fundamentos de Computadores 2 - ITIG 2004/2005 – Tema 4. Subsistema de memoria
76
4.4
M
V
I
R
T
U
A
L
Traducción rápida de direcciones: TLB (1)
•
Mejora de la traducción de direcciones
– El tiempo de acceso a la tabla de páginas (almacenada en memoria
principal) es excesivo: Un acceso para obtener la dirección física de
memoria y otro para obtener el dato
– Mejora: Basándonos en la localidad de las direcciones hacer uso de una
cache especial para guardar la traducción de las direcciones más
recientemente usadas
•
Buffer de traducciones anticipadas (Translation-Lookaside Buffer o
TLB)
– Las traducciones más recientes se mantienen en una memoria especial
(similar a una cache) de acceso rápido.
Fundamentos de Computadores 2 - ITIG 2004/2005 – Tema 4. Subsistema de memoria
77
4.4
M
V
I
R
T
U
A
L
Traducción rápida de direcciones: TLB (2)
V irtu a l p a ge
nu mbe r
TL B
Va lid
Ta g
1
1
P hy sic a l p a ge
a d d re s s
P h y s ic a l m e m o ry
1
1
•
•
0
Estructura
– Campo de etiqueta
(tag) que almacena
parte de la dirección
virtual
– Identificador
del
proceso
– Campo de datos que
almacena la Dirección
física de la página
– Bits de validez y dirty
– Bits de protección
1
Pa g e ta b le
P h y si ca l p a g e
V a li d o r d is k a d d re s s
1
1
1
D is k sto r a g e
1
0
1
1
0
1
1
0
1
Método de ubicación de
bloque
–
Totalmente asociativa
Fundamentos de Computadores 2 - ITIG 2004/2005 – Tema 4. Subsistema de memoria
78
4.4
M
V
I
R
T
U
A
L
Esquema global de traducción de direcciones
•
Mecanismo global de traducción de direcciones en la jerarquía de
memorias
Fallo página
Procesador
DV
Traducción
DF
Cache
Fallo
cache
Acierto
cache
Bloque
Datos
DV: Dirección virtual
DF: Dirección física
Controlador de cache:
Transferencia por hardware
Memoria
Principal
Memoria
Secundaria
(Disco)
Página
Sistema Operativo:
Transferencia por software
Fundamentos de Computadores 2 - ITIG 2004/2005 – Tema 4. Subsistema de memoria
79
4.4
M
V
I
R
T
U
A
L
Esquema global de traducción de direcciones: Ejemplo
•
TLB y Cache en un R2000
Fundamentos de Computadores 2 - ITIG 2004/2005 – Tema 4. Subsistema de memoria
80
4.4
M
V
I
R
T
U
A
L
Combinación de eventos en cache, TLB y memoria virtual
Caché
TLB
Tabla Páginas
¿ Es Posible?
acierto
fallo
acierto
acierto
acierto
acierto
acierto
fallo
fallo
fallo
fallo
fallo
fallo
acierto
acierto
acierto
fallo
fallo
acierto
acierto
fallo
acierto
fallo
fallo
Posible. Acceso sin problemas.
Posible. Si hay acierto en TLB no se comprueba en la tabla
de páginas
Posible
Posible
Posible. Fallo de página
Imposible. No puede haber acierto en TLB si no está en
memoria principal
Imposible. No puede haber acierto en TLB si no está en
memoria principal
Imposible. No puede haber acierto en caché si el dato no
está en memoria principal
Fundamentos de Computadores 2 - ITIG 2004/2005 – Tema 4. Subsistema de memoria
81
4
Jerarquía de memorias: marco común
Cache
Correspondencia directa
Q1
Ubicación de
Asociativa por conjuntos
bloque
Memoria Virtual
Totalmente asociativa
TLB
Totalmente asociativa
Totalmente asociativa
Indexar
Q2
Identificación
Búsqueda limitada
de bloque
Q3
Sustitución
de bloque
Q4
Estrategias
de escritura
Tabla separada de búsqueda (tabla Búsqueda total
de páginas)
Búsqueda total
LRU
LRU
LRU
Postescritura (write back)
---
Azar
Escritura directa (write through) +
ubicar en escritura
Postescritura (write back) + no
ubicar en escritura
Fundamentos de Computadores 2 - ITIG 2004/2005 – Tema 4. Subsistema de memoria
82
Descargar