Está en la página 1de 60

Jerarquía de memoria

Jerarquía de memoria
Estructura de computadores

Computer Structure 1 Higher Polytechnic School of Alcoy


Jerarquía de memoria

Contenidos:
1. Conceptos básicos
1.1. Concepto de Memoria Caché
1.2. Principio de localidad
1.3. Bloque de caché (línea de caché)
1.4. Acceso a Información
1.5. Precarga
1.6. Organización de la Información de la Memoria Caché
1.7. Correspondencia
1.8. Algoritmos de Reemplazo

Computer Structure 2 Higher Polytechnic School of Alcoy


Jerarquía de memoria


2. Diseño de Sistema de Memoria para Memoria Caché
2.1. Grandes recursos del tamaño de la palabra
2.2. Memorias intercaladas

3. Memoria virtual
3.1. Introducción a la memoria virtual
3.2. Direcciones virtuales y físicas
3.3. Memoria paginada
3.4. Memoria segmentada
3.5. Pólizas de reposición
3.6. Protección de la información
3.7. Resumen de la jerarquía de memoria

Computer Structure 3 Higher Polytechnic School of Alcoy


Jerarquía de memoria

1. Conceptos Básicos

Computer Structure Higher Polytechnic School of Alcoy


Jerarquía de memoria

1. Conceptos básicos
1.1. Concepto de Memoria Caché

● Necesita una memoria que:

○ Puede mantenerse al día con la velocidad de procesamiento de la CPU.


La brecha de velocidad entre el procesador y la memoria se ha ampliado.
○ Es económico, confiable y eficiente en el consumo de energía.
○ Transparente para el usuario: las transferencias se realizan automáticamente.
● La memoria caché actúa como intermediaria entre el procesador ultrarrápido y la
memoria principal mucho más lenta.

Computer Structure 5 Higher Polytechnic School of Alcoy


Jerarquía de memoria

1. Conceptos básicos
1.1. Concepto de Memoria Caché

Memoria Caché
Memoria Principal

Computer Structure 6 Higher Polytechnic School of Alcoy


Jerarquía de memoria

1. Conceptos básicos
1.1. Concepto de Memoria Caché

● Baja capacidad pero alta velocidad.


● Situado entre el procesador y el sistema de memoria central.
● Medidas:
○ Aciertos (hits): Los datos se encuentran en la memoria caché .
○ Fallos (misses): Los datos no se encuentran en la memoria caché.
● Implementación hardware: Interno y externo.
● Tamaño variable. Una memoria caché más grande puede contener más datos, pero
es más costosa y probablemente más lenta.
● Contenido: Datos e instrucciones (juntos o separados).

Computer Structure 7 Higher Polytechnic School of Alcoy


Jerarquía de memoria

1. Conceptos básicos
1.1. Concepto de Memoria Caché

● Cualquier CPU moderna tiene diferentes niveles de caché: L1, L2, L3…. caché
multinivel.
● No hay una manera fácil de controlar el caché desde el software. Como regla
general. Si el código o los datos caben en el caché L1 será el más rápido.
● Cada CPU tiene diferentes cantidades de caché. Lo que funciona bien para una
CPU puede ser muy lento para otra CPU.
● Más caché no siempre es mejor: Rendimientos decrecientes. Las cachés más
grandes son más lentas y más caros. En algún momento, es más eficiente
implementar más unidades de ejecución, mejores canalizaciones o más núcleos.

Computer Structure 8 Higher Polytechnic School of Alcoy


Jerarquía de memoria

Conceptos básicos
PREGUNTA EXAMEN, X SITUACIÓN ES UN HIT O MISS?, Y LUEGO DECIR
1. EL TIPO

1.1. Concepto de Memoria Caché

Fallos (misses):
○ Obligatorio (Compulsory): El primer acceso a cualquier artículo es una falta.
Algunos errores obligatorios se pueden evitar mediante la búsqueda previa.
○ Por capacidad (Capacity Misses): Tenemos que expulsar algunos artículos
para hacer espacio para otros. Esto conduce a fallos que no son incurridos con
un caché infinitamente grande.
○ Por conflicto (Conflict Misses): Ocasionalmente, hay espacio libre, o espacio
ocupado por datos inútiles, pero el esquema de mapeo/ubicación nos obliga a
desplazar artículos útiles para desplazar otros artículos. Esto puede conducir a
fallos en el futuro. Hau 3 espacios en la memoria cache(OCUPADO-LIBRE-LIBRE) y yo quiero coger un dato de
la mp y ponerlo en el primero que es donde le corresponde, pero resulta que está OCUPADO,
situación donde se produce CONFLICTO, no puedo ponerlo en un espacio que no le
corresponde

