Gestión de memoria(AC 06-07) - Universidad de...

34
1 1 Teoría: Daniel Cascado Caballero ([email protected]) Despacho: F070 Lourdes Miró Amarante ([email protected]) Despacho: F061 Horario de tutorías: Martes: 11:00h a 13:00h; 17:30 a 19:30 Miércoles: 10:30h a 12:30h Profesores y Horarios de Tutorías Temas 3 y 4 2 Bibliografía Básica Temas 3 y 4 Estructura y Diseño de Computadores, J. L. Hennessy y D. A. Patterson. Ed. Reverte, 2000. Organización y arquitectura de computadores, W. Stalling. Prentice-Hall, 2000.

Transcript of Gestión de memoria(AC 06-07) - Universidad de...

Page 1: Gestión de memoria(AC 06-07) - Universidad de Sevillaicaro.eii.us.es/descargas/TranspGM-AC(06-07).pdfSistema de interrupciones Sistema de memoria cache Sistema de memoria virtual

1

1

Teoría:Daniel Cascado Caballero ([email protected])Despacho: F070

Lourdes Miró Amarante ([email protected])Despacho: F061Horario de tutorías:

Martes: 11:00h a 13:00h; 17:30 a 19:30Miércoles: 10:30h a 12:30h

Profesores y Horarios de TutoríasTemas 3 y 4

2

Bibliografía BásicaTemas 3 y 4

Estructura y Diseño de Computadores, J. L. Hennessy y D. A. Patterson. Ed. Reverte, 2000.Organización y arquitectura de computadores, W. Stalling. Prentice-Hall, 2000.

Page 2: Gestión de memoria(AC 06-07) - Universidad de Sevillaicaro.eii.us.es/descargas/TranspGM-AC(06-07).pdfSistema de interrupciones Sistema de memoria cache Sistema de memoria virtual

2

3

Estructura Básica de un ComputadorMáquina Von Neumann

CPUCPU

MemoriaMemoria E/SE/S

InterconexionesInterconexiones

PeriféricosPeriféricos

4

Ampliación Máquina Von Neumann

Programa principal

I1

I2

.

.

Ii

Ii+1

.

.

InRutina de servicio

i1i2..

im

Interrupción

CPU

Memoria cache

(Mc)

Memoria principal

(Mp)

palabras

bloques

Memoria principal

(Mp)

Memoria secundaria

(Ms)

páginas

Sistema de memoria cacheSistema de interrupciones Sistema de memoria virtual

TEMA 3

TEMA 4

Page 3: Gestión de memoria(AC 06-07) - Universidad de Sevillaicaro.eii.us.es/descargas/TranspGM-AC(06-07).pdfSistema de interrupciones Sistema de memoria cache Sistema de memoria virtual

3

5

Tema 3: GESTIÓN DE MEMORIA

ÍNDICE

1. Jerarquía de memoria2. Memorias caché

1. Introducción2. Organización física3. Organización lógica4. Optimización

3. Memoria virtual

6

Necesidad de grandes cantidades de memoria rápida con tiempos de acceso y transferencia pequeños.

Diferentes tipos de memorias según los criterios de tamaño, velocidad y coste (tecnología).

Idealmente sería deseable una capacidad indefinidamente grande de memoria tal que cualquier particular…palabra estuviese inmediatamente disponible… Estamos… forzados a reconocer la posibilidad de construir una jerarquía de memoriasjerarquía de memorias, cada una de las cuales tenga mayor capacidad que la precedente pero que sea menos rápidamente accesible.

A.W. Burks, H.H. Goldstine y J. Von Neumann,Discusión preliminar del diseño lógico de un instrumento de cálculo electrónico

(1946)

Jerarquía de memoriaIntroducción

1. Jerarquía de memoria

Page 4: Gestión de memoria(AC 06-07) - Universidad de Sevillaicaro.eii.us.es/descargas/TranspGM-AC(06-07).pdfSistema de interrupciones Sistema de memoria cache Sistema de memoria virtual

4

7

Definición

Una jerarquía de memoria está organizada en varios niveles, cada uno más pequeño, más rápido y más caro por byte que el siguiente.

1. Jerarquía de memoria

Registrosprocesador

Caché

Memoria principal

Caché de disco

Disco magnético

CD-DVD

Coste/bit (+)Capacidad (-)Velocidad (+)Frecuenciade accesos (+)

8

PropiedadesInclusión: Cualquier información almacenada en un nivel de memoria, debe encontrarse también en los niveles inferiores.

Coherencia: Las copias de la misma información existentes en los distintos niveles deben ser consistentes.

Localidad de referencia: Los programas favorecen una parte de suespacio de direcciones en cualquier instante de tiempo.

Localidad temporal: Si se referencia un elemento, éste tenderá a ser referenciado pronto (p.e. bucles)Localidad espacial: Si se referencia un elemento, los elementos cercanos a él tenderán a ser referenciado pronto (p.e. tablas).

1. Jerarquía de memoria

nivel i+1

nivel i

Page 5: Gestión de memoria(AC 06-07) - Universidad de Sevillaicaro.eii.us.es/descargas/TranspGM-AC(06-07).pdfSistema de interrupciones Sistema de memoria cache Sistema de memoria virtual

5

9

Funcionamiento

El procesador sólo accede al nivel más alto (más rápido y de menor tamaño).

Si el procesador pide un dato y éste se encuentra en el nivel superior (acierto).

