Gestión de memoria Rina Arauz. Gestión de memoria 2 Definición n La memoria es una amplia tabla...

47
Gestión de memoria Rina Arauz

Transcript of Gestión de memoria Rina Arauz. Gestión de memoria 2 Definición n La memoria es una amplia tabla...

Page 1: Gestión de memoria Rina Arauz. Gestión de memoria 2 Definición n La memoria es una amplia tabla de datos, cada uno de los cuales con su propia dirección.

Gestión de memoria

Rina Arauz

Page 2: Gestión de memoria Rina Arauz. Gestión de memoria 2 Definición n La memoria es una amplia tabla de datos, cada uno de los cuales con su propia dirección.

Gestión de memoria 2

Definición

La memoria es una amplia tabla de datos, cada uno de los cuales con su propia dirección.

Tanto el tamaño de la tabla (memoria), como el de los datos incluidos en ella dependen de cada arquitectura concreta.

Para que los programas puedan ser ejecutados es necesario que estén cargados en memoria principal.

La información que es necesario almacenar de modo permanente se guarda en dispositivos de almacenamiento secundarios también conocidos como memoria secundaria.

Page 3: Gestión de memoria Rina Arauz. Gestión de memoria 2 Definición n La memoria es una amplia tabla de datos, cada uno de los cuales con su propia dirección.

Gestión de memoria 3

Localidad

Los procesos tienden a concentrar sus referencias en un intervalo de tiempo en un subconjunto de su espacio de direcciones.

La localidad puede ser de dos tipos: Localidad espacial Localidad temporal

Page 4: Gestión de memoria Rina Arauz. Gestión de memoria 2 Definición n La memoria es una amplia tabla de datos, cada uno de los cuales con su propia dirección.

Gestión de memoria 4

Localidad espacial y temporal Localidad espacial: una vez hecha una referencia a una

posición de memoria, es muy probable que las localidades cercanas sean también referenciadas.

En apoyo a esta observación encontramos: Ejecución secuencial del código Tendencia de los programadores a colocar próximas

entre sí las variables relacionadas Acceso a estructuras de datos de tipo matriz o pila

Localidad temporal: una vez hecha una referencia a una posición de memoria en un determinado instante t, es muy probable que esa misma posición sea accedida en un instante t + t

Justificada por: Formación de ciclos,Subrutinas,Pilas

Page 5: Gestión de memoria Rina Arauz. Gestión de memoria 2 Definición n La memoria es una amplia tabla de datos, cada uno de los cuales con su propia dirección.

Las memorias están constituidas por miles de celdas. Cada "celda" de la memoria puede almacenar un bit, Una palabra puede estar constituida por 6, 8, 12, 16, 32, 64 ó incluso más bits.   Dirección es la ubicación de una palabra. El conjunto de celdas en las que se almacena una palabra se llama "Posición de

memoria" .

Hay que distinguir entre dirección de una posición de memoria y el dato que puede ser almacenado en esa dirección. 

Palabra: número de bits que suele contener cada posición de memoria (8,16, 32 ó 64 bits).

Dirección: posición de memoria en la que se almacena una información (conjunto de bits que identifican a cada palabra de la memoria).

Si tenemos un sistema con una palabra de 4 bits y una dirección de 10 bits, tendremos un sistema con una capacidad de:

210 (palabras)* 4 (bits por palabra) = 4 Kbits

Gestión de memoria 5

Page 6: Gestión de memoria Rina Arauz. Gestión de memoria 2 Definición n La memoria es una amplia tabla de datos, cada uno de los cuales con su propia dirección.

Gestión de memoria 6

000 001

1 0 0 1 1 1 0 0010 011

1 0 1 1 1 0 0 1100 101

1 1 1 1 0 0 1 1110 111

1 1 0 1 1 0 1 1

Dirección

Palabra

Posición de Memoria

Celda

Si tenemos un sistema con una palabra de 4 bits y una dirección de 3 bits, tendremos un sistema con una capacidad de:

23 (palabras)* 4 (bits por palabra) = 32bits

Memoria

Page 7: Gestión de memoria Rina Arauz. Gestión de memoria 2 Definición n La memoria es una amplia tabla de datos, cada uno de los cuales con su propia dirección.