Computer Structure 9 Higher Polytechnic School of Alcoy


Jerarquía de memoria

EJEMPLO:
L1 90%-->90ns
TOTAL--->280ns
Conceptos básicos
L2 9%-->90ns
1. MP 1%-->100ns

1.1. Concepto de Memoria Caché

● El diseño de caché tiene un gran impacto en el rendimiento del sistema. Ejemplo:


Simplemente los percentages que me den:
- L1 con una latencia de acceso de 1ns. L1 se multiplica por 1´
L2 por 10
- L2 con una latencia de acceso de 10ns. MP por 100

- Memoria principal con latencia de acceso de 100ns.

● Con una tasa de aciertos del 100% en L1, el acceso a 100 dato tarda 100ns.
● Con una tasa de aciertos del 99% en L1, si el 1% va al L2, el acceso a 100 datos toma 109ns. Una
reducción del 1% en la tasa de aciertos provoca un tiempo de acceso de 10%. ¡INCREMENTAR!
● Por lo general la tasa de aciertos de L1 es de alrededor del 95%. Si el acceso de los restantes 5%
tiene lugar en la memoria principal. Una operación de 100ns se convierte en una casi 600ns de
funcionamiento.

Computer Structure 10 Higher Polytechnic School of Alcoy


Jerarquía de memoria

1. Conceptos básicos
1.1. Concepto de Memoria Caché

Computer Structure 11 Higher Polytechnic School of Alcoy


Jerarquía de memoria

1. Conceptos básicos
1.1. Concepto de Memoria Caché

Datos L1 Instrucciones caché: 32 KB, 4


L2
CPU vías, línea de 64 bytes, reescritura,
Código Caché
asignación de escritura.
Datos Caché de datos L1: 32KB, 8 vías,
L2 línea de 64 bytes, reescritura,
CPU
Código Caché asignación de escritura.
L3
Caché Caché unificado L2: 256KB, 8 vías,
Datos
L2 línea de 64 bytes, reescritura,
CPU
Código Caché escritura y asignación.
Caché unificado compartido: 8MB,
Datos 16 vías, línea de 64 bytes,
L2
CPU reescritura, asignación de escritura.
Código Caché

Computer Structure 12 Higher Polytechnic School of Alcoy


Jerarquía de memoria

1. Conceptos básicos
1.1. Concepto de Memoria Caché

Computer Structure 13 Higher Polytechnic School of Alcoy


Jerarquía de memoria

1. Conceptos básicos
1.1. Concepto de Memoria Caché

Computer Structure 14 Higher Polytechnic School of Alcoy


Jerarquía de memoria

1. Conceptos básicos
1.2. Principio de localidad

Dirección
Localidad espacial: Cuando se accede a
un lugar, se tiende a acceder también a
los lugares cercanos.

Localidad temporal: Los accesos a una


misma dirección suelen estar agrupados
en el tiempo.

Fórmula tasa de aciertos (Hit Rate):


Tiempo

Computer Structure 15 Higher Polytechnic School of Alcoy


Jerarquía de memoria

1. Conceptos básicos
1.3. Bloques de caché (línea de caché)

● Unidad de transferencia entre la memoria central y la caché. Entradas de la caché.


● Cantidad mínima de información que puede estar en la caché. Tamaño:
normalmente una potencia de 2: 8 bytes, 32 KB...
● Conjunto de palabras contiguas.
● Tamaño de bloque o línea de caché: Número de palabras.
Criterio:
○ Tamaño pequeño: Transferencia más rápida. Baja probabilidad de tener información
no utilizada pero disminuye la tasa de aciertos.
○ Tamaño grande: se introducen más datos en la caché con cada fallo. Esto puede
mejorar la tasa de aciertos, pero también hace que entren datos poco útiles.
○ Acceso secuencial: Es mejor aumentar el tamaño del bloque.