Si el dato no se encuentra en este nivel (fallo) se trae del nivel inferior al superior.

Las transferencias de datos entre niveles se hace con bloques de varios bytes.

Nivel superior

Nivel inferior

Bloques

1. Jerarquía de memoria

10

Conceptos básicos

Nivel (level).Bloque (block): mínima unidad de información que puede estar presente o no en la jerarquía de dos niveles (tamaño fijo o variable).Acierto/Fallo (hit/miss).Frecuencia de aciertos/fallos (hit rate, Hr /miss rate, Mr ).Tiempo de acierto (hit time).Penalización por fallo (miss penalty).

Tiempo de acceso (access time): tiempo para acceder a la primera palabra de un bloque en un fallo.Tiempo de transferencia (transfer time): tiempo adicional para transferir las restantes palabras del bloque.

1. Jerarquía de memoria

Page 6: Gestión de memoria(AC 06-07) - Universidad de Sevillaicaro.eii.us.es/descargas/TranspGM-AC(06-07).pdfSistema de interrupciones Sistema de memoria cache Sistema de memoria virtual

6

11

Tiempo medio de acceso a memoriaTiempo de acceso medio a memoria = Tiempo de acierto +

+ Frecuencia de fallos*Penalización por fallo

Por el principio de localidad, Mr suele ser <= 10%El Mr se obtiene mediante TRAZAS de accesos a memoria.Habrá un Mr por cada nivel de la jerarquía.Influencia de parámetros

El tamaño de bloque influye sobre:Penalización por fallo

Tiempo de acceso medio a memoriaFrecuencia de fallos

Evaluación del rendimiento

1. Jerarquía de memoria

12

Evaluación del rendimientoRelación entre parámetros

Tamaño del bloque

Penalizaciónpor fallo

Tiempo de acceso

Tiempo de transferencia

Tamaño del bloque

Frecuenciapor fallo

Tamaño del bloque

Tiempo mediode acceso

1. Jerarquía de memoria

Page 7: Gestión de memoria(AC 06-07) - Universidad de Sevillaicaro.eii.us.es/descargas/TranspGM-AC(06-07).pdfSistema de interrupciones Sistema de memoria cache Sistema de memoria virtual

7

13

Memoria cachéIntroducción

Representa el nivel de jerarquía de memoria entre la CPU y la memoria principal.

Se le pueden aplicar todos los conceptos vistos para la jerarquía de memoria (propiedades, funcionamiento, conceptos básicos, rendimiento).

2. Memoria cache

CPU

Memoria principal

(Mp)

palabras

bloques

Controlador de caché

Controlador de caché

Memoria caché

Memoria caché

14

Mp (memoria principal):formada por 2n palabras direccionables.“dividida” en nB bloques de tamaño fijo 2K (palabras por bloque).Campos de una dirección física:

Mc (memoria cache):formada por nL líneas de 2K palabras(nL << nB).

Línea de caché (contenido):Información de bloqueDatos adicionales

Bit de línea válida.Info. identificación de bloqueOtros...

Estructura Memoria Caché/Memoria Principal

2. Memoria cache

B P

(n-k bits)

Bloque

(k bits)

Palabra

DF:

.

.

.

.

.

.

Mp Mc

Direcciónde

memoria

0

1

2

n

dirección

2n -1

Bloque 0

Bloque 1

Bloque 2n/2k -1= nB -1

Línea 0

Línea nL -1

Page 8: Gestión de memoria(AC 06-07) - Universidad de Sevillaicaro.eii.us.es/descargas/TranspGM-AC(06-07).pdfSistema de interrupciones Sistema de memoria cache Sistema de memoria virtual

8

15

Funcionamiento

2. Memoria cache

16

Arquitecturas

Organización físicaSegún su ubicación dentro o fuera del chip procesador: internas o externas.Según su ubicación con respecto al resto de dispositivos (configuración).

Organización lógicaSegún el tipo de información que contienen: unificadas o separadas.Según su estructura interna y funcionamiento: ubicación, identificación, sustitución y escritura

2. Memoria cache

Page 9: Gestión de memoria(AC 06-07) - Universidad de Sevillaicaro.eii.us.es/descargas/TranspGM-AC(06-07).pdfSistema de interrupciones Sistema de memoria cache Sistema de memoria virtual

9

17

Organización física

Según su ubicaciónCaches externas: No se encuentran en el interior del chipdel procesador (cache-off-chip). Caches internas: Se encuentran en el propio chip del procesador (cache-on-chip).

Según la configuraciónConfiguración en serie (Look-Trough Architecutre).Configuración en paralelo (Look-Aside Architecture).

2. Memoria cache2. Memoria cache. Organización Física

18

Configuración en serie

Ventajas: Si el dato se encuentra en la caché no hay acceso a memoria y no se ocupa el bus.Inconvenientes: La caché debe tener 2 interfaces de buses diferentes y el tiempo de acceso, en caso de fallo, es mayor (igual al tiempo de acceso a caché más el tiempo de acceso a memoria principal).Tacc = Hr*Tcache +(1-Hr)*(Tcache+Tmemp)

Cache

CPU

DMA I/O Memoria

Bus

Bus

Tc Tmp

t

2. Memoria cache. Organización Física según la CONFIGURACIÓN

Page 10: Gestión de memoria(AC 06-07) - Universidad de Sevillaicaro.eii.us.es/descargas/TranspGM-AC(06-07).pdfSistema de interrupciones Sistema de memoria cache Sistema de memoria virtual

