Sistema de memoria
Índice
- Introducción
- Objetivos
- 1.Características de las memorias
- 2.Jerarquía de memorias
- 2.1.Registros
- 2.2.Memoria interna
- 2.2.1.Memoria caché
- 2.2.2.Memoria principal
- 2.3.Memoria externa
- 2.4.Memoria virtual
- 2.5.Funcionamiento de la jerarquía de memorias
- 3.Memoria caché
- 4.Memoria interna
- 4.1.Memoria volátil
- 4.2.Memoria no volátil
- 5.Memoria externa
- 5.1.Discos magnéticos
- 5.1.1.RAID
- 5.2.Cinta magnética
- 5.3.Memoria flash
- 5.4.Disco óptico
- 5.5.Red
- 5.1.Discos magnéticos
- Resumen
Introducción
Objetivos
-
Conocer las características básicas de una memoria.
-
Comprender los conceptos básicos sobre la organización de la jerarquía de memoria de un computador.
-
Analizar cómo se gestionan los datos entre los diferentes niveles de la jerarquía de memorias, especialmente en la memoria caché.
-
Conocer las diferentes tecnologías utilizadas para implementar los diferentes tipos de memorias utilizados en un computador.
1.Características de las memorias
1.1.Localización de la memoria
1.2.Capacidad de la memoria
10-12 |
pico (p) |
10-9 |
nano (n) |
10-6 |
micro (μ) |
10-3 |
mili (m) |
103 |
kilo (K) |
106 |
mega (M) |
109 |
giga (G) |
1012 |
tera (T) |
210 |
kibi (Ki) |
220 |
mebi (Mi) |
230 |
gibi (Gi) |
240 |
tebi (Ti) |
1.3.Métodos de acceso
1.4.Organización de los datos de una memoria
Memoria interna |
|
Dirección |
Palabra |
0000000000 |
00000000 00000000 |
0000000001 |
00000000 00000000 |
0000000010 |
00000000 00000000 |
0000000011 |
00000000 00000000 |
0000000100 |
00000000 00000000 |
... |
... |
↑ (1.024 direcciones) ↓ |
contenido almacenado en la memoria |
... |
... |
1111111100 |
00000000 00000000 |
1111111101 |
00000000 00000000 |
1111111110 |
00000000 00000000 |
1111111111 |
00000000 00000000 |
1.4.1.Ordenación de los bytes en memoria
-
Big-endian: la dirección especificada corresponde al byte de más peso de la palabra.
-
Little-endian: la dirección especificada corresponde al byte de menos peso de la palabra.
Dirección |
Valor |
|
---|---|---|
0 |
00000000 |
01100110 |
1 |
00000001 |
11100011 |
... |
... |
... |
14 |
00001110 |
00000000 |
15 |
00001111 |
11111111 |
... |
... |
... |
254 |
11111110 |
00001111 |
255 |
11111111 |
11001100 |
1.5.Tiempo de acceso y velocidad
1.6.Coste
1.7.Características físicas
-
Memoria volátil: memoria que necesita una corriente eléctrica para mantener su estado; estas memorias incluyen registros, memoria caché y memoria principal.
-
Memoria no volátil: mantiene el estado sin necesidad de corriente eléctrica, incluye memorias de solo lectura, memorias programables, memoria flash, dispositivos de almacenamiento magnético y óptico.
-
Memoria de semiconductores: es una memoria que utiliza elementos semiconductores, transistores, en su construcción; incluye: registros, memoria caché, memoria principal, memorias de solo lectura, memoria flash.
-
Memoria magnética: utiliza superficies imantadas para guardar la información; dentro de esta categoría se incluyen básicamente discos y cintas magnéticas.
-
Memoria óptica: utiliza elementos de almacenamiento que pueden ser leídos y escritos mediante luz láser; se incluyen dispositivos de CD, DVD, Blu-ray.
2.Jerarquía de memorias
2.1.Registros
2.2.Memoria interna
2.2.1.Memoria caché
2.2.2.Memoria principal
2.3.Memoria externa
2.4.Memoria virtual
2.5.Funcionamiento de la jerarquía de memorias
-
El flujo de datos entre los niveles de la jerarquía de memorias se puede hacer en paralelo con el funcionamiento normal del procesador.
-
El principio de proximidad referencial de los programas.
3.Memoria caché
3.1.Aciertos y fallos
3.2.Rendimiento de la memoria caché
3.3.Línea de memoria caché
3.4.Políticas de asignación
3.4.1.Memoria caché de asignación directa
Número de línea |
Bloques asignados |
---|---|
0 |
0, 2m, 2 x (2m), ... |
1 |
1, 2m + 1, 2 x (2m) + 1, ... |
2 |
2, 2m + 2, 2 x (2m) + 2, ... |
... |
... |
2m – 1 |
2m – 1, 2m + (2m – 1), 2 x 2m + (2m – 1), ... |
Número de línea |
Bloques asignados |
---|---|
0 |
0, 16, 32, 48, 64, ..., 1008 |
1 |
1, 17, 33, 49, 65, ..., 1009 |
2 |
2, 18, 34, 50, 66, ..., 1010 |
... |
... |
15 |
15, 31, 63, 79, ..., 1023 |
3.4.2.Memoria caché completamente asociativa
3.4.3.Memoria caché asociativa por conjuntos
Líneas |
Número de conjunto |
Bloques asignados |
---|---|---|
0, ..., ω – 1 |
0 |
0, 2c, 2 x (2c), 3 x (2c) ... |
ω, ..., 2ω – 1 |
1 |
1, 2c + 1, 2 x (2c) + 1, 3 x (2c) + 1 ... |
... |
... |
|
(2c – 1) ω, ..., 2c ω – 1 |
2c – 1 |
2c – 1, 2c + (2c – 1), 2 x 2c + (2c – 1), ..., 3 x 2c + (2c – 1) |
Líneas |
Número de conjunto |
Bloques asignados |
---|---|---|
0, 1, 2, 3 |
0 |
0, 16, 32, 48, 64, ..., 4080 |
4, 5, 6, 7 |
1 |
1, 17, 33, 49, 65, ..., 4081 |
... |
... |
... |
60, 61,62, 63 |
15 |
15, 31, 47, 63, 79, ..., 4095 |
3.5.Algoritmos de reemplazo
3.6.Comparativa entre diferentes sistemas de memoria caché
3.6.1.Memoria caché de asignación directa
l: número de línea |
Bloques |
Bloque: etiqueta (6 bits) línea (2 bits) |
---|---|---|
0 (00) |
0, 4, 8, 12, ..., 252 |
0(000000) 0(00), 1(000001) 0(00), 2(000010) 0(00), ..., 63(111111) 0(00) |
1 (01) |
1, 5, 9, 13, ..., 253 |
0(000000) 1(01), 1(000001) 1(01), 2(000010) 1(01), ..., 63(111111) 1(01) |
2 (10) |
2, 6, 10, 14, ..., 254 |
0(000000) 2(10), 1(000001) 2(10), 2(000010) 2(10), ..., 63(111111) 2(10) |
3 (11) |
3, 7, 11, 15, ..., 255 |
0(000000) 3(11), 1(000001) 3(11), 2(000010) 3(11), ..., 63(111111) 3(11) |
l: número de línea |
b:e (a0 ,a1 ,a2 ,a3): bloque asignado : etiqueta (direcciones del bloque) |
|||
---|---|---|---|---|
0 |
0:0 (0,1,2,3) |
4:1 (16,17,18,19) |
8:2 (32,33,34,35) |
12:3 (48,49,50,51) |
1 |
1:0 (4,5,6,7) |
5:1 (20,21,22,23) |
9:2 (36,37,38,39) |
13:3 (52,53,54,55) |
2 |
2:0 (8,9,10,11) |
6:1 (24,25,26,27) |
10:2 (40,41,42,43) |
14:3 (56,57,58,59) |
3 |
3:0 (12,13,14,15) |
7:1 (28,29,30,31) |
11:2 (44,45,46,47) |
15:3 (60,61,62,63) |
Estado inicial |
1 |
Fallo |
2 |
4 |
Fallo |
10 |
Fallo |
15 |
Fallo |
|
Línea 0 |
F |
0:0 (0, 1, 2, 3) |
E |
0:0 (0, 1, 2, 3) |
0:0 (0, 1, 2, 3) |
0:0 (0, 1, 2, 3) |
||||
Línea 1 |
F |
1:0 (4, 5, 6, 7) |
1:0 (4, 5, 6, 7) |
1:0 (4, 5, 6, 7) |
||||||
Línea 2 |
F |
2:0 (8, 9, 10, 11) |
2:0 (8, 9, 10, 11) |
|||||||
Línea 3 |
F |
3:0 (12, 13, 14, 15) |
1 |
26 |
Fallo |
27 |
28 |
Fallo |
29 |
36 |
Fallo |
|
Línea 0 |
E |
0:0 (0, 1, 2, 3) |
0:0 (0, 1, 2, 3) |
0:0 (0, 1, 2, 3) |
|||||
Línea 1 |
1:0 (4, 5, 6, 7) |
1:0 (4, 5, 6, 7) |
F |
9:2 (36, 37, 38, 39) |
|||||
Línea 2 |
F |
6:1 (24, 25, 26, 27) |
E |
6:1 (24, 25, 26, 27) |
6:1 (24, 25, 26, 27) |
||||
Línea 3 |
3:0 (12, 13, 14, 15) |
F |
7:1 (28, 29, 30, 31) |
E |
7:1 (28, 29, 30, 31) |
37 |
38 |
40 |
Fallo |
10 |
Fallo |
11 |
12 |
Fallo |
13 |
9 |
|
Línea 0 |
0:0 (0, 1, 2, 3) |
0:0 (0, 1, 2, 3) |
0:0 (0, 1, 2, 3) |
||||||||
Línea 1 |
E |
E |
9:2 (36, 37, 38, 39) |
9:2 (36, 37, 38, 39) |
9:2 (36, 37, 38, 39) |
||||||
Línea 2 |
F |
10:2 (40, 41, 42, 43) |
F |
2:0 (8, 9, 10, 11) |
E |
2:0 (8, 9, 10, 11) |
E |
||||
Línea 3 |
7:1 (28, 29, 30, 31) |
7:1 (28, 29, 30, 31) |
F |
3:0 (12, 13, 14, 15) |
E |
30 |
Fallo |
8 |
12 |
Fallo |
40 |
Fallo |
17 |
Fallo |
40 |
|
Línea 0 |
0:0 (0, 1, 2, 3) |
0:0 (0, 1, 2, 3) |
0:0 (0, 1, 2, 3) |
F |
4:1 (16, 17, 18, 19) |
|||||
Línea 1 |
9:2 (36, 37, 38, 39) |
9:2 (36, 37, 38, 39) |
9:2 (36, 37, 38, 39) |
9:2 (36, 37, 38, 39) |
||||||
Línea 2 |
2:0 (8, 9, 10, 11) |
E |
2:0 (8, 9, 10, 11) |
F |
10:2 (40, 41, 42, 43) |
10:2 (40, 41, 42, 43) |
E |
|||
Línea 3 |
F |
7:1 (28,29,30,31) |
F |
3:0 (12, 13, 14, 15) |
3:0 (12, 13, 14, 15) |
3:0 (12, 13, 14, 15) |
3.6.2.Memoria caché completamente asociativa
b (a0 ,a1 ,a2 ,a3): bloque (direcciones del bloque) |
|||
0 (0,1,2,3) |
4 (16,17,18,19) |
8 (32,33,34,35) |
12 (48,49,50,51) |
1 (4,5,6,7) |
5 (20,21,22,23) |
9 (36,37,38,39) |
13 (52,53,54,55) |
2 (8,9,10,11) |
6 (24,25,26,27) |
10 (40,41,42,43) |
14 (56,57,58,59) |
3 (12,13,14,15) |
7 (28,29,30,31) |
11 (44,45,46,47) |
15 (60,61,62,63) |
Estado inicial |
1 |
Fallo |
2 |
4 |
Fallo |
10 |
Fallo |
15 |
Fallo |
|
Línea 0 |
F |
0 (0, 1, 2, 3) |
E |
0 (0, 1, 2, 3) |
0 (0, 1, 2, 3) |
0 (0, 1, 2, 3) |
||||
Línea 1 |
F |
1 (4, 5, 6, 7) |
1 (4, 5, 6, 7) |
1 (4, 5, 6, 7) |
||||||
Línea 2 |
F |
2 (8, 9, 10, 11) |
2 (8, 9, 10, 11) |
|||||||
Línea 3 |
F |
3 (12, 13, 14, 15) |
26 |
Fallo |
27 |
28 |
Fallo |
29 |
36 |
Fallo |
37 |
38 |
|
Línea 0 |
F |
6 (24, 25, 26, 27) |
E |
6 (24, 25, 26, 27) |
6 (24, 25, 26, 27) |
|||||
Línea 1 |
1 (4, 5, 6, 7) |
F |
7 (28, 29, 30, 31) |
E |
7 (28, 29, 30, 31) |
|||||
Línea 2 |
2 (8, 9, 10, 11) |
2 (8, 9, 10, 11) |
F |
9 (36, 37, 38, 39) |
E |
E |
||||
Línea 3 |
3 (12, 13, 14, 15) |
3 (12, 13, 14, 15) |
3 (12, 13, 14, 15) |
40 |
Fallo |
10 |
Fallo |
11 |
12 |
Fallo |
13 |
9 |
|
Línea 0 |
6 (24, 25, 26, 27) |
F |
2 (8, 9, 10, 11) |
E |
2 (8, 9, 10, 11) |
E |
|||
Línea 1 |
7 (28, 29, 30, 31) |
7 (28, 29, 30, 31) |
F |
3 (12, 13, 14, 15) |
E |
||||
Línea 2 |
9 (36, 37, 38, 39) |
9 (36, 37, 38, 39) |
9 (36, 37, 38, 39) |
||||||
Línea 3 |
F |
10 (40, 41, 42, 43) |
10 (40, 41, 42, 43) |
10 (40, 41, 42, 43) |
30 |
Fallo |
8 |
12 |
40 |
17 |
Fallo |
40 |
Fallo |
|
Línea 0 |
2 (8, 9, 10, 11) |
E |
2 (8, 9, 10, 11) |
F |
10 (40, 41, 42, 43) |
||||
Línea 1 |
3 (12, 13, 14, 15) |
E |
3 (12, 13, 14, 15) |
3 (12, 13, 14, 15) |
|||||
Línea 2 |
F |
7 (28, 29, 30, 31) |
7 (28, 29, 30, 31) |
7 (28, 29, 30, 31) |
|||||
Línea 3 |
10 (40, 41, 42, 43) |
E |
F |
4 (16, 17, 18, 19) |
4 (16, 17, 18, 19) |
Estado inicial |
1 |
Fallo |
2 |
4 |
Fallo |
10 |
Fallo |
15 |
Fallo |
|
Línea 0 |
F |
0 (0, 1, 2, 3) |
E |
0 (0, 1, 2, 3) |
0 (0, 1, 2, 3) |
0 (0, 1, 2, 3) |
||||
Línea 1 |
F |
1 (4, 5, 6, 7) |
1 (4, 5, 6, 7) |
1 (4, 5, 6, 7) |
||||||
Línea 2 |
F |
2 (8, 9, 10, 11) |
2 (8, 9, 10, 11) |
|||||||
Línea 3 |
F |
3 (12, 13, 14, 15) |
1 |
26 |
Fallo |
27 |
28 |
Fallo |
29 |
36 |
Fallo |
37 |
38 |
|
Línea 0 |
E |
0 (0, 1, 2, 3) |
0 (0, 1, 2, 3) |
0 (0, 1, 2, 3) |
|||||||
Línea 1 |
F |
6 (24, 25, 26, 27) |
E |
6 (24, 25, 26, 27) |
6 (24, 25, 26, 27) |
||||||
Línea 2 |
2 (8, 9, 10, 11) |
F |
7 (28, 29, 30, 31) |
E |
7 (28, 29, 30, 31) |
||||||
Línea 3 |
3 (12, 13, 14, 15) |
3 (12, 13, 14, 15) |
F |
9 (36, 37, 38, 39) |
E |
E |
40 |
Fallo |
10 |
Fallo |
11 |
12 |
Fallo |
13 |
9 |
|
Línea 0 |
F |
10 (40, 41, 42, 43) |
10 (40, 41, 42, 43) |
10 (40, 41, 42, 43) |
|||||
Línea 1 |
6 (24, 25, 26, 27) |
F |
2 (8, 9, 10, 11) |
E |
2 (8, 9, 10, 11) |
E |
|||
Línea 2 |
7 (28, 29, 30, 31) |
7 (28, 29, 30, 31) |
F |
3 (12, 13, 14, 15) |
E |
||||
Línea 3 |
9 (36, 37, 38, 39) |
9 (36, 37, 38, 39) |
9 (36, 37, 38, 39) |
30 |
Fallo |
8 |
12 |
40 |
17 |
Fallo |
40 |
|
Línea 0 |
10 (40, 41, 42, 43) |
E |
10 (40, 41, 42, 43) |
E |
||||
Línea 1 |
2 (8, 9, 10, 11) |
E |
2 (8, 9, 10, 11) |
|||||
Línea 2 |
3 (12, 13, 14, 15) |
E |
3 (12, 13, 14, 15) |
|||||
Línea 3 |
F |
7 (28, 29, 30, 31) |
F |
4 (16, 17, 18, 19) |
3.6.3.Memoria caché asociativa por conjuntos
j: número de conjunto |
Línea |
Bloques |
Bloque: etiqueta (7 bits) conjunto de 1 bit |
---|---|---|---|
0 |
0 |
0, 2, 4, 6, 8, ..., 254 |
0:0(0000000) 0, 2:1(0000001) 0, 4:2(0000010) 0, ..., 254:127(1111111) 0 |
1 |
|||
1 |
2 |
1, 3, 5, 7, 9, ..., 255 |
1:0(0000000) 1, 3:1(0000001) 1, 5:2(0000010) 1, ..., 255:127(1111111) 1 |
3 |
j: número de conjunto |
b:e (a0 ,a1 ,a2 ,a3): bloque asignado : etiqueta (direcciones del bloque) |
|||
---|---|---|---|---|
0 |
0:0 (0,1,2,3) 2:1 (8,9,10,11) |
4:2 (16,17,18,19) 6:3 (24,25,26,27) |
8:4 (32,33,34,35) 10:5 (40,41,42,43) |
12:6 (48,49,50,51) 14:7 (56,57,58,59) |
1 |
1:0 (4,5,6,7) 3:1 (12,13,14,15) |
5:2 (20,21,22,23) 7:3 (28,29,30,31) |
9:4 (36,37,38,39) 11:5 (44,45,46,47) |
13:6 (52,53,54,55) 15:7 (60,61,62,63) |
Estado inicial |
1 |
Fallo |
2 |
4 |
Fallo |
10 |
Fallo |
15 |
Fallo |
|
Línea 0 |
F |
0:0 (0, 1, 2, 3) |
E |
0:0 (0, 1, 2, 3) |
0:0 (0, 1, 2, 3) |
0:0 (0, 1, 2, 3) |
||||
Línea 1 |
F |
2:1 (8, 9, 10, 11) |
2:1 (8, 9, 10, 11) |
|||||||
Línea 2 |
F |
1:0 (4, 5, 6, 7) |
1:0 (4, 5, 6, 7) |
1:0 (4, 5, 6, 7) |
||||||
Línea 3 |
F |
3:1 (12, 13, 14, 15) |
1 |
26 |
Fallo |
27 |
28 |
Fallo |
29 |
36 |
Fallo |
|
Línea 0 |
E |
0:0 (0, 1, 2, 3) |
0:0 (0, 1, 2, 3) |
0:0 (0, 1, 2, 3) |
|||||
Línea 1 |
F |
6:3 (24,25,26,27) |
E |
6:3 (24,25,26,27) |
6:3 (24,25,26,27) |
||||
Línea 2 |
1:0 (4, 5, 6, 7) |
F |
7:3 (28,29,30,31) |
E |
7:3 (28,29,30,31) |
||||
Línea 3 |
3:1 (12, 13, 14, 15) |
3:1 (12, 13, 14, 15) |
F |
9:4 (36,37,38,39) |
37 |
38 |
40 |
Fallo |
10 |
Fallo |
11 |
12 |
Fallo |
13 |
9 |
|
Línea 0 |
F |
10:5 (40,41,42,43) |
10:5 (40,41,42,43) |
10:5 (40,41,42,43) |
|||||||
Línea 1 |
6:3 (24,25,26,27) |
F |
2:1 (8,9,10,11) |
E |
2:1 (8,9,10,11) |
E |
|||||
Línea 2 |
7:3 (28,29,30,31) |
7:3 (28,29,30,31) |
F |
3:1 (12,13,14,15) |
E |
||||||
Línea 3 |
E |
E |
9:4 (36,37,38,39) |
9:4 (36,37,38,39) |
9:4 (36,37,38,39) |
30 |
Fallo |
8 |
12 |
40 |
17 |
Fallo |
40 |
|
Línea 0 |
10:5 (40,41,42,43) |
E |
10:5 (40,41,42,43) |
E |
||||
Línea 1 |
2:1 (8,9,10,11) |
E |
F |
4:2 (16,17,18,19) |
||||
Línea 2 |
3:1 (12,13,14,15) |
E |
3:1 (12,13,14,15) |
|||||
Línea 3 |
F |
7:3 (28,29,30,31) |
7:3 (28,29,30,31) |
Asignación directa: |
Tf = 14/25 = 0,56 |
Completamente asociativa con FIFO: |
Tf = 13/25 = 0,52 |
Completamente asociativa con LRU: |
Tf = 12/25 = 0,48 |
Asociativa por conjuntos con LRU: |
Tf = 12/25 = 0,48 |
3.7.Políticas de escritura
4.Memoria interna
-
Memoria volátil
-
SRAM (static random access memory)
-
RAM (dynamic random access memory)
-
-
Memoria no volátil
-
ROM (read only memory)
-
PROM (programmable read only memory)
-
EPROM (erasable programmable read only memory)
-
EEPROM (electrically erasable programmable read only memory)
-
-
Memoria flash
4.1.Memoria volátil
4.2.Memoria no volátil
5.Memoria externa
5.1.Discos magnéticos
5.1.1.RAID
5.2.Cinta magnética
5.3.Memoria flash
5.4.Disco óptico
5.5.Red
Resumen
-
localización,
-
capacidad,
-
métodos de acceso,
-
organización de los datos de una memoria,
-
tiempo de acceso y velocidad,
-
coste y
-
características físicas.
-
Registros.
-
Memoria interna.
-
Memoria caché.
-
Memoria principal.
-
-
Memoria externa.
-
proximidad temporal y
-
proximidad espacial.
-
La organización de la memoria caché.
-
El concepto de acierto y fallo y los índices para medir el rendimiento.
-
Las diferentes políticas de asignación que hay a la hora de llevar un bloque de memoria principal a la memoria caché:
-
asignación directa,
-
asignación completamente asociativa y
-
asignación asociativa por conjuntos.
-
-
Los diferentes algoritmos de reemplazo que se pueden utilizar cuando hay que sustituir el contenido de una línea de la memoria caché:
-
FIFO,
-
LFU,
-
LRU y
-
aleatorio.
-
-
La comparativa entre los diferentes sistemas de memoria caché.
-
Cómo gestionar las escrituras en una memoria caché.