Computer Structure 16 Higher Polytechnic School of Alcoy


Jerarquía de memoria

1. Conceptos básicos
1.4. Acceso a Información

Acceso de lectura. El procesador demanda información:

● Aciertos (hits): La información se transfiere directamente desde la caché.


● Fallos (misses): Transferencia de información desde la memoria central a:

○ Caché primero, y luego de la caché a la CPU.


○ Técnica “Carga directa” (direct load): La transferencia tanto a la CPU como a
la memoria caché se realiza en paralelo. Si no se especifica lo contrario, este es
el enfoque por defecto.

Computer Structure 17 Higher Polytechnic School of Alcoy


Jerarquía de memoria

1. Conceptos básicos
1.4. Acceso a Información
Acceso de escritura. Consistencia de la información
● Aciertos:
○ Acceso de escritura (Write-Through). La modificación se realiza en ambas
memorias (las actualizaciones se reenvían inmediatamente a la memoria
principal). Lento.
○ Write-Back o Copy Back. El bloque se marca como modificado. Antes de
sustituirlo, hay que actualizarlo (los bloques modificados se copian de nuevo
en la memoria principal cuando hay que sustituirlos). Más rápido, pero puede
haber incoherencias.
● Fallos:
○ Escritura directa en la memoria central. Asignación sin escritura.
(No-write-allocate)
○ Carga de bloques en la caché. Asignación de escritura. (Write-allocate)

Computer Structure 18 Higher Polytechnic School of Alcoy


Jerarquía de memoria

1. Conceptos básicos
1.5. Prefetching

● Las pérdidas de caché son muy caras.


● Prefetching:
○ Técnica para ocultar la latencia de la memoria cuando se produce un fallo.
○ Carga bloques en la caché antes de ser solicitados.
○ Clasificación: útil (evita un fallo de caché), inútil (se sustituye antes de ser
accedido), perjudicial (es inútil y sustituye a un bloque que se solicita
posteriormente).
○ Puntualidad:
■ El bloque llega con suficiente antelación para evitar un fallo.
■ No se evita un fallo, pero se reduce la latencia del fallo.

Computer Structure 19 Higher Polytechnic School of Alcoy


Jerarquía de memoria

1. Conceptos básicos
1.5. Prefetching

Enfoques:

● Prefetch-on-miss (one block lookahead): Recupera el bloque i+1 siempre que un


acceso al bloque i resulte en un fallo.
○ Es posible que esto no sea suficiente para evitar que la memoria del
procesador se detenga. Prefetch N>1 bloques subsiguientes (N-block
lookahead). Tráfico adicional y contaminación del caché.
○ Cache Memory Pollution: Al recuperar i+1, se reemplaza un bloque que es más
probable que se use (bloque precargado prematuramente).

Computer Structure 20 Higher Polytechnic School of Alcoy


Jerarquía de memoria

1. Conceptos básicos
1.6. Organización de la información de la memoria caché

Bloque de caché
● Bits de control:
○ Bits de etiqueta (tag). Marca de identificación en el directorio. Conjunto de bits para
identificar de qué parte de la memoria principal procede el bloque en caché.
○ Bit de datos válidos (Valid Data Bit). Indica si la información en caché puede ser
utilizada o no, o si el bloque está "vacío". Normalmente este bit para cada línea de
la caché se pone a "0" cuando se reinicia la máquina o se vacía la caché.
○ Bit de datos modificados (Modified Data Bit). Indica si la información debe ser
reescrita en la memoria central antes de ser reemplazada en la caché. Para las
operaciones pendientes de reescritura.
● Bytes de información: datos o instrucciones. Juntos o en memorias caché
separadas.

Computer Structure 21 Higher Polytechnic School of Alcoy


Jerarquía de memoria

1. Conceptos básicos
1.7. Correspondencia

Se refiere a la relación entre los bloques de caché y los bloques de memoria principal.

Política de colocación (placement policy): Determina dónde se almacena una línea de


caché entrante. Las políticas más flexibles implican un mayor coste de hardware y
pueden no tener ventajas de rendimiento.

Existen tres políticas fundamentales de correspondencia:


1. Correspondencia completamente asociativa
2. Correspondencia directa.
3. Correspondencia asociativa por conjuntos
Computer Structure 22 Higher Polytechnic School of Alcoy
Jerarquía de memoria