10

19

Configuración en paralelo

Ventajas: Sólo hay una interfaz con el bus y el tiempo de fallo es menor (igual al tiempo de acceso a memoria principal).Inconvenientes: El bus se ocupa en cualquier acceso a memoria, evitando que otros dispositivos puedan acceder a él.Tacc=Tcache*Hr + (1-Hr)*Tmemp

Cache DMA I/O Memoria

CPU

Bus

Tc

Tmp

t

2. Memoria cache. Organización Física según la CONFIGURACIÓN

20

Organización lógica

Según el tipo de información que contienen: unificadas o separadas.

Separadas: Tacc= %instrucciones * Tacc_inst + %datos*Tacc_datos

Según su estructura interna y funcionamiento (Políticas):

Ubicación (función de correspondencia).Localización.Sustitución.Escritura.

2. Memoria cache. Organización Lógica

Page 11: Gestión de memoria(AC 06-07) - Universidad de Sevillaicaro.eii.us.es/descargas/TranspGM-AC(06-07).pdfSistema de interrupciones Sistema de memoria cache Sistema de memoria virtual

11

21

Caches unificadas vs. Caches separadas

Caches unificadas o mixtas (unified or mixed): Contienen tanto datos como instruccionesCaches separadas (separated): Existe una caché para datos y otra para instrucciones

VentajasNo hay competencia entre acceso a datos y acceso a instrucciones.Duplicación del ancho de bus (puertos separados)Parámetros de diseño (capacidad, tamaños de bloque, asociatividad, etc.) diferentes para instrucciones y datos (optimización)

InconvenientesEn general la tasa de fallos global es algo mayor (próxima transparencia):

la caches de instrucciones tienen menor frecuencia de fallos que las de datos (localidad)la separación de instrucciones y datos elimina fallos debidos a conflictos pero al dividir también se fija el espacio de caché dedicado a cada tipo

No se equilibra la carga de trabajo de forma automática2. Memoria cache. Organización Lógica. Cache unificada vs cache separada.

22

Ejemplo caches separadas: Pentium II

Depósito de instrucciones. Buffer de reordenación.

Unidad de ejecución y

envío

Unidad de retirada

Caché de datos L1. (8-16K)

Interfaz con el bus

Caché L2. (256-1M)

Caché de instrucciones L1.

(8-16K)

Unidad de lectura y decodificación de

instrucciones.

Cada caché tiene asociada al menos una unidad de control que controla las peticiones de datos.

Bus del sistema

2. Memoria cache. Organización Lógica. Cache unificada vs cache separada.

Page 12: Gestión de memoria(AC 06-07) - Universidad de Sevillaicaro.eii.us.es/descargas/TranspGM-AC(06-07).pdfSistema de interrupciones Sistema de memoria cache Sistema de memoria virtual

12

23

Ejemplo: Frecuencia de fallos (53% de referencias son instrucciones)En caché unificada de 32KB: 4.3%En caches separadas de 16KB: 53%*3.6%+47%*5.3%=4.4%

Comparativa (I)Comparativa de frecuencias de fallos (VAX, 16 bytes/bloque, LRU, 2 vías)

2. Memoria cache. Organización Lógica. Cache unificada vs cache separada.

24

Comparativa (II)

Ejemplo: (75% de accesos a instrucción)a) Caches separadas de 16KB. Penalización: 50 ciclos, Tiempo

de acierto para instrucción: 1 ciclo, para datos: 2 ciclos (un solo puerto)

b) Cache unificada de 32KB. Penalización: 50 ciclos, Tiempo de acierto: 1 ciclo

Solución:a) Tacceso medio =75%*(1+3.6%*50)+25%*(2+5.3*50)= 3.26 ciclosb) Tacceso medio=1+4.3%*50 = 3.0 ciclos=3.15 ciclos

2. Memoria cache. Organización Lógica. Cache unificada vs cache separada.

Page 13: Gestión de memoria(AC 06-07) - Universidad de Sevillaicaro.eii.us.es/descargas/TranspGM-AC(06-07).pdfSistema de interrupciones Sistema de memoria cache Sistema de memoria virtual

13

25

Políticas de Ubicación y Localización.

Ubicación: Dado un bloque de Mp, con una dirección Db, que se quiere subir a caché, ¿En qué línea hay que ubicarlo?

Función de correspondencia:Línea = f(Db)

Localización: ¿En qué líneas de caché tengo que buscar para saber si un bloque de Mpcon dirección Db está en ella?

Se utiliza la función de correspondencia.

2. Memoria cache. Organización Lógica. Políticas de UBICACIÓN y LOCALIZACIÓN

26

Ubicación de un bloque.

¿Qué hay que hacer cuando se quiere subir un bloque a caché? Se averiguan las líneas en las que es posible ubicar mediante la función de correspondencia.Se selecciona una mediante la política de reemplazo (se verá más adelante).Si la línea está vacía, el bloque se guarda en ésta.Si no,se produce un conflicto, y habrá que bajar el antiguo bloque a memoria principal y subir el nuevo a la línea seleccionada.

2. Memoria cache. Organización Lógica. UBICACIÓN

Page 14: Gestión de memoria(AC 06-07) - Universidad de Sevillaicaro.eii.us.es/descargas/TranspGM-AC(06-07).pdfSistema de interrupciones Sistema de memoria cache Sistema de memoria virtual

14

27

Identificación de un bloque