La memoria esta caracterizada por tres propiedades fundamentales;

   * Capacidad     * Tiempo de acceso     * Coste por bit

CAPACIDAD: cantidad de información que puede almacenar.

TIEMPO DE ACCESO: tiempo que se necesita para localizar y leer una información almacenada, es el tiempo transcurrido desde que se suministra la dirección hasta que se accede a la posición de memoria que se desea.

COSTE POR BIT: El coste por bit será el precio que cuesta almacenar un bit de información. O lo que es lo mismo, será el precio de una memoria dividido por la capacidad total de almacenamiento.

Cuando más grande se elija la capacidad de la memoria, mayor será el tiempo de acceso.

Gestión de memoria 7

Page 8: Gestión de memoria Rina Arauz. Gestión de memoria 2 Definición n La memoria es una amplia tabla de datos, cada uno de los cuales con su propia dirección.

Gestión de memoria 8

Jerarquía de memoria

Para ello se aprovechan los avances tecnológicos en el diseño de memorias y la localidad de los programas

CD-ROM - Cintas

Discos magnéticos

Memoria principal

Caché externa L2

Caché on-chip L1

Registros internosdel procesador

Mayor rapidezmenor tamaño ymayor precio

Menor rapidez

mayor tamaño ymenor precio

A medida que el tiempo de acceso aumenta, el coste por bit disminuye y la capacidad de almacenamiento aumenta.

Page 9: Gestión de memoria Rina Arauz. Gestión de memoria 2 Definición n La memoria es una amplia tabla de datos, cada uno de los cuales con su propia dirección.

Gestión de memoria 9

Tiempo de acceso Capacidad

Page 10: Gestión de memoria Rina Arauz. Gestión de memoria 2 Definición n La memoria es una amplia tabla de datos, cada uno de los cuales con su propia dirección.

Gestión de memoria 10

Fragmentación

Fragmentación = memoria desaprovechada Puede ser de dos tipos, interna y externa

Fragmentación interna Se debe a la diferencia de tamaño entre la partición de

memoria y el objeto residente dentro de ella Se produce siempre que se trabaje con bloques de

memoria de tamaño fijo Si el tamaño del objeto no coincide con el de la partición,

queda una zona que no se puede aprovechar Fragmentación externa

Se debe al desaprovechamiento de memoria entre particiones

Page 11: Gestión de memoria Rina Arauz. Gestión de memoria 2 Definición n La memoria es una amplia tabla de datos, cada uno de los cuales con su propia dirección.

Gestión de memoria 11

Dirección virtual/Físicas

Programa

fuente

Compilador oEnsamblador

Programa

objeto

EnlazadorPrograma

ejecutable

Otrosobjetos

Bibliotecas

Memoria

Cargador

Bibliotecasdinámicas

El problema de traducir las direcciones lógicas a direcciones físicas se llama reubicación.

Page 12: Gestión de memoria Rina Arauz. Gestión de memoria 2 Definición n La memoria es una amplia tabla de datos, cada uno de los cuales con su propia dirección.

Gestión de memoria 12

Reubicación

La reubicación hace referencia al hecho de ubicar los programas en memoria para su ejecución.

Reubicación estática Se realiza antes o durante la carga del programa en

memoria Los programas no pueden ser movidos una vez iniciados

Reubicación dinámica Los programas pueden moverse en tiempo de ejecución El paso de dirección virtual a dirección real, se realiza en

tiempo de ejecución Necesita hardware adicional (MMU)

Page 13: Gestión de memoria Rina Arauz. Gestión de memoria 2 Definición n La memoria es una amplia tabla de datos, cada uno de los cuales con su propia dirección.

MMU: Es un dispositivo Hardware que realiza la traducción

de direcciones lógicas (o virtuales) a direcciones físicas (o reales) y la protección de la memoria.

Gestión de memoria 13

Page 14: Gestión de memoria Rina Arauz. Gestión de memoria 2 Definición n La memoria es una amplia tabla de datos, cada uno de los cuales con su propia dirección.

Gestión de memoria 14

Esquemas de gestión de memoria Máquina desnuda Monitor monolítico o residente Asignación de memoria particionada contigua Asignación de memoria particionada no contigua Memoria virtual