1. Conceptos básicos
1.7. Correspondencia: Caché completamente asociativa

● La memoria principal se divide lógicamente en N bloques y la memoria caché en M


bloques, normalmente con M<<N.
● Cada bloque de memoria principal se puede almacenar en cualquier bloque del caché.

Computer Structure 23 Higher Polytechnic School of Alcoy


Jerarquía de memoria

1. Conceptos básicos
1.7. Correspondencia: Caché completamente asociativa

Dirección CPU

Número del bloque Desplazamiento de palabras

● Hardware caro.
● Alta tasa de aciertos.
● Lento. El tiempo de búsqueda es extremadamente largo. La CPU tiene que buscar
en toda su caché para averiguar si los datos están presentes antes de buscar en la
memoria principal.

Computer Structure 24 Higher Polytechnic School of Alcoy


Jerarquía de memoria

1. Conceptos básicos
1.7. Correspondencia: Caché completamente asociativa

Ejemplo de caché completamente asociativa.


Ordenador con 64 MB de memoria principal, 16 KB de memoria caché, tamaño de bloque de 32 Bytes.
a) Número de bloques en la memoria caché.
16KB/32 = 512 bloques
b) Número de bloques en la memoria principal.
64 MB/32 = 221 bloques
c) Formato de etiqueta y relación con el formato de dirección de la CPU cuando se utiliza una caché totalmente asociativa.
Para 64 MB, se necesitan 26 bits de dirección.

Dirección CPU
Desplazamiento
Número del bloque (21 bits) 5 bits
Etiqueta (21 bits por bloque)

d) ¿Dónde se almacenará en la caché la palabra de memoria principal en la dirección 262003?


No se puede saber de antemano, en una caché totalmente asociativa, los datos pueden almacenarse en cualquier
bloque.
Computer Structure 25 Higher Polytechnic School of Alcoy
Jerarquía de memoria

1. Conceptos básicos
1.7. Correspondencia: Caché de mapeo directo

● Cada bloque de memoria tiene una posición fija dentro de la caché.


● Función de correspondencia (cada bloque de una fila se almacena en el mismo
bloque de la caché):

Bloque de Caché = (Bloque de Memoria) MOD (Número de Bloques de Caché)

● La Memoria Central se organiza en bloques dispuestos en filas y columnas. El


número de filas coincide con el número de bloques de caché.
● Se utilizan etiquetas.

Computer Structure 26 Higher Polytechnic School of Alcoy


Jerarquía de memoria

1. Conceptos básicos
1.7. Correspondencia: Caché de mapeo directo

Etiqueta 0 Bloque 0 Bloque 0 Bloque M

Etiqueta M-1 Bloque M-1 Bloque …


M-1

Computer Structure 27 Higher Polytechnic School of Alcoy


Jerarquía de memoria

1. Conceptos básicos
1.7. Correspondencia: Caché de mapeo directo

● Ventajas:
○ La búsqueda es sencilla. Los bloques están en una posición predeterminada.
○ Si hay que acceder a bloques de la misma fila: Baja tasa de aciertos.
○ Los bloques de la Memoria central están estructurados en forma de array.

Computer Structure 28 Higher Polytechnic School of Alcoy


Jerarquía de memoria

1. Conceptos básicos
1.7. Correspondencia: Caché de mapeo directo
Ejemplo de caché de mapeo directo.
Ordenador con 1 MB de memoria principal, 1 KB de memoria caché, tamaño de bloque
de 4 Bytes.
a) Número de bloques en la memoria caché y en la memoria principal.
1KB/4 = 256 bloques de caché, 1 MB/4 = 218 bloques
b) Formato de etiqueta y relación con el formato de dirección de la CPU cuando se utiliza una
caché de mapeo directo. Para 1 MB, se necesitan 20 bits de dirección. El número de filas es 256, el
número de columnas es 218/256 = 210
Dirección CPU
Etiqueta (10 bits por
Columna (10 bits) Fila (8 bits) Desplazamiento (2 bits)
columna)

c) ¿Dónde se almacenará en la caché la palabra de memoria principal en la dirección