Una vez que se sabe en qué líneas buscar un bloque con direcciónDb ¿Cómo se sabe si está realmente en caché? Se mira el bit de válido de la línea para saber si es válida.Se descompone la dirección Db al menos, en estos campos:

Etiqueta (tag): Desplazamiento de bloque (block offset): selecciona el dato deseado dentro del bloque.

Se extrae el campo etiqueta y se compara con el campo etiqueta de la línea.

Si la línea es válida y las etiquetas son iguales, el bloque está en caché.

2. Memoria cache. Organización Lógica. IDENTIFICACIÓN

28

Políticas de Ubicación y Localización.

2. Memoria cache. Organización Lógica. Políticas de UBICACIÓN y LOCALIZACIÓN

.

.

.

Mp

McB0B1B2B3B4B5B6B7

McB0B1B2B3B4B5B6B7

Mc

C0

C1

C2

C3

DIRECTA ASOCIATIVA ASOCIATIVA POR

CONJUNTOS

Page 15: Gestión de memoria(AC 06-07) - Universidad de Sevillaicaro.eii.us.es/descargas/TranspGM-AC(06-07).pdfSistema de interrupciones Sistema de memoria cache Sistema de memoria virtual

15

29

Memoria: 32 bloquesCaches: 8 bloquesTres tipos:

- Asociativas- Directa- Asociativa por conjuntos de 2 vías

Ejemplo de Ubicación de bloque

2. Memoria cache. Organización Lógica. Política UBICACIÓN

30

Memoria: 32 bloquesCaches: 8 bloquesTres tipos:

- Completamenteasociativas

- De correspondenciadirecta

- Asociativa por conjuntos de 2 vías

Ejemplo de localización e identificación de un bloque

2. Memoria cache. Organización Lógica. LOCALIZACIÓN

Page 16: Gestión de memoria(AC 06-07) - Universidad de Sevillaicaro.eii.us.es/descargas/TranspGM-AC(06-07).pdfSistema de interrupciones Sistema de memoria cache Sistema de memoria virtual

16

31

Líneas MCCache de Mapeado Directo

2. Memoria cache. Organización Lógica. Política UBICACIÓN

Memoria Principal (Mp):16MB direccionables por bytes(dirección de 24bits).

Memoria Cache (Mc):64KB.

Tamaño de bloque 16 Bytes:Nº Bloques en MP: nB = 1M (20 bits)Nº Líneas en MC: nM = 4K (12 bits)

B P

20 4

12 4

M PETQ

8

Interpretación de DF en correspondenciaDIRECTA:

M = B mod nM

32

Cache de Mapeado Directo

6 5 4 3 2 1 0 1 1 1 1 0 1 1

ETI INDICE W B

Etiqueta V Datos

1 1 ACADA...B3

CO

MPA

RA

DO

R

Selector

Y

Acierto (si)

Encontrado (si)

Dirección solicitada (de CPU)

Dato solicitado (AF)

DEC

OD

ER

•Ventajas:

•Baja complejidad hardware

•Rapidez en la identificación

•Inconvenientes:

•Alta tasa de fallos si varios bloquescompiten por la misma línea.

2. Memoria cache. Organización Lógica. IDENTIFICACIÓN

Dirección Dato 0000000 A1 0000001 A2 0000010 A3 0000011 A4 0000100 A5 0000101 A6 0000110 A7

Bloque 0

0000111 A8 0001000 A9 0001001 AA

Bloque 1 (y sigue)

0001010 AB

......

1111000 AC 1111001 AD 1111010 AE 1111011 AF 1111100 B0 1111101 B1 1111110 B2

Bloque 15

1111111 B3

Memoria principal

Page 17: Gestión de memoria(AC 06-07) - Universidad de Sevillaicaro.eii.us.es/descargas/TranspGM-AC(06-07).pdfSistema de interrupciones Sistema de memoria cache Sistema de memoria virtual

17

33

Líneas McCache Totalmente Asociativa

2. Memoria cache. Organización Lógica. Política UBICACIÓN

Memoria Principal (Mp):16MB direccionables por bytes(dirección de 24bits).

Memoria Cache (Mc):64KB.

Tamaño de bloque 16 Bytes:Nº Bloques en MP: nB = 1M (20 bits)Nº Líneas en MC: nM = 4K (12 bits)

Interpretación de DF en correspondenciaTOTALMENTE ASOCIATIVA:

B P

20 4

ETIQUETA P

20 4

Cada bloque B

puede ubicarse en

cualquier línea M.

34

Cache Totalmente Asociativa

6 5 4 3 2 1 0 1 1 1 1 0 1 1

ETI W B

Etiqueta V Datos

1111 1 ACADA...B3

CO

MPA

RA

DO

R

Selector

Y

Acierto (si)

Encontrado (si)

Dirección solicitada (de CPU)

Dato solicitado (AF)

•Ventajas:

•Baja tasa de fallos

•Inconvenientes:

•Alta complejidad hardware.

•Lentitud en la identificación.

2. Memoria cache. Organización Lógica. IDENTIFICACIÓN

Dirección Dato 0000000 A1 0000001 A2 0000010 A3 0000011 A4 0000100 A5 0000101 A6 0000110 A7

Bloque 0

0000111 A8 0001000 A9 0001001 AA

Bloque 1 (y sigue)

0001010 AB

......

1111000 AC 1111001 AD 1111010 AE 1111011 AF 1111100 B0 1111101 B1 1111110 B2