Page 15: Gestión de memoria Rina Arauz. Gestión de memoria 2 Definición n La memoria es una amplia tabla de datos, cada uno de los cuales con su propia dirección.

Gestión de memoria 15

Máquina desnuda

Es la manera más sencilla de gestionar la memoria: no existe ningún gestor

El usuario controla toda la memoria El sistema no porporciona ningún servicio

Usuario

Memoria

Page 16: Gestión de memoria Rina Arauz. Gestión de memoria 2 Definición n La memoria es una amplia tabla de datos, cada uno de los cuales con su propia dirección.

Gestión de memoria 16

No

Monitor monolítico o residente

Protección:

CPU Dirección>Límite

Dirección límite

Error de direccionamiento

MEMORIA

MONITOR

Page 17: Gestión de memoria Rina Arauz. Gestión de memoria 2 Definición n La memoria es una amplia tabla de datos, cada uno de los cuales con su propia dirección.

Gestión de memoria 17

Memoria particionada contigua

Memoria particionada no contigua

Page 18: Gestión de memoria Rina Arauz. Gestión de memoria 2 Definición n La memoria es una amplia tabla de datos, cada uno de los cuales con su propia dirección.

Memoria particionada contigua

Se asigna una partición de memoria a cada proceso

MFT (Sistema multiprogramado con tamaño y numero de particiones fijo).

MVT (Sistema multiprogramado con tamaño y numero de particiones variable).

Gestión de memoria 18

Page 19: Gestión de memoria Rina Arauz. Gestión de memoria 2 Definición n La memoria es una amplia tabla de datos, cada uno de los cuales con su propia dirección.

MFT

La memoria se divide en particiones de distinto tamaño que se van asignando a los procesos.

Su mayor problema es la fragmentación interna.

En el ejemplo el P3 tiene asignados 600K y solo usa 100K y el P4 no puede ubicarse en memoria pese a ocupar 500k.

Gestión de memoria 19

Page 20: Gestión de memoria Rina Arauz. Gestión de memoria 2 Definición n La memoria es una amplia tabla de datos, cada uno de los cuales con su propia dirección.

MVT

Se asigna a cada proceso un bloque contiguo de memoria. Su mayor problema es la fragmentación externa, que puede solucionarse con compactación.

Se pueden utilizar varios algoritmos de asignación: Primer ajuste, Mejor ajuste, Peor ajuste.

Gestión de memoria 20

Page 21: Gestión de memoria Rina Arauz. Gestión de memoria 2 Definición n La memoria es una amplia tabla de datos, cada uno de los cuales con su propia dirección.

Protección:

Un proceso no puede acceder a la zona de memoria asignada a otros procesos. Registros Límites (Lim inferior y lim superior). Registros Base y Limite.

Gestión de memoria 21

Page 22: Gestión de memoria Rina Arauz. Gestión de memoria 2 Definición n La memoria es una amplia tabla de datos, cada uno de los cuales con su propia dirección.

Gestión de memoria 22

Registros límite

No soporta reubicación dinámica

CPU

No

<=

Límitesuperior

Error de direccionamiento

MEMORIA

Programa X

Límiteinferior

>=

No

Page 23: Gestión de memoria Rina Arauz. Gestión de memoria 2 Definición n La memoria es una amplia tabla de datos, cada uno de los cuales con su propia dirección.

Gestión de memoria 23

No

Registros base-límite

Soporta reubicación dinámica

CPU <

Límite

Error de direccionamiento

MEMORIA

Programa X

Base

+

Límite

Page 24: Gestión de memoria Rina Arauz. Gestión de memoria 2 Definición n La memoria es una amplia tabla de datos, cada uno de los cuales con su propia dirección.

Gestión de memoria 24

Tabla de descripción de particiones

Sistema operativo

Pi

Pj

Pk

0K 100K ASIGNADA

100K 300K LIBRE

400K 100K ASIGNADA

500K 250K ASIGNADA

700K 150K ASIGNADA

900K 100K LIBRE

0K

100K

400K

500K

750K

900K

1000K

Número Base Tamaño Estadode la de la de la de lapartición partición partición partición

0

1

2

3

4

5