262003? 262003 = 3FF73h = 001111111101110011b. Comparando con la plantilla de direcciones:
columna = 0011111111b = 255, fila = 11011100b = 220, palabra = 11b = 3
Computer Structure 29 Higher Polytechnic School of Alcoy
Jerarquía de memoria

1. Conceptos básicos
1.7. Correspondencia: Caché de mapeo directo

Ejemplo de comportamiento de la caché con mapeo directo.


Caché con 8 bloques, tamaño de bloque de 4 bytes. Rastreo de direcciones: 1, 7,
6, 5, 32, 33, 1, 2, …

1: Fallo, línea (bloque) con las direcciones 3,2,1,0, recuperada


7: Fallo, línea con direcciones 7,6,5,4, obtenida
6: Acierto
5: Acierto
32: Fallo, línea con 35,34,33,32 obtenida (sustituye a 3,2,1,0)
33: Acierto
1: Fallo, línea 3,2,1,0 obtenida (sustituye a 35, 34, 33, 32)
2: Acierto

Computer Structure 30 Higher Polytechnic School of Alcoy


Jerarquía de memoria

1. Conceptos básicos
1.7. Correspondencia: Caché asociativa por conjuntos

Caché asociativa por conjuntos


● Entre las dos anteriores.
● Grado o vías asociativas (1 vía para la caché de mapeo directo).
● Función de correspondencia:

Conjunto de Caché=(Bloque de Memoria) MOD (Número de Conjuntos de Caché)

● Cada bloque de memoria central tiene un conjunto predefinido en el que


colocarse (mapeo directo).
● El número de conjuntos coincide con el número de bloques de caché.
● Dentro del conjunto, se puede colocar en cualquier bloque de caché.
(Totalmente asociativo).

Computer Structure 31 Higher Polytechnic School of Alcoy


Jerarquía de memoria

1. Conceptos básicos
1.7. Correspondencia: Caché asociativa por conjuntos

Ejemplo de caché asociativa (grado 4 o 4 vías)

Etiqueta 0 Bloque 0 Bloque


Bloque 0
128 …

Set 0
Etiqueta 1 Bloque 1
Etiqueta 2 Bloque 2
Etiqueta 3 Bloque 3


Set 127

Bloque Bloque
127 225

Computer Structure 32 Higher Polytechnic School of Alcoy


Jerarquía de memoria

1. Conceptos básicos
1.7. Correspondencia: Caché asociativa por conjuntos
Ejemplo de caché asociativa.
Ordenador con 4 MB de memoria principal, 4 KB de memoria caché, tamaño de bloque de 8
Bytes.
a) Número de bloques en la memoria caché y en la memoria principal.
4KB/8 = 512 bloques de caché, 4MB/8 = 219 bloques
b) Formato de las etiquetas y relación con el formato de las direcciones de la CPU cuando se utiliza
una caché asociativa de conjunto (grado 4). Para 4 MB, se necesitan 22 bits de dirección (222=4M). El
número de filas es 512/4=128, el número de columnas es 219/128 = 212
Dirección CPU
Etiqueta (12 bits por
Columna (12 bits) Fila (7 bits) Desplazamiento (3 bits)
columna)
c) ¿Dónde se almacenará en la caché la palabra de memoria principal de la dirección 2097189?
2097189 = 200025h = 1000000000000000100101b. Comparando con la plantilla de direcciones:
columna = 100000000000b = 2048, fila = 0000100b = 4, palabra = 101b

Computer Structure 33 Higher Polytechnic School of Alcoy


Jerarquía de memoria

1. Conceptos básicos
1.8. Algoritmos de Reemplazo

● Queremos recuperar datos de la memoria y almacenarlos en la caché.


● Todas las entradas de la caché están ocupadas.
● ¿Qué bloque reemplazamos? Política de sustitución. Determinar cuál de
varios bloques de caché existentes (en los que se puede mapear una
nueva línea de caché) debe sobrescribirse. Algoritmos:
○ Aleatorio
○ Primero que entra, primero que sale (FIFO)
○ Menos usado recientemente (Least Recently Used, LRU)
Implementado a nivel de hardware (transparente al usuario).

Computer Structure 34 Higher Polytechnic School of Alcoy


Jerarquía de memoria

1. Conceptos básicos
1.8. Algoritmos de Reemplazo