Bloque 15

1111111 B3

Memoria principal

Page 18: Gestión de memoria(AC 06-07) - Universidad de Sevillaicaro.eii.us.es/descargas/TranspGM-AC(06-07).pdfSistema de interrupciones Sistema de memoria cache Sistema de memoria virtual

18

35

LíneaCache Asociativa por Conjuntos

2. Memoria cache. Organización Lógica. Política UBICACIÓN

Memoria Principal (Mp):16MB direccionables por bytes (24bits).

Memoria Cache (Mc):64KB.

Tamaño de bloque 16 Bytes:Nº Bloques en MP: nB = 1M (20 bits)Nº Líneas en MC: nM = 4K (12 bits)

4 vías:Nº de Líneas por Conjunto: 4Nº de Conjuntos en Mc: nC = 1K (10 bits)

B P

20 4

10 4

C PETQ

10

Interpretación de DF en correspondenciaASOCIATIVA POR CONJUNTOS:

C = B mod nC

36

Cache Asociativa por Conjuntos

6 5 4 3 2 1 0 1 1 1 1 0 1 1 ETI CJTO W B

VIA 0 VIA 1

Eti V Datos Eti V Datos

11 1 ACADA...B3

Selector

Dirección solicitada (de CPU)

Dato solicitado (AF)

DEC

OD

ER

Y

=

Y Acierto

vía 0 (si) Acierto

vía 1(no)

=

2. Memoria cache. Organización Lógica. IDENTIFICACIÓN

Dirección Dato 0000000 A1 0000001 A2 0000010 A3 0000011 A4 0000100 A5 0000101 A6 0000110 A7

Bloque 0

0000111 A8 0001000 A9 0001001 AA

Bloque 1 (y sigue)

0001010 AB

......

1111000 AC 1111001 AD 1111010 AE 1111011 AF 1111100 B0 1111101 B1 1111110 B2

Bloque 15

1111111 B3

Memoria principal

Page 19: Gestión de memoria(AC 06-07) - Universidad de Sevillaicaro.eii.us.es/descargas/TranspGM-AC(06-07).pdfSistema de interrupciones Sistema de memoria cache Sistema de memoria virtual

19

37

• Procesador de 16 bits de datos y 24 de direcciones• Tamaño de la cache: 8KB• Tamaño de la línea: 8 bytes

1. Cache totalmente asociativa2. Cache asociativa por conjuntos de 4 vías3. Cache de mapeado directo

1

2

3

Byte:1bitPalabra: 2bits

Desplazamiento: 3bitsEtiqueta: 21bits

Byte:1bitPalabra: 2bits

Desplazamiento: 3bitsConjunto: 8bitsEtiqueta: 13bits

Byte:1bitPalabra: 2bits

Desplazamiento: 3bitsBloque: 10bitsEtiqueta: 11bits

Ejemplo (I)

2. Memoria cache. Organización Lógica. IDENTIFICACIÓN

38

- Cache asociativa porconjunto de 2 vías

- Capacidad de datos: 8KB- Tamaño de bloque: 8 bytes- Número de conjuntos: 512

Pasos de un acierto:1) División de la dirección2) Acceso a ambos bancos3) Comparación de etiquetas4) Multiplexación5) Envío a la CPU

Ejemplo (II)

2. Memoria cache. Organización Lógica. IDENTIFICACIÓN

Page 20: Gestión de memoria(AC 06-07) - Universidad de Sevillaicaro.eii.us.es/descargas/TranspGM-AC(06-07).pdfSistema de interrupciones Sistema de memoria cache Sistema de memoria virtual

20

39

Políticas de escrituraFrente acierto en la cache

Escritura directa (Write through): Escritura en Memoria cache (Mc) y Memoria principal (Mp).

Postescritura (Copy Back):La información se escribe sólo en el bloque de la Mc. Este bloque se denomina sucio o modificado.El bloque modificado de la Mc se escribirá en la Mp sólo cuando éste sea reemplazado. Para reducir la frecuencia de postescrituras en el reemplazo, se usa el bitde modificación o sucio (dirty bit), de manera que si el bloque está limpio no se escribe Mp.

2. Memoria cache. Organización Lógica. Política ESCRITURA

40

Políticas de escrituraVentajas e Inconvenientes

Escritura directa (Write through):Ventajas:

Fácil de implementar.Bajo coste hardware.La Mp tiene la copia más reciente de los datos (coherencia de cache, multiprocesadores y E/S).

Inconvenientes:Tráfico importante en Mp.Velocidad de la escritura es la velocidad de escritura en Mp (Solución: Buffer de escritura).

Postescritura (Copy Back):Ventajas:

Las escrituras se realizan a la velocidad de la memoria caché.Múltiples escrituras en un bloque requieren sólo una escritura en Mp.Disminuye tráfico entre Mc y Mp.

Inconvenientes:Inconsistencia Temporal entre Mc y Mp.Necesidad de bit adicional, bit dirty.Implementación más compleja.

2. Memoria cache. Organización Lógica. Política ESCRITURA

Page 21: Gestión de memoria(AC 06-07) - Universidad de Sevillaicaro.eii.us.es/descargas/TranspGM-AC(06-07).pdfSistema de interrupciones Sistema de memoria cache Sistema de memoria virtual

21

41

Políticas de escrituraFrente fallo en la cache