Page 25: Gestión de memoria Rina Arauz. Gestión de memoria 2 Definición n La memoria es una amplia tabla de datos, cada uno de los cuales con su propia dirección.

Gestión de memoria 25

Memoria particionada no contigua

Esquemas: Segmentación Paginación Segmentación paginada Paginación segmentada

Page 26: Gestión de memoria Rina Arauz. Gestión de memoria 2 Definición n La memoria es una amplia tabla de datos, cada uno de los cuales con su propia dirección.

Gestión de memoria 26

Segmentación Permite que los segmentos de un proceso (código, datos,

pila, etc.) puedan estar situados en áreas de memoria no contiguas.

Las direcciones en estos sistemas tienen dos componentes: número de segmento y desplazamiento.

La traducción de direcciones se lleva a cabo con la ayuda de la tabla de segmentos (TDS).

Los segmentos pueden tener tamaños diferentes. La Protección se basa en registros base y límite. Si la tabla de segmentos es muy grande, se guarda en

memoria apuntada por un registro base (RPBTS) Problema: se necesitan dos referencias por cada acceso,

uno a la tabla de segmentos y el otro a la posición referenciada: Solución: utilizar registros internos dentro de la CPU (Intel)

Page 27: Gestión de memoria Rina Arauz. Gestión de memoria 2 Definición n La memoria es una amplia tabla de datos, cada uno de los cuales con su propia dirección.

Gestión de memoria 27

Segmentación (esquema lógico)

Memoriafísica

Código

Espacio de direccionamiento virtualEspacio de direccionamiento real

Dátos

Datos

compartidos

PilaCódigo

Dátos

Datos

compartidos

Pila

MMU

Page 28: Gestión de memoria Rina Arauz. Gestión de memoria 2 Definición n La memoria es una amplia tabla de datos, cada uno de los cuales con su propia dirección.

Gestión de memoria 28

Segmentación (HW)

Procesador S D

Base 1Base 2Base 3Base 4Base 5Base 6Base 7Base 8

S

Memoria

Límite 1Límite 2Límite 3Límite 4Límite 5Límite 6Límite 7Límite 8

<

Tabla de segmentos

+¡¡¡ Error !!!

Base 5

D

RPBTS

RLTS

Page 29: Gestión de memoria Rina Arauz. Gestión de memoria 2 Definición n La memoria es una amplia tabla de datos, cada uno de los cuales con su propia dirección.

Gestión de memoria 29

Paginación

Es un esquema de gestión de memoria en el que la asignación de memoria no es contigua.

El espacio de direcciones virtuales de un proceso está dividido en bloques de tamaño fijo llamados páginas.

Se produce fragmentación interna. La memoria física se divide en marcos de página. La dirección virtual consta de un número de página

virtual y un desplazamiento.

Page 30: Gestión de memoria Rina Arauz. Gestión de memoria 2 Definición n La memoria es una amplia tabla de datos, cada uno de los cuales con su propia dirección.

La traducción de direcciones se lleva a cabo con la ayuda de la tabla de páginas (TDP)

Si se piden “s” posiciones de memoria nº páginas asignadas=[s/p] p: tamaño de la página

Si el cociente anterior no es entero se produce la llamada fragmentación de página

Con página grande aumentamos la fragmentación interna pero disminuimos el tamaño de la TDP

Gestión de memoria 30

Page 31: Gestión de memoria Rina Arauz. Gestión de memoria 2 Definición n La memoria es una amplia tabla de datos, cada uno de los cuales con su propia dirección.

Gestión de memoria 31

Paginación (esquema lógico)

MemoriafísicaCódigo

Espacio de direccionamiento virtual Espacio de direccionamiento real

MMU

A

Páginas

Marcos

B

C

D

E

F

G A

B

C

D

Page 32: Gestión de memoria Rina Arauz. Gestión de memoria 2 Definición n La memoria es una amplia tabla de datos, cada uno de los cuales con su propia dirección.

Gestión de memoria 32

Paginación (HW)

Procesador P D

Marco 1Marco 2Marco 3Marco 4Marco 5Marco 6Marco 7Marco 8

P

Memoria

Tabla de páginas

Marco 5

D

RPBTP

RLTP

M D