● Aleatorio
○ Muy simple, pero…
○ Un bloque al que se accede puede ser sustituido.
● Primero que entra - Primero que sale (FIFO)
○ Reemplaza aquellos bloques que están por más tiempo en la caché, sin tener
en cuenta si están siendo utilizados o no.
● Menos usado recientemente:
○ Es el que tiene mayor tasa de aciertos, pero su implementación es más
complicada.
○ Cada bloque de la caché tiene un contador.

Computer Structure 35 Higher Polytechnic School of Alcoy


Jerarquía de memoria

1. Conceptos básicos
1.8. Algoritmos de Reemplazo
Menos usado recientemente (LRU). Ejemplo, memoria caché con 4 bloques: B0, B1, B2, B3
(reemplazar por el contador más alto).

B0 B1 B2 B3 Acción

Initalización 3 3 3 3

Fallo 0 3 3 3 Llena B0

Fallo 1 0 3 3 Llenar B1

Acierto 0 1 3 3 Acceso a B0

Fallo 1 2 0 3 Llenar B2

Fallo 2 3 1 0 Llenar B3

Acierto 3 0 2 1 Acceso a B1

Fallo 0 1 3 2 B0 se reemplaza

Fallo 1 2 0 3 B2 se reemplaza

Computer Structure 36 Higher Polytechnic School of Alcoy


Jerarquía de memoria

2. Diseño de Sistema de Memoria


para Memoria Caché

Computer Structure Higher Polytechnic School of Alcoy


Jerarquía de memoria

2. Diseño de Sistema de Memoria para Memoria Caché

● Tamaño del bloque: Demasiado pequeño provoca muchos accesos a la memoria


principal. Demasiado grande aumenta la penalización por fallo y puede ocupar el
espacio de la caché con elementos de poca utilidad que se sustituyen antes de ser
utilizados.
● Asociatividad: El mapeo directo es sencillo y rápido. Una mayor asociatividad
conduce a una mayor complejidad y, por tanto, a un acceso más lento, pero tiende
a reducir las pérdidas por conflicto.
● Los fallos de caché obligatorios lanzan la recuperación de bloques de memoria
central.
● La recuperación de la memoria central lleva un tiempo que puede ser crucial.
● Solución: Diseño adecuado de la memoria central para minimizar ese tiempo.

Computer Structure 38 Higher Polytechnic School of Alcoy


Jerarquía de memoria

2. Diseño de Sistema de Memoria para Memoria Caché


2.1. Memorias de gran ancho de palabra

● Reducción del tiempo de transferencia aumentando el tamaño de la


palabra de memoria transferida desde la memoria central a la caché.
● Aumento del número de líneas en el bus: Sistema más caro.

Computer Structure 39 Higher Polytechnic School of Alcoy


Jerarquía de memoria

2. Diseño de Sistema de Memoria para Memoria Caché


2.2. Memorias entrelazadas

● Las palabras consecutivas se almacenan en diferentes módulos de


memoria: Se reduce la latencia.
● No se incrementa el número de líneas de bus.
● Se puede acceder a más de un módulo simultáneamente.
● Dirección: k LSB indica el módulo y m MSB la ubicación dentro del
módulo.

Computer Structure 40 Higher Polytechnic School of Alcoy


Jerarquía de memoria

2. Diseño de Sistema de Memoria para Memoria Caché


2.2. Memorias entrelazadas

Computer Structure 41 Higher Polytechnic School of Alcoy


Jerarquía de memoria

3. Memoria Virtual

Computer Structure Higher Polytechnic School of Alcoy


Jerarquía de memoria

3. Memoria Virtual
3.1. Introducción de la memoria virtual

● La memoria principal desempeña el papel de caché para la memoria


secundaria.
● Objetivos:
○ Compartir eficientemente la memoria entre los procesos activos.
○ Aumentar la cantidad de memoria disponible utilizando la memoria secundaria.
○ Ofrecer una capacidad de memoria "transparente" al programador. Un mismo
programa puede ejecutarse en máquinas con diferentes tamaños de memoria.
● Conceptos:
○ Dirección virtual y dirección física.
○ Página (bloque de memoria de tamaño fijo) y fallo de página.

Computer Structure 43 Higher Polytechnic School of Alcoy


Jerarquía de memoria

3. Memoria Virtual
3.2. Direcciones virtuales y físicas

● El rango de direcciones es mayor.