Ubicación en escritura (Write allocate): El bloque se carga en Mc y a continuación se escribe sobre él (similar a acierto en escritura).Apropiado para Copy Back (CB-WA).

No ubicación en escritura (No write allocate):El bloque se modifica en Mp y no se carga en Mc.Apropiado para Write Through (WT-NWA).

2. Memoria cache. Organización Lógica. Política ESCRITURA

42

Políticas de reemplazoEspacio de Ubicación

Espacio de Ubicación ES el conjunto de posibles bloques de Mc que pueden ser reemplazadas por un nuevo bloque.

Depende de la función de correspondencia:Mapeado directo: Sólo hay una opción. Totalmente asociativa: Cualquier bloque que reside en la cache.Asociativa por conjuntos: Cualquier bloque que reside en el conjunto que tiene asignado el nuevo bloque.

2. Memoria cache. Organización Lógica. Política SUSTITUCIÓN

Page 22: Gestión de memoria(AC 06-07) - Universidad de Sevillaicaro.eii.us.es/descargas/TranspGM-AC(06-07).pdfSistema de interrupciones Sistema de memoria cache Sistema de memoria virtual

22

43

Políticas de reemplazo

Diferentes estrategias:Aleatoria (Random): Se elige un bloque al azar.FIFO (First Input First Out): Se sustituye el bloque que más tiempo ha estado en la cache.LRU (Least Recently Used): Se sustituye el bloque que más tiempo ha estado en la cache sin ser referenciado.LFU (Least Frecuently Used): Se sustituye el bloque que menos referencias ha tenido.

Se tienen en cuenta criterios de coste y eficienciaLos esquemas más utilizados son el aleatorio y el LRU

2. Memoria cache. Organización Lógica. Política SUSTITUCIÓN

44

EJEMPLO

1

3

3

2

3

0

3

0

0

1

0

2

0

3

0 0

3

0

1

2

0

Bloque LRU

Dirección

Ejemplo de política LRU (cache de 4 bloques)

Comparativa de frecuencias de fallos (VAX, 16bytes/bloque)

2. Memoria cache. Organización Lógica. Política SUSTITUCIÓN

Page 23: Gestión de memoria(AC 06-07) - Universidad de Sevillaicaro.eii.us.es/descargas/TranspGM-AC(06-07).pdfSistema de interrupciones Sistema de memoria cache Sistema de memoria virtual

23

45

OptimizaciónCómo mejorar el rendimiento de las caches

El objetivo es reducir el tiempo medio de acceso a memoria:

Tacceso_medio = Tacierto + ffallos*Penalización_fallo

Se puede actuar sobre 3 términos:1. Reducir el tiempo de acceso en caso de acierto (hit time) 2. Reducir la frecuencia de fallos (miss rate).3. Reducir las penalizaciones por fallo (miss penalty).

2. Memoria cache. Optimización

46

Reducir la frecuencia de fallosTipos de fallos

Forzosos (Compulsory): En el primer acceso a un bloque, éste no se encuentra en la caché.

Capacidad (Capacity): La caché no puede contener todos los bloques necesarios durante la ejecución de un programa.

Conflicto (Conflict):Diferentes bloques deben ir necesariamente al mismo conjunto o línea, cuando la estrategia es asociativa por conjuntos o de correspondencia directa (fallos de colisión).

2. Memoria cache. Optimización. Reducción de fallos

Page 24: Gestión de memoria(AC 06-07) - Universidad de Sevillaicaro.eii.us.es/descargas/TranspGM-AC(06-07).pdfSistema de interrupciones Sistema de memoria cache Sistema de memoria virtual

24

47

Tipos de fallos

2. Memoria cache. Optimización. Reducción de fallos

Frecuencia total de fallospara cada tamaño de cache:

1. Fallo forzoso: Independiente del tamaño de cache.

2. Fallo de capacidad: Decrece al aumentartamaño de la cache.

3. Fallo de conflicto: Decrece al aumentar la asociatividad.

48

Tipos de fallos

2. Memoria cache. Optimización. Reducción de fallos

Page 25: Gestión de memoria(AC 06-07) - Universidad de Sevillaicaro.eii.us.es/descargas/TranspGM-AC(06-07).pdfSistema de interrupciones Sistema de memoria cache Sistema de memoria virtual

25

49

Reducir la frecuencia de fallosTécnicas

Aumento del tamaño del bloque.

Aumento de la asociatividad.

2. Memoria cache. Optimización. Reducción de fallos

50

Incremento del tamaño de bloque

Ventaja: Se reducen los fallos forzosos (principio de localidad espacial).

Inconvenientes: Aumentan los fallos por conflicto al reducirse el número de bloques de la caché.La penalización por fallo aumenta al incrementarse el tiempo de transferencia del bloque:

Tamaño del bloque

Penalizaciónpor fallo

Tiempo de acceso

Tiempo de transferencia

Tamaño del bloque

Frecuenciapor fallo

2. Memoria cache. Optimización. Reducción de fallos

Page 26: Gestión de memoria(AC 06-07) - Universidad de Sevillaicaro.eii.us.es/descargas/TranspGM-AC(06-07).pdfSistema de interrupciones Sistema de memoria cache Sistema de memoria virtual

26

51

Conflicto

forzosos

Capacidad

Incremento del tamaño de bloque

2. Memoria cache. Optimización. Reducción de fallos

52

Ejemplo incremento del tamaño de bloque

