Profesores y Horarios de Tutorías Temas 3 y 4
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 1
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.
2
1
Estructura Básica de un Computador Máquina Von Neumann
CPU Interconexiones
Memoria
E/S Periféricos
3
Ampliación Máquina Von Neumann Programa principal I1 I2
TEMA 4
TEMA 3 CPU palabras
. .
Memoria principal Interrupción
Ii Ii+1
(Mc) páginas bloques
. . In Rutina de servicio i1 i2 . . im Sistema de interrupciones
(Mp)
Memoria cache
Memoria principal
Memoria secundaria
(Mp)
(Ms)
Sistema de memoria cache
Sistema de memoria virtual 4
2
Tema 3: GESTIÓN DE MEMORIA ÍNDICE
Jerarquía de memoria Memorias caché
1. 2.
Introducción Organización física Organización lógica Optimización
1. 2. 3. 4.
3.
Memoria virtual
5
Jerarquía de memoria Introducción
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 memorias, 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)
1. Jerarquía de memoria
6
3
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.
Coste/bit (+) Capacidad (-) Velocidad (+) Frecuencia de accesos (+)
Registros procesador Caché Memoria principal Caché de disco Disco magnético CD-DVD
1. Jerarquía de memoria
7
Propiedades
Inclusión: Cualquier información almacenada en un nivel de memoria, debe encontrarse también en los niveles inferiores. nivel i+1
nivel i
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 su espacio 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
8
4
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.
Nivel superior
Bloques
Las transferencias de datos entre niveles se hace con bloques de varios bytes.
Nivel inferior 1. Jerarquía de memoria
9
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
10
5
Evaluación del rendimiento
Tiempo medio de acceso a memoria Tiempo 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 memoria Frecuencia de fallos
1. Jerarquía de memoria
11
Evaluación del rendimiento Relación entre parámetros Tiempo medio de acceso
Tamaño del bloque
Penalización por fallo
Tiempo de transferencia
Frecuencia por fallo
Tiempo de acceso Tamaño del bloque
1. Jerarquía de memoria
Tamaño del bloque
12
6
Memoria caché Introducción CPU palabras
Representa el nivel de jerarquía de memoria entre la CPU y la memoria principal.
Memoria Memoria caché caché
Controlador Controlador de decaché caché bloques
Se le pueden aplicar todos los conceptos vistos para la jerarquía de memoria (propiedades, funcionamiento, conceptos básicos, rendimiento).
Memoria principal (Mp)
2. Memoria cache
13
Estructura Memoria Caché/Memoria Principal
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:
Dirección de memoria
Mp
1 DF:
B
P
Mc
0 Bloque 0
(n-k bits) (k bits) Bloque
Palabra
.
n
Bloque 1
.
dirección
Mc (memoria cache):
Línea 0
2
formada por nL líneas de (nL << nB).
2K
.
palabras
.
Línea de caché (contenido):
Información de bloque Datos adicionales Bit de línea válida. Info. identificación de bloque Otros...
2. Memoria cache
. Línea nL -1
. Bloque 2n/2k -1= nB -1 2n
-1
14
7
Funcionamiento
2. Memoria cache
15
Arquitecturas
Organización física
Segú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ógica
Segú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
16
8
Organización física
Según su ubicación Caches externas: No se encuentran en el interior del chip del procesador (cache-off-chip). Caches internas: Se encuentran en el propio chip del procesador (cache-on-chip).
Según la configuración Configuración en serie (Look-Trough Architecutre). Configuración en paralelo (Look-Aside Architecture).
2. Memoria cache. cache Organización Física
17
Configuración en serie CPU
Bus Cache
DMA
I/O
Memoria
Bus
Tc
Tmp t
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)
2. Memoria cache. Organización Física según la CONFIGURACIÓN
18
9
Configuración en paralelo Cache
DMA
I/O
Memoria
Bus
CPU Tc Tmp t
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
2. Memoria cache. Organización Física según la CONFIGURACIÓN
19
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
20
10
Caches unificadas vs. Caches separadas
Caches unificadas o mixtas (unified or mixed): Contienen tanto datos como instrucciones Caches separadas (separated): Existe una caché para datos y otra para instrucciones
Ventajas No 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) Inconvenientes En 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ática
2. Memoria cache. Organización Lógica. Cache unificada vs cache separada.
21
Ejemplo caches separadas: Pentium II Depósito de instrucciones. Buffer de reordenación.
Unidad de lectura y decodificación de instrucciones.
Caché de instrucciones L1. (8-16K)
Unidad de retirada
Unidad de ejecución y envío
Caché de datos L1. (8-16K)
Cada caché tiene asociada al menos una unidad de control que controla las peticiones de datos.
Interfaz con el bus
Bus del sistema
Caché L2. (256-1M)
2. Memoria cache. Organización Lógica. Cache unificada vs cache separada.
22
11
Comparativa (I) Comparativa de frecuencias de fallos (VAX, 16 bytes/bloque, LRU, 2 vías)
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%
2. Memoria cache. Organización Lógica. Cache unificada vs cache separada.
23
Comparativa (II) Ejemplo: (75% de accesos a instrucción)
a)
b)
Caches separadas de 16KB. Penalización: 50 ciclos, Tiempo de acierto para instrucción: 1 ciclo, para datos: 2 ciclos (un solo puerto) 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 ciclos b) Tacceso medio=1+4.3%*50 = 3.0 ciclos=3.15 ciclos
2. Memoria cache. Organización Lógica. Cache unificada vs cache separada.
24
12
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 Mp con 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 25
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
26
13
Identificación de un bloque Una vez que se sabe en qué líneas buscar un bloque con dirección Db ¿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
27
Políticas de Ubicación y Localización. Mp
Mc
. . .
B0 B1 B2 B3 B4 B5 B6 B7
Mc B0 B1 B2 B3 B4 B5 B6 B7
DIRECTA
ASOCIATIVA
Mc C0 C1 C2 C3
ASOCIATIVA POR CONJUNTOS
2. Memoria cache. Organización Lógica. Políticas de UBICACIÓN y LOCALIZACIÓN 28
14
Ejemplo de Ubicación de bloque
Memoria: 32 bloques Caches: 8 bloques Tres tipos: - Asociativas - Directa - Asociativa por conjuntos de 2 vías
2. Memoria cache. Organización Lógica. Política UBICACIÓN
29
Ejemplo de localización e identificación de un bloque Memoria: 32 bloques Caches: 8 bloques Tres tipos: - Completamente asociativas - De correspondencia directa - Asociativa por conjuntos de 2 vías
2. Memoria cache. Organización Lógica. LOCALIZACIÓN
30
15
Cache de Mapeado Directo
Líneas MC
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)
M = B mod nM
Interpretación de DF en correspondencia DIRECTA: 4 20 B
P
ETQ
M
P
8
12
4
2. Memoria cache. Organización Lógica. Política UBICACIÓN
31
Cache de Mapeado Directo •Ventajas: •Baja complejidad hardware
Dirección solicitada (de CPU) 6 5 4 3 2 1 0 1 1 1 1 0 1 1 ETI INDICE W B
•Rapidez en la identificación •Inconvenientes: V
Datos
•Alta tasa de fallos si varios bloques compiten por la misma línea.
DECODER
COMPARADOR
Etiqueta
Memoria principal
1 1 Encontrado (si)
Bloque 0
ACADA...B3 Bloque 1 (y sigue)
Y
Dato solicitado (AF)
Dato A1 A2 A3 A4 A5 A6 A7 A8 A9 AA AB
......
Selector Acierto (si)
Dirección 0000000 0000001 0000010 0000011 0000100 0000101 0000110 0000111 0001000 0001001 0001010
Bloque 15 1111000 1111001 1111010 1111011 1111100 1111101 1111110 1111111
2. Memoria cache. Organización Lógica. IDENTIFICACIÓN
AC AD AE AF B0 B1 B2 B3
32
16
Cache Totalmente Asociativa
Líneas Mc
Memoria Principal (Mp):
16MB direccionables por bytes (dirección de 24bits).
Memoria Cache (Mc):
Cada bloque B
64KB.
puede ubicarse en
Tamaño de bloque 16 Bytes:
cualquier línea M.
Nº Bloques en MP: nB = 1M (20 bits) Nº Líneas en MC: nM = 4K (12 bits)
Interpretación de DF en correspondencia TOTALMENTE ASOCIATIVA: 20
4
B
P
ETIQUETA
P
20
4
2. Memoria cache. Organización Lógica. Política UBICACIÓN
33
Cache Totalmente Asociativa •Ventajas: •Baja tasa de fallos
Dirección solicitada (de CPU) 6 5 4 3 2 1 0 1 1 1 1 0 1 1 ETI W B
•Inconvenientes: •Alta complejidad hardware.
COMPARADOR
Etiqueta
V
Datos
•Lentitud en la identificación. Memoria principal
1111 1 ACADA...B3
Bloque 0
Bloque 1 (y sigue)
Encontrado (si)
Y
Dirección 0000000 0000001 0000010 0000011 0000100 0000101 0000110 0000111 0001000 0001001 0001010
Dato A1 A2 A3 A4 A5 A6 A7 A8 A9 AA AB
......
Selector Acierto (si)
Dato solicitado (AF)
2. Memoria cache. Organización Lógica. IDENTIFICACIÓN
Bloque 15 1111000 1111001 1111010 1111011 1111100 1111101 1111110 1111111
AC AD AE AF B0 B1 B2 B3
34
17
Cache Asociativa por Conjuntos
Línea
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:
C = B mod nC
Nº de Líneas por Conjunto: 4 Nº de Conjuntos en Mc: nC = 1K (10 bits)
Interpretación de DF en correspondencia ASOCIATIVA POR CONJUNTOS: 20
4
B
P
ETQ
C
P
10
10
4
2. Memoria cache. Organización Lógica. Política UBICACIÓN
35
Cache Asociativa por Conjuntos
DECODER
Dirección solicitada (de CPU) 6 5 4 3 2 1 0 1 1 1 1 0 1 1 ETI CJTO W B
Memoria principal
Eti V
VIA 0 Datos
Eti V
Bloque 0
VIA 1 Datos Bloque 1 (y sigue)
11 1 ACADA...B3 =
Dirección 0000000 0000001 0000010 0000011 0000100 0000101 0000110 0000111 0001000 0001001 0001010
Dato A1 A2 A3 A4 A5 A6 A7 A8 A9 AA AB
......
= Y
Y Acierto vía 1(no)
Acierto vía 0 (si) Selector
Bloque 15 1111000 1111001 1111010 1111011 1111100 1111101 1111110 1111111
AC AD AE AF B0 B1 B2 B3
Dato solicitado (AF)
2. Memoria cache. Organización Lógica. IDENTIFICACIÓN
36
18
Ejemplo (I) • • •
1 2 3
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 asociativa 2. Cache asociativa por conjuntos de 4 vías 3. Cache de mapeado directo Etiqueta: 21bits
Desplazamiento: 3bits Palabra: 2bits
Etiqueta: 13bits
Conjunto: 8bits
Desplazamiento: 3bits Palabra: 2bits
Etiqueta: 11bits
Byte:1bit
Bloque: 10bits
Byte:1bit
Desplazamiento: 3bits Palabra: 2bits
2. Memoria cache. Organización Lógica. IDENTIFICACIÓN
Byte:1bit
37
Ejemplo (II)
- Cache asociativa por conjunto 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ón 2) Acceso a ambos bancos 3) Comparación de etiquetas 4) Multiplexación 5) Envío a la CPU
2. Memoria cache. Organización Lógica. IDENTIFICACIÓN
38
19
Políticas de escritura Frente 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 bit de 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
39
Políticas de escritura Ventajas e Inconvenientes
Escritura directa (Write through):
Ventajas:
Inconvenientes:
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). 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
40
20
Políticas de escritura Frente 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
41
Políticas de reemplazo Espacio 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
42
21
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 eficiencia Los esquemas más utilizados son el aleatorio y el LRU
2. Memoria cache. Organización Lógica. Política SUSTITUCIÓN
43
EJEMPLO Ejemplo de política LRU (cache de 4 bloques) Dirección Bloque LRU
0
3
2
1
0
0
2
3
1
3
0
0
0
0
3
3
3
1
0
0
2
Comparativa de frecuencias de fallos (VAX, 16bytes/bloque)
2. Memoria cache. Organización Lógica. Política SUSTITUCIÓN
44
22
Optimización Có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
45
Reducir la frecuencia de fallos Tipos de fallos
Forzosos (Compulsory):
Capacidad (Capacity):
En el primer acceso a un bloque, éste no se encuentra en la caché.
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
46
23
Tipos de fallos Frecuencia total de fallos para cada tamaño de cache:
2. Memoria cache. Optimización. Reducción de fallos
1.
Fallo forzoso: Independiente del tamaño de cache.
2.
Fallo de capacidad: Decrece al aumentar tamaño de la cache.
3.
Fallo de conflicto: Decrece al aumentar la asociatividad.
47
Tipos de fallos
2. Memoria cache. Optimización. Reducción de fallos
48
24
Reducir la frecuencia de fallos Técnicas
Aumento del tamaño del bloque.
Aumento de la asociatividad.
2. Memoria cache. Optimización. Reducción de fallos
49
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:
Penalización por fallo
Tiempo de transferencia Tiempo de acceso
Frecuencia por fallo
Tamaño del bloque
2. Memoria cache. Optimización. Reducción de fallos
Tamaño del bloque
50
25
Incremento del tamaño de bloque
forzosos Conflicto
Capacidad
2. Memoria cache. Optimización. Reducción de fallos
51
Ejemplo incremento del tamaño de bloque
Ejemplo: Tiempo de búsqueda = 40CLK Tasa de transferencia= 8bytes/CLK Tiempo de acierto= 1CLK a) Cache de 1Kb con línea de 16bytes b) Cache de 256Kb con línea de 256bytes Solución: a) Tiempo de acceso medio a memoria = 1+15.05%*(40+2)=7.321 ciclos b) Tiempo de acceso medio a memoria = 1+0.49%*(40+32)=1.353 ciclos 2. Memoria cache. Optimización. Reducción de fallos
52
26
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.
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
Tiempo medio de acceso a memoria (ciclos)
2. Memoria cache. Optimización. Reducción de fallos
53
Memoria virtual Objetivos
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
54
27
Definiciones (I) Traducción de direcciones
Direcciones virtuales
Direcciones físicas
0
A
4K
B
8K
C
8K
12K
D
12K
Espacio virtual del proceso A. 0
A’
4K
0
C
A
4K
Página
16K 20K
B
24K
A’
28K
Memoria principal
8K 12K
Espacio virtual del proceso B.
D
Disco o Memoria Secundaria 3. Memoria virtual
55
Definiciones (II)
Página (page):en los términos definidos para la jerarquía de memoria es un bloque Fallo 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 CPU Direcciones físicas: son las direcciones que atacan a la memoria principal Correspondencia de memoria (memory mapping) o traducción de direcciones (address translation): el proceso (software/hardware) para traducir las direcciones virtuales a direcciones físicas Niveles de la jerarquía controlados por la memoria virtual: Memoria RAM y disco duro Marco: sitio donde se ubica una página en disco o en MP.
3. Memoria virtual
56
28
Memoria virtual Visió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
57
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ágina La dirección física se obtiene concatenando simplemente la dirección física de la página con el desplazamiento de página Se 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 virtual La tabla de páginas reside en memoria principal.
3. Memoria virtual
58
29
Tabla de páginas Correspondencia entre dirección virtual y física Registro de la tabla de páginas
Número de página virtual (20) 1
Pag. V (20bits) V D R W LRU 0 1 1 0 1 1 --...
Desplazamiento (12) 120
Marco (18 bits) 46544
1048575
Marco (18) 46544
Desplazamiento (12) 120
3. Memoria virtual
59
Funcionamiento. Dirección virtual
Página en MP?
si
Tratamiento del fallo de página (S. O.)
no MP llena?
no
Dato en caché?
si
no si Bajar página a MS
Subir página a MP y actualizar TP.
Bajar subir bloque a Caché
Dato (desde caché)
Dir. física (desde TP)
3. Memoria virtual
60
30
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 llama al 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 entrar una 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
61
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.
Definiendo una TLB.
Se puede tener una caché de la tabla de páginas = TLB.
Es un mecanismo de aceleración de las consultas a la TP con objeto de traducir lo antes posible.
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):
Una vez realizada la traducción a dir. Física, deja de actuar.
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
62
31
TLB. Esquema
3. Memoria virtual
63
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.
Cuando hay un acierto en TLB, la página está en MP, y puede que sus datos estén en caché.
Si además, la página no está en MP: fallo de página.
Tamaño de bloque
4-8 bytes (una entrada de TP)
Tiempo de acierto
1 ciclo de reloj
Penalización de fallos 10-30 ciclos de reloj Frecuencia de fallos
0.1%-0.2%
Tamaño TLB
32-8192
3. Memoria virtual
Valores típicos de parámetros
64
32
TLB. Funcionamiento (II). Dirección virtual
Acierto en TLB?
si
Dir. física (desde TLB)
no Página en MP?
si
no MP llena?
Dato en caché?
no
si
no si Bajar página a MS
Subir página a MP y actualizar TP.
Bajar subir bloque a Caché
Dato (desde caché)
Dir. física (desde TP) y actualiza TLB.
3. Memoria virtual
65
TLB. Implementación típica.
Líneas de 1 entrada de la TP. 32-1024 líneas Totalmente asociativo, o asociativo por conjuntos. Mr=0.001 - 0.01 Implementació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. 66
33
Buffer de traducción anticipada o TLB (IV) Ejemplo: TLB del VAX-11/780 Tamaño de página de 512bytes Entrada de TP de 4bytes TLB de 512bytes asociativa por conjuntos de 2 vías Pasos: 1: Envío del índice de la dirección virtual 2: Comprobación de válido y tipo de acceso a memoria 3: Comparación de etiquetas 4: Envío de la dirección física a través del multiplexor 5: Combinación del número y desplazamiento de página
3. Memoria virtual
67
34