● Los programas utilizan direcciones virtuales (Virtual Addresses, VA).
● La memoria utiliza direcciones físicas (Phisical Addresses, PA).
● Mapeo de la memoria: correspondencia entre direcciones virtuales y
físicas. La traducción se realiza tanto por software como por hardware.
● Unidad de gestión de memoria (Memory Management Unit, MMU):
Unidad informática encargada del mapeo de la memoria.
● Cuestión crítica: traducción rápida de direcciones.

Computer Structure 44 Higher Polytechnic School of Alcoy


Jerarquía de memoria

3. Memoria Virtual
3.2. Direcciones virtuales y físicas
¿Cómo se traducen las direcciones?

Dividir la VA en número de página virtual y desplazamiento de página (ubicación intra


página).
Traduce el número de página virtual en número de página física.
El desplazamiento de página no se traduce.

Computer Structure 45 Higher Polytechnic School of Alcoy


Jerarquía de memoria

3. Memoria Virtual
3.3. Memoria paginada

● Dirección: Número de página virtual y desplazamiento de página.


● Las páginas se asignan a diferentes partes de la memoria real o se
almacenan en medios más densos (pero más lentos) (normalmente el
disco).
● El número de páginas virtuales y de páginas físicas no tiene por qué
ser el mismo.
● El rango de direcciones se divide en trozos llamados páginas.
● Cada proceso asigna una tabla de páginas:
○ Gestionada por el sistema operativo.
○ Asigna páginas virtuales a páginas físicas o a direcciones de
disco (swap).
Computer Structure 46 Higher Polytechnic School of Alcoy
Jerarquía de memoria

3. Memoria Virtual
3.3. Memoria paginada

● Una página puede estar ubicada en cualquier posición de memoria.


Para encontrar una página: Tabla de páginas (una tabla en la
memoria principal).
● Marco de página: memoria física lo suficientemente grande como
para contener una página.
● El espacio de direcciones virtual es contiguo, pero las páginas
pueden ser mapeadas en marcos arbitrarios.
● Ejemplo: Intel Core i7 utiliza direcciones virtuales de 48 bits y
direcciones físicas de 36 bits. La memoria física máxima es de 64 GB.

Computer Structure 47 Higher Polytechnic School of Alcoy


Jerarquía de memoria

3. Memoria Virtual
3.3. Memoria paginada
● All memory is divided into pages. Each program has its own page table. A page table
entry is required for each virtual memory page.
● Pages Table Register: location of the page table in memory.
● Validation bit: Indicates whether the page is in physical memory or not.
Ubicación dentro de
Bit de validación
Dirección virtual Página virtual
la página

Tabla de páginas

Si es 0, la página no está en la memoria


Ubicación dentro de
Dirección física Página física
la página

Computer Structure 48 Higher Polytechnic School of Alcoy


Jerarquía de memoria

3. Memoria Virtual
3.3. Memoria paginada
● Ejemplo de traducción:

Computer Structure 49 Higher Polytechnic School of Alcoy


Jerarquía de memoria

3. Memoria Virtual
3.3. Memoria paginada

● Ejemplo de traducción en sistemas multinivel:

Computer Structure 50 Higher Polytechnic School of Alcoy


Jerarquía de memoria

3. Memoria Virtual
3.3. Memoria paginada

● Fragmentación. Tamaño de página: ¿pequeño o grande?


● La memoria virtual introduce algunos costes porque la dirección
virtual debe traducirse a una dirección física.
● El uso de una sola tabla para asignar toda la memoria virtual a la
memoria real será lento. El número de accesos a la memoria se
duplica.
● El problema es aún mayor en sistemas con tablas de páginas de
varios niveles. Varias referencias de memoria para navegar por las
tablas de páginas.

Computer Structure 51 Higher Polytechnic School of Alcoy


Jerarquía de memoria

3. Memoria Virtual
3.3. Memoria paginada

● Solución: Añadir cachés para las tablas de páginas:


○ Translation Cache: Translation Lookaside Buffer (TLB).
○ El TLB es una caché que contiene las últimas traducciones de la
tabla de páginas. Puede contener también bits de control.
○ Cuando se emite una referencia de memoria, la dirección virtual
se envía primero al TLB para ver si ya contiene la traducción:
■ Sí: TLB hit, la TLB devuelve la dirección física y el acceso a la
memoria tiene lugar.
■ No: TLB miss, el sistema busca la traducción en la tabla de
páginas.