Ejemplo:Tiempo de búsqueda = 40CLKTasa de transferencia= 8bytes/CLKTiempo de acierto= 1CLKa) Cache de 1Kb con línea de 16bytesb) Cache de 256Kb con línea de 256bytesSolución:a) Tiempo de acceso medio a memoria = 1+15.05%*(40+2)=7.321 ciclosb) Tiempo de acceso medio a memoria = 1+0.49%*(40+32)=1.353 ciclos

2. Memoria cache. Optimización. Reducción de fallos

Page 27: Gestión de memoria(AC 06-07) - Universidad de Sevillaicaro.eii.us.es/descargas/TranspGM-AC(06-07).pdfSistema de interrupciones Sistema de memoria cache Sistema de memoria virtual

27

53

Incremento de la asociatividad

Ventaja: Se reducen los fallos por conflicto.

Inconveniente: Aumenta el tiempo de acceso medio al incrementarse el tiempo de acierto. También aumenta el coste debido a los comparadores.

Tiempo medio de acceso a memoria (ciclos)

Cache de mapeado directo (1KB):tamm= 1+(0.133*50)=7.65 ciclos

Cache asociativa por conjuntos de 8 vías (128KB):tamm= 1+(0.0088*50)=1.44 ciclos

2. Memoria cache. Optimización. Reducción de fallos

54

Memoria virtualObjetivos

Permitir a los programas usar más memoria de la disponible físicamente. Se gestiona automáticamente los dos niveles de la jerarquía de memoria representada por la memoria principal y la secundaria, liberando al programador de esta tarea (origen histórico)... se ha inventado un sistema para hacer que la combinación de tambores de núcleos magnéticos parezca al programador como un simple nivel de almacenamiento, realizando automáticamente las transferencias precisas

Kilburn y cols. [1962]

Compartir una misma memoria física entre diferentes procesos con su propio espacio de direcciones (sistemas multitarea). Sería muy costoso dedicar una memoria de tamaño igual al espacio total de direcciones a cada proceso. Se requiere un esquema de protección

3. Memoria virtual

Page 28: Gestión de memoria(AC 06-07) - Universidad de Sevillaicaro.eii.us.es/descargas/TranspGM-AC(06-07).pdfSistema de interrupciones Sistema de memoria cache Sistema de memoria virtual

28

55

Definiciones (I)

D

C

B

A

A

B

A’

C

D

Memoria principal

Disco o Memoria Secundaria

Espacio virtual delproceso A.

12K

8K

4K

0Direcciones virtuales Direcciones físicas

0

4K

12K

24K

28K

20K

16K

8K

Traducción de direcciones

Página

3. Memoria virtual

A’

Espacio virtual delproceso B.

12K

8K

4K

0

56

Definiciones (II)

Página (page):en los términos definidos para la jerarquía de memoria es un bloqueFallo de página (page fault) o de dirección (address fault): cuando la página solicitada está en disco (y ha de subirse a memoria).Direcciones virtuales: son las direcciones que genera la CPUDirecciones físicas: son las direcciones que atacan a la memoria principalCorrespondencia de memoria (memory mapping) o traducción de direcciones (address translation): el proceso (software/hardware) para traducir las direcciones virtuales a direcciones físicasNiveles de la jerarquía controlados por la memoria virtual: Memoria RAM y disco duroMarco: sitio donde se ubica una página en disco o en MP.

3. Memoria virtual

Page 29: Gestión de memoria(AC 06-07) - Universidad de Sevillaicaro.eii.us.es/descargas/TranspGM-AC(06-07).pdfSistema de interrupciones Sistema de memoria cache Sistema de memoria virtual

29

57

Memoria virtualVisión general.

Cada proceso tiene un espacio de direcciones propio, (espacio virtual) mayor incluso que la MP.

El espacio virtual se divide en páginas .El procesador genera direcciones virtuales.

Número de página virtual.Desplazamiento.

Las páginas pueden estar en MP o en disco. Los lugares donde se meten las páginas se llaman marcos.En MS existe un fichero especial en el que se encuentran los marcos de MS. Es gestionado por el S.O. Las direcciones virtuales son traducidas en direcciones físicas para su acceso a MP.

La tabla de páginas (una para cada proceso) relaciona las direcciones virtuales con las físicas (marcos).Existe una tabla de páginas por proceso activo en el sistema.

#pag_física = TablaPaginas(#pagina virtual)

3. Memoria virtual

58

Tabla de Páginas

¿Cómo se sabe si una página está en memoria principal?La dirección virtual se descompone en dos campos: número de página virtual y desplazamiento de páginaLa dirección física se obtiene concatenando simplemente la dirección física de la página con el desplazamiento de páginaSe utiliza una estructura de datos (tabla de páginas) que contiene la dirección física de la página y es indexada por la dirección virtualLa tabla de páginas reside en memoria principal.

3. Memoria virtual

Page 30: Gestión de memoria(AC 06-07) - Universidad de Sevillaicaro.eii.us.es/descargas/TranspGM-AC(06-07).pdfSistema de interrupciones Sistema de memoria cache Sistema de memoria virtual

30

59

Tabla de páginas Correspondencia entre dirección virtual y física

Pag. V (20bits) V D R W LRU Marco (18 bits)

0 1 1 0 1 1 --- 46544 ...

1048575

Número de página virtual (20) Desplazamiento (12)

1 120

Marco (18) Desplazamiento (12)

46544 120

Registro de la tabla de páginas

3. Memoria virtual

60

Funcionamiento.

Trat