Page 33: Gestión de memoria Rina Arauz. Gestión de memoria 2 Definición n La memoria es una amplia tabla de datos, cada uno de los cuales con su propia dirección.

Gestión de memoria 33

Si el número de páginas es grande, la zona de memoria ocupada por la TDP puede ser excesiva

Ejemplo: Tamaño de cada entrada de la TDP: 4 bytes Espacio de direccionamiento: 32 bits Páginas de 4 Kbytes Tamaño de la TDP: 4 Mbytes

Solución Tabla de páginas paginada Se emplea un directorio de páginas

Page 34: Gestión de memoria Rina Arauz. Gestión de memoria 2 Definición n La memoria es una amplia tabla de datos, cada uno de los cuales con su propia dirección.

Gestión de memoria 34

Paginación de la TDP

P D

Tabla 1Tabla 2Tabla 3Tabla 4Tabla 5Tabla 6Tabla 7Tabla 8

Dir

Memoria

Directorio de páginas

D

RPBTP

RLTP

M D

Dir

Tabla de páginas

Dirección virtual

Marco 1Marco 2Marco 3Marco 4Marco 5Marco 6Marco 7Marco 8

P

Page 35: Gestión de memoria Rina Arauz. Gestión de memoria 2 Definición n La memoria es una amplia tabla de datos, cada uno de los cuales con su propia dirección.

Gestión de memoria 35

Es posible combinar los esquemas de paginación y segmentación

De este modo podemos obtener las ventajas de ambos a costa de complicar el HW

Combinaciones: Segmentación paginada Paginación segmentada (no se emplea en la

práctica) En la segmentación paginada, cada segmento se

divide en páginas En la paginación segmentada, cada página se

divide en segmentos

Page 36: Gestión de memoria Rina Arauz. Gestión de memoria 2 Definición n La memoria es una amplia tabla de datos, cada uno de los cuales con su propia dirección.

Gestión de memoria 36

Segmentación paginada (HW)

S

Memoria

Tabla de segmentos

RPBTS

RLTS

P D

Dirección virtual

S

Tabla de páginas+

M D

Base de la tablade páginas

Page 37: Gestión de memoria Rina Arauz. Gestión de memoria 2 Definición n La memoria es una amplia tabla de datos, cada uno de los cuales con su propia dirección.

Gestión de memoria 37

Memoria caché

Su empleo se justifica por la localidad de los programas. La idea de emplear memorias caché consiste en mantener en

ellas los datos o instrucciones que el procesador necesita en cada momento.

Si los datos o instrucciones se encuentran en la caché el acceso es muy rápido, si no es así, los datos se traen desde memoria principal en bloques.

Memoria cache

- L1 (Se encuentra dentro del núcleo)

- L2 (En el procesador)

- L3 (En placa base) • 1er. Nivel (del orden de 20 Kb). • 2do. Nivel (del orden de 512Kb a 2Mb).

• 3er. Nivel (del orden de 8Mb).

Page 38: Gestión de memoria Rina Arauz. Gestión de memoria 2 Definición n La memoria es una amplia tabla de datos, cada uno de los cuales con su propia dirección.

Gestión de memoria 38

Memoria cache

A los bloques de transferencia entre memoria principal y memoria caché se les denomina líneas o vías de caché.

Parámetros de un sistema con memoria cache: Política de ubicación

Las políticas de ubicación establecen la correspondencia entre los bloques de la MP y de la MCa

Política de extracción Determinan cuándo y qué información se envía de MP a MCa

Política de reemplazo Determinan cuándo y qué bloque se sustituye de las MCa

con política de ubicación asociativa Política de actualización

Determinan el instante en que se actualiza la información en MP cuando se produce una escritura en MCa Problema de coherencia de la MCa

Page 39: Gestión de memoria Rina Arauz. Gestión de memoria 2 Definición n La memoria es una amplia tabla de datos, cada uno de los cuales con su propia dirección.

Gestión de memoria 39

Políticas de ubicación Las políticas de ubicación establecen la correspondencia entre

los bloques de la MP y de la MCa Las políticas de ubicación más importantes son:

Directa Asociativa Asociativa por conjuntos

Ejemplo de aplicación: Establecer la correspondencia entre MP y MCa en un sistema con:

Dirección física: 20 bits Tamaño de bloque: 8 bytes = 23 bytes/bloque Capacidad MCa: 1Kbytes= 210 bytes Nº bloques MCa =

Capacidad MP: 1 Mbyte = 220 bytes Nº bloques de MP = 1282

2

2 73

10

072.13122

2 173

20

Page 40: Gestión de memoria Rina Arauz. Gestión de memoria 2 Definición n La memoria es una amplia tabla de datos, cada uno de los cuales con su propia dirección.

Gestión de memoria 40

Políticas de ubicación

Correspondencia directa (I):

Memoria principal

Bloque 0Bloque 0

Bloque 1Bloque 1

.

.

.

.

.

.

Bloque 127Bloque 127

Bloque128Bloque128

Bloque 129Bloque 129

.

.

.

.

.

.

Bloque 131.071Bloque 131.071

Memoria cachéMemoria caché

Etiqueta (B0)Etiqueta (B0)

Etiqueta (B1)Etiqueta (B1)

Etiqueta (B2)Etiqueta (B2)

.

.

.

.

.

.

Etiqueta (B127)Etiqueta (B127)

Bloque 0Bloque 0

Bloque 1Bloque 1

Bloque 2Bloque 2

.

.

.

.

.

.

Bloque 127Bloque 127

Acierto

FalloComparadorComparador Palabra enviada

al procesador

Dirección de MP

EtiquetaEtiqueta Bloque de MCaBloque de MCa PalabraPalabra10 bits 7 bits 3 bits

Page 41: Gestión de memoria Rina Arauz. Gestión de memoria 2 Definición n La memoria es una amplia tabla de datos, cada uno de los cuales con su propia dirección.

Gestión de memoria 41

Correspondencia directa (II): Consiste en hacer corresponder a todo

bloque i de MP el bloque i mod k de MCa, donde k es el número total de bloques de la MCa

Una dirección en MCa consta de: Etiqueta Nº de bloque de MCa Posición en el bloque (palabra)

Solución: 23 bytes/bloque 3 bits para la posición

dentro del bloque 27 bloques de MCa 7 bits para cada

bloque 10 bits para

cada etiqueta

107

17

2MCa bloques 2

MP bloques 2

Políticas de ubicación

Ventajas: La lectura permite el acceso

simultáneo: al directorio y a la palabra dentro del

bloque de MCa Algoritmo de reemplazo trivial

Inconveniente: Incremento de la tasa de fallos

de la MCa, si dos bloques de MP, que corresponden a un mismo bloque de MCa, se utilizan de forma alternativa

Page 42: Gestión de memoria Rina Arauz. Gestión de memoria 2 Definición n La memoria es una amplia tabla de datos, cada uno de los cuales con su propia dirección.

Gestión de memoria 42

Memoria cachePolíticas de ubicación

Correspondencia asociativa (I):

Memoria principal

Bloque 0Bloque 0

Bloque 1Bloque 1

.

.

.

.

.

.

Bloque 127Bloque 127

Bloque128Bloque128

Bloque 129Bloque 129

.

.

.

.

.

.

Bloque 131.071Bloque 131.071

Memoria cachéMemoria caché

Bloque 0Bloque 0

Bloque 1Bloque 1

Bloque 2Bloque 2

.

.

.

.

.

.

Bloque 127Bloque 127

Acierto

Etiqueta (B0)Etiqueta (B0)

Etiqueta (B1)Etiqueta (B1)

Etiqueta (B2)Etiqueta (B2)

.

.

.

.

.

.

Etiqueta (B127)Etiqueta (B127)

Fallo

==

==

==

.

.

.

.

.

.

==

Dirección de MP

EtiquetaEtiqueta PalabraPalabra17 bits 3 bits

Palabra enviadaal procesador

Page 43: Gestión de memoria Rina Arauz. Gestión de memoria 2 Definición n La memoria es una amplia tabla de datos, cada uno de los cuales con su propia dirección.

Gestión de memoria 43

Memoria cache Políticas de ubicación

Correspondencia asociativa (II):

Cualquier bloque de MP puede ubicarse en cualquiera de los bloques de la cache

Una dirección en MCa consta de: Etiqueta Posición en el bloque (palabra)