Computer Structure 52 Higher Polytechnic School of Alcoy


Jerarquía de memoria

3. Memoria Virtual
3.3. Memoria paginada
● Caché de traducción: Translation Lookaside Buffer (TLB)

Computer Structure 53 Higher Polytechnic School of Alcoy


Jerarquía de memoria

3. Memoria Virtual
3.3. Memoria paginada
examen

● Ejemplo: TLB con una tasa de aciertos del 95%, una penalización de
aciertos de 0 ciclos y una penalización de fallos de 150 ciclos, ¿ciclos
medios necesarios para una traducción de direcciones?

Ta=Thit*0.95+Tmiss*0.05 = 0 * 0.9 5 + 0.05 * 150 = 7.5 cycles

● Una mejora de 20 veces el tiempo de traducción sin la TLB.

Computer Structure 54 Higher Polytechnic School of Alcoy


Jerarquía de memoria

3. Memoria Virtual
3.3. Memoria paginada

● Ejemplo: Una CPU con direcciones virtuales de 46 bits y direcciones físicas


de 32 bits. Tamaño de página de 4 KB. Número de entradas en la TLB=256.
Bits de control para cada entrada: 1 bit de validez, 1 bit de cambio. ¿Cuántos
bits se necesitan para cada entrada de la TLB? ¿Tamaño de la TLB?

● Para cada entrada de traducción de la TLB, se requieren los siguientes bits: 2


bits de control (como se ha indicado anteriormente), 12 bits para el
desplazamiento de la página (4KB), 20 bits para el número de página física
(32 bits de dirección-12 bits de desplazamiento), 34 bits para la página virtual
(46 de la dirección virtual menos 12 del desplazamiento). Por lo tanto, cada
entrada de la TLB tiene 34+20+2=56 bits.
● Tamaño de la TLB = 56 bits * 256 = 14336 bits.

Computer Structure 55 Higher Polytechnic School of Alcoy


Jerarquía de memoria

3. Memoria Virtual
3.4. Memoria segmentada

● Rango de direcciones dividido en elementos de cualquier tamaño


llamados Segmentos.
● Unidad lógica desde el punto de vista del software.
● Tamaño variable:
○ A veces, es difícil encajar páginas en zonas libres de la memoria
física.
○ Mecanismo de control de tamaño máximo.
○ Traducción complicada.

Computer Structure 56 Higher Polytechnic School of Alcoy


Jerarquía de memoria

3. Memoria Virtual
3.5. Políticas de sustitución

● Cómo seleccionar la página a reemplazar en la memoria principal y


recuperar una nueva de una memoria de nivel jerárquico inferior.
● Cualquier política debe tratar de minimizar las tasas de fallo: no
reemplazar las páginas en uso.
● Algoritmos:
○ Primero en entrar, primero en salir (FIFO).
○ Menos utilizado (LRU).

Computer Structure 57 Higher Polytechnic School of Alcoy


Jerarquía de memoria

3. Memoria Virtual
3.6. Protección de la información

● Tenemos el espacio del usuario y el espacio del sistema.


● Concepto de protección: Un programa no debe poder modificar datos o
instrucciones de otro.
● Enfoques:
○ Dos estados de la CPU: supervisor (instrucciones privilegiadas) y
usuario.
○ Mecanismo para pasar al modo supervisor y al contrario.
○ Bits de control de página para indicar los privilegios.

Computer Structure 58 Higher Polytechnic School of Alcoy


Jerarquía de memoria

3. Memoria Virtual
3.7. Resumen de la jerarquía de la memoria

Memoria caché: Memoria principal: Memoria virtual:


Proporciona la ilusión de Coste razonable, pero Proporciona la ilusión de
una velocidad muy alta. lenta y pequeña. un tamaño muy grande

¡La localidad
hace que las
ilusiones
funcionen!

Movimiento de datos en una jerarquía de memoria

Computer Structure 59 Higher Polytechnic School of Alcoy


Jerarquía de memoria

Jerarquía de memoria
Estructura de computadores

Computer Structure 60 Higher Polytechnic School of Alcoy

También podría gustarte