amie

nto

del f

allo

de

pági

na (S

. O.)

Dirección virtual

Dir. física (desde TP)

Página en MP?

MP llena?

Bajar página a MS

Subir página a MP y actualizar TP.

no

no

si

si

Dato en caché?

Bajar subir bloque a Caché

Dato (desde caché)

si

no

3. Memoria virtual

Page 31: Gestión de memoria(AC 06-07) - Universidad de Sevillaicaro.eii.us.es/descargas/TranspGM-AC(06-07).pdfSistema de interrupciones Sistema de memoria cache Sistema de memoria virtual

31

61

Ciclo de vida de un proceso en memoria virtual.

Cuando un proceso se inicia, se hace sitio en MS para todas sus páginas, y se le crea su propia tabla de páginas.Cuando una página se quiere usar y no está en MP se produce un fallo de página, (paginación bajo demanda) y hace que la página pase a MP.En esta situación se produce una excepción en la CPU, y se llamaal S.O. para que gestione el fallo de página.Una página se va a MS cuando la MP está llena y tiene que entraruna página nueva (reemplazo).

El intercambio excesivo de páginas, se llama hiperpaginación.Cuando un programa termina, se liberan sus marcos de MS y MP.

3. Memoria virtual

62

Buffer de traducción anticipada o TLB (I).Motivación y definición.

La velocidad de un sistema con memoria virtual se ve mermada por su misma naturaleza. Un acceso a dato implica:

Acceso a la tabla de páginas (en MP o en caché) para traducción.Acceso al dato (en caché, en MP o en disco)Por lo tanto, el sistema es al menos, el doble de lento de lo que era cuando no tenía memoria virtual.

Se puede mejorar el rendimiento, aplicando el concepto de localidad referencial a los accesos a la tabla de páginas.

Se puede tener una caché de la tabla de páginas = TLB.Definiendo una TLB.

Es un mecanismo de aceleración de las consultas a la TP con objeto de traducir lo antes posible.

Una vez realizada la traducción a dir. Física, deja de actuar.La memoria perteneciente a la TP no es cacheable por la caché ordinaria.Sólo existe una para todo el sistema, y es interna al procesador.Las referencias pueden pertenecer a uno o a varios procesos (TP):

Uno: la TLB se borra al cambiar de proceso.Produce más fallos por iniciación.Varios: campo PID de proceso en la TLB. Evita algunos fallos por iniciación.

Puede ser unificada o separada.

3. Memoria virtual

Page 32: Gestión de memoria(AC 06-07) - Universidad de Sevillaicaro.eii.us.es/descargas/TranspGM-AC(06-07).pdfSistema de interrupciones Sistema de memoria cache Sistema de memoria virtual

32

63

TLB. Esquema

3. Memoria virtual

64

TLB. Funcionamiento.

Cuando un proceso se vuelve activo en el sistema se cambia de TP, y la TLB se borra, si sólo tiene refs a un proceso.La CPU genera internamente una dirección virtual que es cotejada en la TLB para ver si está su traducción.

La dirección virtual sólo existe dentro del procesador.Si la referencia a la TP no está: fallo de TLB: Se trae un bloque de entradas de la TP a TLB y a continuación se consulta ésta.

Si además, la página no está en MP: fallo de página.Cuando hay un acierto en TLB, la página está en MP, y puede que sus datos estén en caché.

32-8192Tamaño TLB0.1%-0.2%Frecuencia de fallos10-30 ciclos de relojPenalización de fallos1 ciclo de relojTiempo de acierto4-8 bytes (una entrada de TP)Tamaño de bloque

Valores típicos de parámetros

3. Memoria virtual

Page 33: Gestión de memoria(AC 06-07) - Universidad de Sevillaicaro.eii.us.es/descargas/TranspGM-AC(06-07).pdfSistema de interrupciones Sistema de memoria cache Sistema de memoria virtual

33

65

TLB. Funcionamiento (II). Dirección virtual

Dir. física (desde TP) y actualiza TLB.

Página en MP?

MP llena?

Bajar página a MS

Subir página a MP y actualizar TP.

no

no

si

si

Dato en caché?

Bajar subir bloque a Caché

Dato (desde caché)

si

no

Dir. física (desde TLB)Acierto en TLB?

si

no

3. Memoria virtual

66

TLB. Implementación típica.

Líneas de 1 entrada de la TP.32-1024 líneasTotalmente asociativo, o asociativo por conjuntos.Mr=0.001 - 0.01Implementación dentro del procesador. Sólo una. CB-WA. Reemplazo aleatorio.Para cada bloque:

Bit de válido.Bits de etiqueta (nº de página virtual, si blq=1entrada).Entrada de la TP.Bit de Dirty.

Page 34: Gestión de memoria(AC 06-07) - Universidad de Sevillaicaro.eii.us.es/descargas/TranspGM-AC(06-07).pdfSistema de interrupciones Sistema de memoria cache Sistema de memoria virtual

34

67

Buffer de traducción anticipada o TLB (IV) Ejemplo: TLB del VAX-11/780

Tamaño de página de 512bytesEntrada de TP de 4bytesTLB de 512bytes asociativa por conjuntos de 2 víasPasos:1: Envío del índice de la

dirección virtual2: Comprobación de válido y

tipo de acceso a memoria3: Comparación de etiquetas4: Envío de la dirección física a través del multiplexor5: Combinación del número y desplazamiento de página

3. Memoria virtual