Solución: 23 bytes/bloque 3 bits para la

posición dentro del bloque 217 bloques de MP 17 bits

para cada etiqueta

Ventaja: Flexibilidad (permite la

implantación de gran variedad de algoritmos de reemplazo)

Inconveniente: Coste de las

comparaciones

Page 44: Gestión de memoria Rina Arauz. Gestión de memoria 2 Definición n La memoria es una amplia tabla de datos, cada uno de los cuales con su propia dirección.

Gestión de memoria 44

Correspondencia asociativa por conjuntos (I):

Memoria cache Políticas de ubicación

Memoria principal

Fallo

AciertoComparador 0Comparador 0

Comparador 1Comparador 1

Memoria cachéMemoria caché

Etiqueta (B127)Etiqueta (B127)

Etiqueta (B0) Etiqueta (B0)

Etiqueta (B1) Etiqueta (B1)

Etiqueta (B2) Etiqueta (B2)

Etiqueta (B3) Etiqueta (B3)

.

.

.

.

.

.

Etiqueta (B126) Etiqueta (B126)

Etiqueta (B127) Etiqueta (B127)

C0

C1

C63

Bloque 0 Bloque 0

Bloque 1 Bloque 1

Bloque 2 Bloque 2

Bloque 3 Bloque 3

.

.

.

.

.

.

Bloque 126 Bloque 126

Bloque 127 Bloque 127

C0

C1

C63

Palabra enviadaal procesador

Bloque 0Bloque 0

Bloque 1Bloque 1

. . .. . .

Bloque 63Bloque 63

Bloque 64Bloque 64

Bloque 65Bloque 65

. . .. . .

Bloque 127Bloque 127

Bloque128Bloque128

Bloque 129Bloque 129

. . .. . .

Bloque 131.071Bloque 131.071

Dirección de MP

EtiquetaEtiqueta Conjunto de MCaConjunto de MCa PalabraPalabra11 bits 6 bits 3 bits

Page 45: Gestión de memoria Rina Arauz. Gestión de memoria 2 Definición n La memoria es una amplia tabla de datos, cada uno de los cuales con su propia dirección.

Gestión de memoria 45

Políticas de ubicación

Consiste en dividir la MCa en C conjuntos de B bloques cada uno

Se aplica: Correspondencia directa a nivel de

conjunto Correspondencia asociativa a nivel

de bloque Un bloque i de MP puede ubicarse en

cualquier bloque del conjunto i mod C de MCa

Una dirección en MCa consta de: Etiqueta, Conjunto y Posición en el bloque

Correspondencia asociativa por conjuntos (II):

Solución (asignando 2 bloqs./cjto.): 23 bytes/bloque 3 bits para la

posición dentro del bloque 26 conjuntos en MCa 6 bits para

cada conjunto 11 bits para cada etiqueta El coste de la búsqueda depende

del número y longitud de las etiquetas que se tienen que comparar simultáneamente

Ventaja: Reduce el coste de la totalmente

asociativa proporcionando un rendimiento cercano a esta última

Page 46: Gestión de memoria Rina Arauz. Gestión de memoria 2 Definición n La memoria es una amplia tabla de datos, cada uno de los cuales con su propia dirección.

Gestión de memoria 46

Memoria caché

Coherencia: ¿qué ocurre si un dato de la caché se modifica? En tal caso se produce una inconsistencia entre los

contenidos memoria caché y memoria principal Estrategias de actualización:

Escritura aplazada Escritura Inmediata

Normalmente se emplean cachés separadas para instrucciones y para datos

Page 47: Gestión de memoria Rina Arauz. Gestión de memoria 2 Definición n La memoria es una amplia tabla de datos, cada uno de los cuales con su propia dirección.

Gestión de memoria 47

Ejercicio

Sea una computadora que dispone de una memoria principal entrelazada y memorias caché separadas con las siguientes características:

        El tamaño de un bloque de memoria es de 32 bytes         Memoria principal:         Capacidad: 256 Mbytes         Memoria caché:         Asociativa por conjuntos, estructurada según:         Memoria caché de instrucciones: 8 Kbytes con 4

bloques por conjunto.      Memoria caché de datos: 8 Kbytes con 2 bloques por

conjunto.