Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Jerarquía de memoria
Estructura de computadores
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
…
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
1. Conceptos Básicos
1. Conceptos básicos
1.1. Concepto de Memoria Caché
1. Conceptos básicos
1.1. Concepto de Memoria Caché
Memoria Caché
Memoria Principal
1. Conceptos básicos
1.1. Concepto de Memoria Caché
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.
Conceptos básicos
PREGUNTA EXAMEN, X SITUACIÓN ES UN HIT O MISS?, Y LUEGO DECIR
1. EL TIPO
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
EJEMPLO:
L1 90%-->90ns
TOTAL--->280ns
Conceptos básicos
L2 9%-->90ns
1. MP 1%-->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.
1. Conceptos básicos
1.1. Concepto de Memoria Caché
1. Conceptos básicos
1.1. Concepto de Memoria Caché
1. Conceptos básicos
1.1. Concepto de Memoria Caché
1. Conceptos básicos
1.1. Concepto de Memoria Caché
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.
1. Conceptos básicos
1.3. Bloques de caché (línea de caché)
1. Conceptos básicos
1.4. Acceso a Información
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)
1. Conceptos básicos
1.5. Prefetching
1. Conceptos básicos
1.5. Prefetching
Enfoques:
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.
1. Conceptos básicos
1.7. Correspondencia
Se refiere a la relación entre los bloques de caché y los bloques de memoria principal.
1. Conceptos básicos
1.7. Correspondencia: Caché completamente asociativa
1. Conceptos básicos
1.7. Correspondencia: Caché completamente asociativa
Dirección CPU
● 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.
1. Conceptos básicos
1.7. Correspondencia: Caché completamente asociativa
Dirección CPU
Desplazamiento
Número del bloque (21 bits) 5 bits
Etiqueta (21 bits por bloque)
1. Conceptos básicos
1.7. Correspondencia: Caché de mapeo directo
1. Conceptos básicos
1.7. Correspondencia: Caché de mapeo directo
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.
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)
1. Conceptos básicos
1.7. Correspondencia: Caché de mapeo directo
1. Conceptos básicos
1.7. Correspondencia: Caché asociativa por conjuntos
1. Conceptos básicos
1.7. Correspondencia: Caché asociativa por conjuntos
Set 0
Etiqueta 1 Bloque 1
Etiqueta 2 Bloque 2
Etiqueta 3 Bloque 3
…
Set 127
Bloque Bloque
127 225
…
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
1. Conceptos básicos
1.8. Algoritmos de Reemplazo
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.
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
3. Memoria Virtual
3. Memoria Virtual
3.1. Introducción de la memoria virtual
3. Memoria Virtual
3.2. Direcciones virtuales y físicas
3. Memoria Virtual
3.2. Direcciones virtuales y físicas
¿Cómo se traducen las direcciones?
3. Memoria Virtual
3.3. Memoria paginada
3. Memoria Virtual
3.3. Memoria paginada
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
3. Memoria Virtual
3.3. Memoria paginada
● Ejemplo de traducción:
3. Memoria Virtual
3.3. Memoria paginada
3. Memoria Virtual
3.3. Memoria paginada
3. Memoria Virtual
3.3. Memoria paginada
3. Memoria Virtual
3.3. Memoria paginada
● Caché de traducción: Translation Lookaside Buffer (TLB)
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?
3. Memoria Virtual
3.3. Memoria paginada
3. Memoria Virtual
3.4. Memoria segmentada
3. Memoria Virtual
3.5. Políticas de sustitución
3. Memoria Virtual
3.6. Protección de la información
3. Memoria Virtual
3.7. Resumen de la jerarquía de la memoria
¡La localidad
hace que las
ilusiones
funcionen!
Jerarquía de memoria
Estructura de computadores