7. MEMORIA
1
2
1.1. Estructura Jerárquica de la MemoriaEstructura Jerárquica de la Memoria
2.2. Memoria CachéMemoria Caché
3.3. Memoria PrincipalMemoria Principal
4.4. Memoria VirtualMemoria Virtual
MEMORIA
1.1. Estructura Jerárquica de la MemoriaEstructura Jerárquica de la Memoria
3
MEMORIA
Estructura Jerárquica de la Memoria
Memoria
Registros
Caché N1-N2
Memoria Principal
Disco Magnético
Cinta Magnética Disco Óptico
Coste por bit
Capacidad
Tiempo de acceso
Frecuencia de acceso
No es única
- La CPU/MMU
- El S. O.
Quién se ocupa del transvase
entre memorias¿ ?
4
Estructura Jerárquica de la Memoria
Memoria
Memoria Multinivel
C a
c h
eMemoriaPrincipal
Dispositivosde E/S
Registros
CPU Bus de Memoria
Bus de E/S
Tamaño:
Velocidad:
Oct-KB
250 ps.
KB-MB
1 ns.
GB
100 ns.
TB
10 ms.
5
2.2. Memoria CachéMemoria Caché
6
MEMORIA
Memoria Caché
Memoria
Principio de laLocalidad de Referencia
Los accesos a memoria que realiza la CPUno están uniformemente distribuidos
por todo el espacio de direccionamiento, sino que se concentran, temporalmente, solamente
en ciertas áreas de la memoria.
Por qué es tan útiluna memoria tan pequeña¿ ?
Fundamento
7
Memoria
Fundamento
Es muy probable repetir
instrucciones
LocalidadTemporal
LocalidadEspacial
Principio deLocalidad de Referencia
Es muy probable ejecutar
instrucciones cercanas
Unidad deTransferencia:
BLOQUE
Memoria Caché
8
Memoria
Memoria Caché
CPU(bytes)
Caché(KB-MB)
MemoriaPrincipal(GB-TB)
Bloque
Palabra
• El espacio de la memoria caché está dividido en líneas
• Nº Líneas << Nº Bloques
• Tamaño Bloque potencia de 2
• Tamaño Línea = Tamaño Bloque
Buscar en la caché
Acierto Fallo
Entregar Dato
Asignar Línea
Traer Bloque
Funcionamiento
9
Memoria
Memoria Caché
10
Memoria
Memoria CachéPolíticas de UbicaciónCorrespondencia Directa
Bloque Despl.L0
Comp.
. . .
. . .
. . .
. . .
. . .
etiq. datosCaché
LJ
Dir. de memoria
b+dpal. 0
pal. 1
pal. 2
pal. 3
. . .
. . .
B0
Memoriaprincipal
pal. 4j
pal. 4j+1
pal. 4j+2
pal. 4j+3
. . .
BJ
b
d
Falta de caché
Acierto
+
l db-l
etiq. línea
pal. 4j+2
11
Arquitectura de Computadores
0000000100100011010001010110011110001001101010111100110111101111
Memoria principal de 16 palabrasBloque 0
Bloque 1
Bloque 2
Bloque 3
Bloque 4
Bloque 5
Bloque 6
Bloque 7
Bloques de 2 palabras
Línea 0
Línea 1
Línea 2
Línea 3
Memoria caché de 4 líneas
Ejemplo:
Memoria Caché
Memoria 12
0 0 0 0 Línea 0 Desplazamiento 0 0 0 0 1 Línea 0 Desplazamiento 1
Línea 0Línea 1Línea 2Línea 3
0 0 1 0 Línea 1 Desplazamiento 0 0 0 1 1 Línea 1 Desplazamiento 1
Línea 0Línea 1Línea 2Línea 3
0 1 0 0 Línea 2 Desplazamiento 0 0 1 0 1 Línea 2 Desplazamiento 1
Línea 0Línea 1Línea 2Línea 3
0 1 1 0 Línea 3 Desplazamiento 0 0 1 1 1 Línea 3 Desplazamiento 1
Línea 0Línea 1Línea 2Línea 3
1 0 0 0 Línea 0 Desplazamiento 0 1 0 0 1 Línea 0 Desplazamiento 1
Línea 0Línea 1Línea 2Línea 3
1 0 1 0 Línea 1 Desplazamiento 0 1 0 1 1 Línea 1 Desplazamiento 1
Línea 0Línea 1Línea 2Línea 3
1 1 0 0 Línea 2 Desplazamiento 0 1 1 0 1 Línea 2 Desplazamiento 1
Línea 0Línea 1Línea 2Línea 3
Línea 0Línea 1Línea 2Línea 3
1 1 1 0 Línea 3 Desplazamiento 0 1 1 1 1 Línea 3 Desplazamiento 1
Memoria Caché
Memoria 13
Arquitectura de Computadores
0 0 0 0 Línea 0 Desplazamiento 0 0 0 0 1 Línea 0 Desplazamiento 1 0 0 1 0 Línea 1 Desplazamiento 0 0 0 1 1 Línea 1 Desplazamiento 1 0 1 0 0 Línea 2 Desplazamiento 0 0 1 0 1 Línea 2 Desplazamiento 1 0 1 1 0 Línea 3 Desplazamiento 0 0 1 1 1 Línea 3 Desplazamiento 1 1 0 0 0 Línea 0 Desplazamiento 0 1 0 0 1 Línea 0 Desplazamiento 1 1 0 1 0 Línea 1 Desplazamiento 0 1 0 1 1 Línea 1 Desplazamiento 1 1 1 0 0 Línea 2 Desplazamiento 0 1 1 0 1 Línea 2 Desplazamiento 1 1 1 1 0 Línea 3 Desplazamiento 0 1 1 1 1 Línea 3 Desplazamiento 1
Memoria Caché
Memoria 14
Arquitectura de Computadores
0 0 0 0 Línea 0 Desplazamiento 0 0 0 0 1 Línea 0 Desplazamiento 1 0 0 1 0 Línea 1 Desplazamiento 0 0 0 1 1 Línea 1 Desplazamiento 1 0 1 0 0 Línea 2 Desplazamiento 0 0 1 0 1 Línea 2 Desplazamiento 1 0 1 1 0 Línea 3 Desplazamiento 0 0 1 1 1 Línea 3 Desplazamiento 1 1 0 0 0 Línea 0 Desplazamiento 0 1 0 0 1 Línea 0 Desplazamiento 1 1 0 1 0 Línea 1 Desplazamiento 0 1 0 1 1 Línea 1 Desplazamiento 1 1 1 0 0 Línea 2 Desplazamiento 0 1 1 0 1 Línea 2 Desplazamiento 1 1 1 1 0 Línea 3 Desplazamiento 0 1 1 1 1 Línea 3 Desplazamiento 1
Memoria Caché
Memoria 15
Arquitectura de Computadores
0 0 0 0 Línea 0 Desplazamiento 0 0 0 0 1 Línea 0 Desplazamiento 1 0 0 1 0 Línea 1 Desplazamiento 0 0 0 1 1 Línea 1 Desplazamiento 1 0 1 0 0 Línea 2 Desplazamiento 0 0 1 0 1 Línea 2 Desplazamiento 1 0 1 1 0 Línea 3 Desplazamiento 0 0 1 1 1 Línea 3 Desplazamiento 1 1 0 0 0 Línea 0 Desplazamiento 0 1 0 0 1 Línea 0 Desplazamiento 1 1 0 1 0 Línea 1 Desplazamiento 0 1 0 1 1 Línea 1 Desplazamiento 1 1 1 0 0 Línea 2 Desplazamiento 0 1 1 0 1 Línea 2 Desplazamiento 1 1 1 1 0 Línea 3 Desplazamiento 0 1 1 1 1 Línea 3 Desplazamiento 1
¡ Eti
queta
!
Memoria Caché
Memoria 16
Arquitectura de Computadores
Etiqueta
Formato de una dirección en correspondencia directa:
Línea Desp.
1 2 1
En el ejemplo
Memoria Caché
Memoria 17
Memoria
Memoria CachéPolíticas de UbicaciónCorrespondencia Asociativa
Caché
Bloque Despl.
Comp.
etiq
etiq
etiq
Acierto Fallo
Comp.
Comp.
Acierto Fallo
Acierto Fallo
Lín
ea 0
Lín
ea 1
Lín
ea 2
Dir. de memoria
18
Memoria
Memoria Caché
Políticas de UbicaciónCorrespondencia Asociativa de Conjuntos
Comparador
Falta de caché
Acierto
b+d
Bloque Despl.
Dir. de memoria
d
C0. . .
Caché
C1
. . .b
d+
+
Mem. principal
pal. 0
pal. 1
pal. 2
pal. 3
. . .
. . .
B0
BJ
pal. 4j
pal. 4j+1
pal. 4j+2
pal. 4j+3
.
. . .
b-c c
etiq. conjunto
Etiq
19
Memoria
Memoria Caché
Políticas de Sustitución
Política de Sustitución
20
Memoria
Memoria Caché
Políticas de Sustitución
De Tipo Estadístico
De Tipo NO Estadístico
LRULeast Recently Used
LFULeast Frequently Used
FIFOFirst In First Out
RandomNº aleatorio entre 0 y Nº Líneas-1
Buena tasa de aciertos No falla con las matrices Fácil y económico
Bueno en general Falla con algunas
matrices
21
Memoria
Memoria Caché
Políticas de Actualización
Coherencia de la información entre las distintas memorias
Propiedad dela caché
Escrituraen caché
Acierto
Fallo
Actualizar MP
Retrasar laactualización
Escritura Inmediata(Write Through)
Escritura Diferida(Write Back)
Traer bloquea caché
Escribir datoen MP 2 accesos a
MP
22
Memoria
Memoria Caché
Políticas de Actualización
Escritura Inmediata
Escritura Diferida
No hay incoherencia Mucho tráfico: cada escritura en caché una
actualización en MP
Menos tráfico: muchas escrituras en caché una sola actualización en MP
Incoherencia MultiprocesadoresDMA
Al reemplazar un bloque “sucio” se penaliza el acceso actual con la escritura del bloque
Su actualización se solapa con la ejecución
de las instrucciones
Buffer de escritura
23
Memoria
Memoria Caché
Tamaño de la CachéSPEC CPU 2000 Benchmarks (2003)
• Barata• Rápida• Muchas faltas
• Pocas faltas• Cara• No tan Rápida• Poca mejora
24
Tas
a de
Fal
los
Tamaño de la caché
Memoria
Memoria Caché
Tamaño de la Caché
CPU TAMAÑO CACHÉ L1
80486DX and DX2 8 KB L1
80486DX4 16 KB L1
Pentium 16 KB L1
Pentium Pro 16 KB L1
Pentium MMX 32 KB L1
AMD K6 and K6-2 64 KB L1
Pentium II and III 32 KB L1
Celeron 32 KB L1
Pentium III Cumine 32 KB L1
AMD K6-3 64 KB L1
AMD K7 Athlon 128 KB L1
AMD Duron 128 KB L1
AMD Athlon Thunderbird 128 KB L1
PowerPC G4 64 KB L1 (32 + 32)
PowerPC G5 96KB L1 (64+32)
Pentium IV 104 KB (96 + 8)
A partir de aquí todostienen más niveles de caché
25
Memoria
Memoria Caché
Tamaño del Bloque
↑ Localidad espacial ↓ Localidad
Temporal
26
Memoria
Memoria Caché
Tipos de fallo de caché
• Por Carga inicial (Compulsory)• Carga inicial de la caché. • Estos fallos se producen aun con una caché de tamaño infinito
• De Capacidad (Capacity)• Cuándo la caché no puede almacenar todos los bloques de un
programa en ejecución• Por Conflicto (Conflict)
• Aun habiendo líneas libres no se puede cargar un bloque• Suele suceder en cachés con un grado bajo de asociatividad
(correspondencia directa o asociativa por conjuntos de pocas vías)
Tasa de Fallo = Nº Fallos / Nº Accesos
27
Memoria
Memoria Caché
Tipos de fallo de caché
28
Cache Size (KB)
Mis
s R
ate
per
Typ
e
0
0.02
0.04
0.06
0.08
0.1
0.12
0.14
1 2 4 8
16
32
64
12
8
1-way
2-way
4-way
8-way
Capacity
Compulsory
Memoria
Memoria Caché
Optimización
29
Memoria
Memoria Caché
OptimizaciónReducción del tiempo de acceso: Caches Pequeñas
Tamaño Caché
Tie
mpo
acc
eso
(ns)
Consume tiempo:•Búsqueda del bloque•Etiquetas grandes•Nº Comparadores
Correspondencia Directa y
Cachés multinivel
Configuración: bloque 64 bytes y un banco
30
Memoria
Memoria Caché
OptimizaciónReducción del tiempo de acceso: Caches Pequeñas
C a
c h
é
L 1
MemoriaPrincipal
CPU
Cac
hé
L2
Acceso a Memoria
TL1 PAL1
TL2 PAL2
TMP
Acierto Fallo
TL1 * PAL1TL1 * PAL1 (1-PAL1)(1-PAL1)L1:L1:
Acierto Fallo
PAL2 * (1-PAL1)* TL2PAL2 * (1-PAL1)* TL2 (1-PAL1)* (1-PAL2 )* TMP (1-PAL1)* (1-PAL2 )* TMP L2:L2:
TMEDIO = TL1 * PAL1 + PAL2 * (1-PAL1)* TL2 + (1-PAL1)* (1-PAL2 )* TMP
Caches Multinivel
31
Memoria
Memoria Caché
OptimizaciónReducción del tiempo de acceso: Predicción
• Se parte de una caché con correspondencia asociativa de conjuntos (menos conflictos de colisiones que la correspondencia directa)
• Se intenta obtener el tiempo de acceso de una memoria de correspondencia directa
• Se predice que línea del conjunto va a ser accedida• Mediante la predicción se consigue que la comparación de
etiquetas y la lectura de bloque se realice en paralelo• La predicción tiene un acierto elevado (85%)• Cuando la predicción falla se busca el bloque en el resto de líneas
del conjunto (penalización)• Cada línea tiene asociados unos bits para realizar la predicción• Pentium 4 y MIPS R10000 utilizan este esquema
32
Memoria
Memoria Caché
OptimizaciónReducción del tiempo de acceso: Caché de Trazas
• Similar a una caché de instrucciones• En lugar de almacenar bloques de código (localidad espacial)
almacena las secuencias de instrucciones que van a ejecutarse (localidad temporal)
• Los saltos pueden provocar que se almacenen en la caché dos secuencias de código de acuerdo al sentido del salto
• Mayor dificultad en los mecanismos de gestión de direcciones (ubicación)
• Bloques de mayor tamaño• Cara y poco utilizada• Pentium 4 la utiliza para almacenar micro-ops (instrucciones ya
decodificadas)
33
Memoria
Memoria Caché
OptimizaciónIncremento del ancho de banda: Caches de nivel 1 separadas
Caché L1UnificadaInstrucciones
y Datos
Caché L1Instrucciones
Caché L1Datos
Equilibrio automáticode instrucciones y datos
Más simple de diseñare implementar
Arquitectura Harvard
En procesadores segmentados evita riesgos estructurales
Todos los procesadores modernos la utilizan
34
Memoria
Memoria Caché
OptimizaciónIncremento del ancho de banda: Caches segmentadas
• Segmentar los accesos a la caché• Consiguiendo que se lleven a cabo varios accesos a memoria• No se reduce el tiempo de acceso• La duración de la etapa está en función de la duración total y del nº
de etapas
Load 1
1 ciclo
Load 2
1 ciclo
Load 3
1 ciclo Load 1
1 ciclo
1 ciclo
1 ciclo
Load 2
Load 3
Mayor frecuencia de Reloj
35
Memoria
Memoria Caché
OptimizaciónIncremento del ancho de banda: Caches No Bloqueantes
• Un fallo de caché provoca que no se atiendan más accesos• Comportamiento pernicioso en procesadores superescalares
– Una falta de caché en escritura provoca que otras instrucciones no puedan terminar aunque su acceso sea un acierto
• Las caches no bloqueantes siguen atendiendo peticiones en presencia de un fallo
• Cuantos más accesos se solapen mayor reducción de la penalización por fallo de caché en los programas
36
Memoria
Memoria Caché
OptimizaciónIncremento del ancho de banda: Caches Multibanco
Línea 0
1
2
3
Línea 0
1
2
3
Línea 0
1
2
3
Línea 0
1
2
3
Banco 0 Banco 1 Banco 2 Banco 3Línea 0
1
2
3
4
5
6
78
9
10
11
12
13
Caché Monolítica
Bloque Despl.
Dir. de memoria
Banco = Bloque MOD 4
• Funciona bien cuando los accesos están repartidos
• L2 AMD Opteron 2 bancos• L2 SUN Niagara 4 bancos
Bloque 0Bloque 1
Bloque 2
Bloque 3
Bloque 4
37
Memoria
Memoria Caché
OptimizaciónReducción de la penalización por fallo: Caché de victimas
Línea 0
1
2
3
4
5
6
78
9
10
11
12
13
Caché L1 CorrespondenciaDirecta
1
2
3
Línea 0
Caché Asociativa
CachéNivel 2
Últimos bloques expulsados de la caché L1
Memoria muy pequeña Fallo L1
Comprobar victimas LRU cuando está llena Admite algún esquema
predictivo
38
Memoria
Memoria Caché
OptimizaciónReducción de la penalización por fallo: Buffer de Escritura
CPUCache L1
Buffer Escritura
MemoriaPrincipal
• Para caches de escritura directa (Write Through), aunque también se emplea con escritura diferida
• El procesador escribe en la caché y en el Buffer continuando con la ejecución de instrucciones
• El controlador de memoria vuelca el Buffer a memoria (L2 o principal)
• El Buffer suele tener 4 entradas y política FIFO
• Funciona bien cuando la frecuencia de las escrituras es menor que 1 / Tacceso memoria
• Cuando el Buffer está lleno el procesador espera por una entrada libre
store
39
Memoria
Memoria Caché
OptimizaciónReducción de la penalización por fallo: Buffer de Escritura y Write Merging
• En el Buffer se van introduciendo las palabras (store) generadas por el procesador una en cada entrada
• Una optimización del Buffer consiste en comprobar si cada nueva palabra puede combinarse con las ya existentes para formar bloques completos
Escrituras
100
108
116
124
32 octetos
100
108
116
124
Sin Write MergingSin Write Merging
Escrituras
100
108
116
124
100 108 116 124
32 octetos
Con Write MergingCon Write Merging
LLENO LIBRES
0
1
2
3
0
1
2
3
PosicionesConsecutivas
40
Memoria
Memoria Caché
OptimizaciónReducción de la penalización por fallo: Palabra crítica primero
y rearranque rápido
• El procesador en un acceso a memoria sólo necesita una palabra no el bloque completo
• Por lo tanto no es necesario que espere por todo el bloque
CPU)
CACHE
MEMORIA PRINCIPAL
CPU
1. load
2. Get Block3. Word 4. Update
Palabra Crítica primeroPalabra Crítica primero
CPU)
CACHE
MEMORIA PRINCIPAL
CPU
1. load
2. Get Block
4. Word (M)
3. Update (0,..,M,..N-1)
Rearranque RápidoRearranque Rápido
41
Memoria
Memoria Caché
OptimizaciónReducción de tasa de fallos: Optimizaciones del compilador
• No modifica la estructura de la caché
• Reordenación de código para explotar la localidad tanto espacial como temporal
• Se optimiza la disposición del código y el acceso a los datos
int x[10][50];
for (j=0; j<50; j++) for (i=0; i<10; i++) x[i][j] = 2*x[i][j];
0,0 0,1 0,2 9,47 9,48 9,49
Disposición en memoria de x(almacenamiento por filas)
int x[10][50];
for (i=0; i<10; i++) for (j=0; j<50; j++) x[i][j] = 2*x[i][j];
Se accede por filas
$80 $84 $88
42
Memoria
Memoria Caché
OptimizaciónReducción de tasa de fallos y penalización: HW prefetch
• Cargar los bloques en caché antes de ser usados sin interferir en el funcionamiento normal
CPUCache L1Instrucciones
Stream Buffer
MemoriaPrincipal
1. Fetch
2. Get Block (N)
3. Block (N)
4. Block (N+1)
if Fallo_Cache then if Block (X) in Stream Buffer Update_Cache (Block (X)) GetBlock_MP (X+1) else // No está en Stream Buffer GOTO “Paso 2” // GetBlock(N)endif
4. Instr.
43
Memoria
Memoria Caché
OptimizaciónReducción de tasa de fallos y penalización: SW prefetch
• La carga anticipada de bloques en la caché la realiza el compilador insertando instrucciones especiales de pre-carga de bloques
• Al igual que la técnica anterior la memoria debe tener el suficiente ancho de banda para soportar este mecanismo
int x[10][50];
for (i=0; i<10; i++) for (j=0; j<50; j++) x[i][j] = 2*x[i][j];
• Elementos de x de tamaño 64 bits• Almacenamiento por filas• Bloques de caché de 128 bits• 50 % tasa de fallo (1 de cada 2 accesos)
compilador int x[10][50];
for (i=0; i<10; i++) { PRE_FECTH (x[i+1][0]); for (j=0; j<50; j++) { PRE_FETCH (x[i][j+5]); x[i][j] = 2*x[i][j]; }}
44
3.3. Memoria principalMemoria principal
45
MEMORIA
Memoria
Memoria Principal
Per
form
ance
(log)
El problema …
46
Memoria
Memoria Principal
• Latencia Tiempos de acceso: Tiempo entre solicitar y recibir un dato Ciclo: Tiempo entre dos accesos
• Ancho de Banda Transferencia de grandes cantidades de información
(bloques, páginas, etc.)
Parámetros rendimiento de la memoria
Tipos de memoria
• DRAM Memoria Principal
• SRAM Memoria Caché
47
Memoria
Memoria Principal
DRAMDynamic Random Access Memory
• Primera DRAM Intel 1103 – 1 Kbit en un único Chip
• Hoy en día más de 4 GB por chip
• Un transistor y un condensador por bit
• Necesitan refresco (cada 8 ms, <5% del tiempo) No permite accesos
• Tras una lectura es necesario volver a refrescar la información
• Ciclo de memoria mayor que el tiempo de acceso
• Organizada en una matriz de N Filas x N columnas de M bits Reducir el nº de pines al multiplexar Filas y Columnas
• Cada acceso un ciclo de RAS/CAS RAS: Row Access Strobe CAS: Column Access Strobe
• Encapsulada en pequeñas tarjetas DIMM (Dual Inline Memory Modules) De 4 a 16 DRAM
48
Memoria
Memoria Principal
DRAMEstructura
CPUCACHÉ
L2CACHÉ
L2
NORTH BRIDGE
DRAMDRAM
CACHÉ L1
CACHÉ L1
DRAM Controller
DRAM Controller
SOUTHBRIDGE
Backside Bus
Frontside Bus
DRAM Bus
PCI
USB
APM
Otros Dispositivos
49
Memoria
Memoria Principal
DRAMEstructura
Deco
difi
cador d
e 3
a 8
(Row
)
Decodificador de 3 a 8 (Column)
Bit Line
Word Line
64 x1bit
Celda dememoria
Buff
er d
e D
ireccio
nes
50
Array deCeldas
Memoria
Memoria Principal
DRAMEstructura: Organización Física
Array deCeldas
(1024x1024bits)
Row
x2 DRAM
Array deCeldas
(1024x1024bits)
Row
x4 DRAM
Array deCeldas
(1024x1024bits)
Row
x8 DRAM
2M bit 4M bit 8M bit
51
Memoria
Memoria Principal
Año Tamaño T. Acceso(ns) Ciclo (ns)
1980 64K bit 150-180 250
1983 256K bit 120-150 220
1986 1M bit 100-120 190
1989 4M bit 80-100 165
1992 16M bit 60-80 120
1996 64M bit 50-70 110
1998 128M bit 50-70 100
2000 256M bit 45-65 90
2002 512M bit 40-60 80
2004 1G bit 35-55 70
2006 2G bit 30-50 60
DRAMPrestaciones
52
Memoria
Memoria Principal
DRAMLatencia
CPUControladorde Memoria
DRAMDRAM
A
B
C
D
E
F
A. Encolado de la petición de acceso a memoria (posible espera)B. Petición de acceso enviada al Controlador de MemoriaC. Conversión de la petición de acceso a órdenes para la DRAM (posible
espera)D. Envío de órdenes a la DRAME. Fijar Fila (RAS) y Columna (CAS) en la matriz de celdasF. Resultado del acceso
Latencia DRAM = A + B + C + D + E + F
53
Memoria
Memoria Principal
FILA COL FILA COL
RAS
CAS
Dirección
Datos
DRAMCiclo de Lectura: Modo Normal
54
DATODATO
Memoria
Memoria Principal
DRAMCiclo de Lectura: Modo Fast Page
FILA COL COL
RAS
CAS
Dirección
Datos
COL
Explota la localidad de los datos Página = FILA El tiempo de acceso al primer datoidéntico al de la DRAM convencional
55
DATODATO DATO
Memoria
Memoria Principal
DRAMCiclo de Lectura: Modo Extended Data Out (EDO)
FILA COL COL
RAS
CAS
Dirección
Datos
COL COL
Reduce el tiempo de acceso a posiciones consecutivas de memoria Solapa datos con direcciones
CAS cambia antes de que la memoria haya entregado el dato anterior
56
DATODATO DATODATO
Memoria
Memoria Principal
DRAMCiclo de Lectura: Modo Ráfaga (Burst)
FILA COL
RAS
CAS
Dirección
Datos
Utiliza un mecanismo de autoincremento paracalcular la siguiente columna Los accesos aleatorios no son más rápidos Muy útil para ciertas aplicaciones (streaming) Tiempos de acceso 6-1-1-1 (primeros 64 bits y sucesivos)
57
DATODATO DATODATO
Memoria
Memoria Principal
SDRAMSynchronous DRAM
DRAM FPM y DRAM EDO son asíncronas Controlador de memoria y DRAM utilizan un protocolo mediante señales
para realizar/sincronizar los accesos a memoria El protocolo de acceso introduce varios ciclos de latencia Se sustituye el protocolo de acceso por uno nuevo basado en la
señal de reloj de la placa base Los eventos suceden de acuerdo a esta nueva señal (CLK) Se simplifica el controlador de memoria
Suelen disponer de Varios bancos de memoria (entrelazada). De 2 a 4 bancos Mayor ancho de banda
Bus de Datos de 64 bits
58
Memoria
Memoria Principal
SDRAMCiclo de lectura
RAS
CLK
CAS
ACT READ
FILA COL
Comandos
Direcciones
DATO DATODatos
DATO DATO
Activar Banco
59
Memoria
Memoria Principal
SDRAMBancos de memoria (entrelazada)
0
1
2
N-2
N-1
N
N+1
N+2
2N-2
2N-1
BUFFER
BUS
Banco 0 Banco 1
0
2
4
2N-4
2N-2
1
3
5
2N-3
2N-1
BUFFER
BUS
Banco 0 Banco 1
BUFFER
Memoria NO entrelazada Memoria Entrelazada
60
Memoria
Memoria Principal
SDRAMBancos de memoria (entrelazada)
CLK
Oct. 1 Oct. 2
CLK
Oct. 1 Oct. 2Oct. 3 Oct. 4
Accesos No Entrelazada
Accesos Entrelazada
Ban
co 0
Ban
co 0
Ban
co 1
Ban
co 1
Ban
co 2
Ban
co 2
Ban
co N
Ban
co N
……
Palabra Banco
m bits k bits
Dirección
61
Memoria
Memoria Principal
DDR-SDRAMDouble Data Rate SDRAM
• Aparece en los procesadores AMD Athlon• Transfieren más información por cada ciclo
Utilizan ambos flancos de la señal de reloj Prefetching para aumentar el nº de bits transferidos entre la matriz de
celdas de memoria y el buffer de memoria Señalización más rápida
DDR SDRAM
Matrizde
MemoriaBuffer
Bus de memoria Bus de Datos
DDR1 DDR2 DDR3
Bits por ciclo x2 x4 x8
64 bits
62
Memoria
Memoria Principal
DDR-SDRAMDouble Data Rate SDRAM
Tipo Nombre Nombre del módulo
Bus de memoria
Ancho de banda máx.
100 Mhz x 2 Datos por ciclo x 8 Octetos
63
PREGUNTA 3
100 Mhz
133 Mhz
166 Mhz
200 Mhz
100 Mhz
133 Mhz
200 Mhz
166 Mhz
100 Mhz
133 Mhz
166 Mhz
200 Mhz
Memoria
Memoria Principal
RDRAMRambus DRAM
• Aparece en los procesadores Intel Pentium III y IV• Mayor frecuencia de reloj que las memorias DDR • Bus de datos de 16 bits• Peticiones de acceso simultáneas• Ancho de banda (pico) de 2.4 GB/s• Hasta 32 memorias en un único canal• Mayor precio que DDR
Mover pocos datos muy rápidamente
64
Memoria
Memoria Principal
Módulos de Memoria DIMMDual In-line Memory Module
Bus de datos de 64 bits Cada DIMM contiene de 8 a 16 chips DRAM (más uno de paridad)
8 chips DRAM si son de 8 bits (x8) 16 chips DRAM si son de 4 bits (x4)
Configuraciones disponibles: Una cara, un bloque (una única señal de selección CS*) Doble cara, un bloque (una única señal de selección) Doble cara, doble bloque (dos señales de selección) Doble cara, cuatro bloques (cuatro señales de selección)
Número de contactos: SDRAM 168 pines DDR1 184 pines DDR2 y DDR3 240 pines
65
Memoria
Memoria Principal
Módulos de Memoria DIMMDual In-line Memory Module
Chip DRAM de 8 bits
66
Memoria
Resumen
Memoria
Caché SRAM Static Random Access Memory
Principal DRAMDynamic Random Access Memory
Asíncrona
Síncrona
DRAM – Fast Page
DRAM – EDO
DRAM – Burst
SDRAM
Rambus
DDR1
DDR2
DDR3
67
4.4. Memoria virtualMemoria virtual
68
MEMORIA
Memoria
Memoria Virtual
Desde hace tiempo ...
¿Cómo lo hacen?
Los sistemas informáticos son capaces de tener más de un programa en memoria (multiprogramación)
Las necesidades de memoria de todos los programas de un sistema son superiores a la memoria física disponible
Utilizando la memoria secundaria como si fuera memoria principal
69
Memoria
Memoria Virtual
Mantener en memoria principal las instrucciones y los datos que con mayor frecuencia se utilizan. Examinando los programas se observa que ...
Dejar en el disco la parte del programa que no se necesite
Antes de que la CPU pueda extraer una instrucción o acceder a un dato es necesario que estén en memoria principal
Separar espacio de direcciones de posición de memoria
INDIRECCIÓN
Existe código que raramente se utiliza
Y variables sobredimensionadas
Direcciones lógicas
Direcciones físicas
Concepto
70
Memoria
Memoria Virtual
Memoria
Principal
CPU
Bus del sistema
Permite que los procesos estén parcialmente cargados y en posiciones no contiguas de memoria
MMU
Dir. Virtual $100
Dir. Física
Forman el espacio de Direccionamiento Virtual
En los microprocesadores actuales entre 232 y 264 direcciones
Forman el espacio de Direccionamiento Virtual
En los microprocesadores actuales entre 232 y 264 direcciones
Dir. VirtualesDir. Virtuales
LD R1,4(R10)
Los procesos generan Direcciones Virtuales (lógicas)
La Paginación es una forma de implementar la Memoria Virtual
71
Memoria Virtual
Tema 4 Gestión deMemoria 72
Memoria Principal
(Dir. Físicas)
Dividido en páginas
Cuyo tamaño sea múltiplo del bloque de disco
Pág 0
Pág 1
Pág 2
Pág 3
Pág 4
...
...
...
Pág N
Dividido en Marcos
Marco N
...
Marco 1
Marco 0
¿Cómo conocer dónde están las
páginas?
Espacio Dir. Virtual
Memoria
Memoria Virtual
73
Tabla de páginas
0
1...
N
Nº Pág.
Formada por una entrada por cada página virtualIndexada por el número de página
P E R PR
Bits de Protección
R W X
Marco
Bit de Presencia
Marco de memoria principal
El tamaño de la entrada es múltiplo
de la palabra del procesador
Tabla de Páginas
Bit de Ensuciado
Bit de Referencia
Memoria
Memoria Virtual
74
Pág. Desplazamiento
Dir. Virtual
CP
U
+
M.P.
Marcos
1
...
N
0
Reg. Base TP
Disco
Pág 0
Pág 1
Pág 2
...
Pág N
Dir. Física
Tabla de páginas
0
1...
N
1Marco
Traducción de Direcciones
Memoria
Memoria Virtual
75
Tabla de páginas
0
1
...
32
5
P
4
1 N
0 X1
N
0
...
Memoria Principal
Pág 0
Pág 2
........................ld R1, 10(R2)........................
S.O.
ActualizarTab. Pág
Cargar Pág.2
$2312FaltaPág
Disco
Pág 1
Pág 2
...
Pág N
Pág 2Pág 20 0
Página: 2Despl.: 312
Falta de página
Continuar
1 2
3
4
3
3
Memoria
Memoria Virtual
76
MMU
Reg. Base TP
Tabla de Páginas
Fallo
Utilizando una caché con la traducción de las direcciones más frecuentes
Dir. Virtual
Pág. Despl.Dir. Física
+
Etiqueta
AciertoMarco
Marco
TLB
Etiq. -- MarcoActualizar
Traducción de direcciones: TLBTranslation Lookaside Buffer
Memoria
Memoria Virtual
77
Marco de M.P.
Id. de Proceso
Suelen tener un número reducido de entradas (de 128 a 256)
Correspondencia directa o asociativa
Los procesadores disponen de instrucciones especiales para manipularla (insertar e invalidar entradas)
Bit de Validez
Nº de Página ETIQUETA
Bit de Ensuciado
Bits de Protección
Entrada de la TLB
¿Qué ocurre cuando hay un
cambio de contexto?
TLBEstructura
Memoria
Memoria Virtual
78
Dir. Virtual
Acceder TLB
Buscar en Tab. Pág.
Fallo Acierto
Excepción
Pág. No encontrada
Actualizar TLB
Pág. encontrada
Traducir Dirección
Acceso Permitido
Excepción
Acceso No Permitido
Dir. Física
Esquema generalde Traducción
Memoria
Memoria Virtual
79
Dir. Virtual <64>
Mem. Vir. Tamaño Pág: 8KBTLB 256 entradasCorresp. DirectaCaché L1Tamaño 8 KB Corr. DirectaCaché L2Tamaño 4 MB Corr. DirectaBloque 64 octetos
Dir. Real <40>
L1 cache tag <27>
L1 data<64B>
L2 tag <18>
L2 cache tag <18>
L2 data <64B>
L2 línea <16> L2 Des <6>
Top Related