1. Propiedades de una jerarquía de memoria
1.1. Inclusión: cualquier información contenida en un nivel de la jerarquía debe estar también en los niveles superiores
1.2. Coherencia: almacenan los mismos valores
1.3. Debe haber una correspondencia de direcciones entre los distintos niveles de la jerarquía
2. Aciertos y fallos en el acceso a la caché
2.1. La palabra a leer o escribir se busca en MC
2.1.1. Si la palabra se encuentra en caché, acierto
2.1.2. Si no se encuentra en caché, fallo.
2.2. Si la palabra no se encuentra en la MC, se trae un bloque que contiene dicha palabra desde la MP
2.3. Principio de Localidad
2.3.1. Localidad espacial
2.3.1.1. Si se referencia un elemento, los elementos cercanos a él también tenderán a ser referenciados.
2.3.1.2. La jerarquía de memoria mueve bloque con palabras contiguas en memoria a los niveles más altos de la jerarquía
2.3.1.3. Operaciones con matrices y arrays, ejecución secuencial de un programa
2.3.2. Localidad temporal
2.3.2.1. Si se referencia un elemento, este tenderá a ser referencia pronto
2.3.2.2. La jerarquía de memoria mantiene los datos accedidos recientemente lo más cerca posible del procesador
2.3.2.3. Estructura de los programas: datos y bucles
3. Aciertos y fallos en el acceso a la MP
3.1. Relación entre MP y MV similar a la existente entre MC y MP
3.2. La MP se divide en páginas o segmentos
3.3. Cuando se produce un fallo de página o segmento, se debe acceder a la MV
3.4. La penalización en este caso es mayor ya que la MV es la más lenta de la jerarquía
3.5. En la gestión de este nivel interviene el SO.
4. Evaluación de prestaciones de la jerarquía de memoria
4.1. tMEM = taciertoMC + TF • pF
4.2. taciertoMC: Tiempo de acierto de la MC
4.3. TF: Tasa de fallos de la MC
4.4. TF = núm de fallos / núm total accesos a memoria
4.5. pF: Penalización por fallo en MC
4.6. t = tCPU + tMEM
4.7. Métricas que suelen utilizarse con la memoria principal o la memoria virtual
4.7.1. Latencia: tiempo que pasa desde un acceso a memoria comienza hasta que finaliza
4.7.2. Ancho de banda: cantidad de información por unidad de tiempo
5. Organización de la memoria caché
5.1. Tamaño de la memoria caché
5.2. Tamaño de marco
5.3. Unificación o división de las instrucciones y los datos
5.4. Implementación de cachés multinivel
5.5. Unificación o división
5.6. Multinivel
5.6.1. L1
5.6.2. L2
5.6.3. L3
6. Buffer de escritura
6.1. Estructura hardware en la que se realizan las escrituras en primera instancia
6.2. Estructura pequeña y rápida organizada como una memoria caché
7. Diseño de la memoria principal
7.1. Chips de memoria
7.2. El controlador de memoria gestiona los accesos
7.3. Mapea la dirección física a ubicación física
8. DRAM convencional
8.1. Modelo obsoleto
8.2. Las actuales son el resultado de aplicar mejoras y optimizaciones sobre la misma
9. FPM DRAM
9.1. División de la memoria en páginas
9.2. Los accesos que se encuentran en la misma página requieren menos ciclos de espera
10. SDRAM o DRAM Sincrónica
10.1. q La tecnología de memoria actual es síncrona, utilizando el reloj global del sistema
10.2. Las memoria pueden funcionar en modo 5-1-1-1
11. Fallo de página
11.1. Si el bit de válido está a off ---> se produce un fallo de página
11.2. Se debe transferir el control al SO: mecanismo de excepción
11.3. Para saber si una página ha sido modificada, a la tabla de páginas se le añade el dirty bit
12. Protección
12.1. Un bit de permiso de escritura en el TLB puede proteger a una página de ser escrita
13. Optimización de la traducción de direcciones: TLB
13.1. Como las tablas de páginas están almacenadas en la MP
14. TLB miss
14.1. Los fallos de página en el acceso a datos son más complicados
14.1.1. Ocurren en mitad de la ejecución de la instrucción
14.1.2. La instrucción no se puede completar antes de resolver la excepción
14.1.3. Después de tratar la excepción, la instrucción debe comenzar su ejecución de nuevo como si nada hubiera ocurrido
15. Fallo de página
15.1. Cuando se produce un fallo de página se transfiere el control a la dirección 0X8000 0180
16. Jerarquía de memoria
16.1. Mecanismo de acceso de memoria
16.2. Diseño y evaluación del rendimiento de la jerarquía de memoria
16.3. Aspectos tecnológicos y de diseño de los distintos niveles de la jerarquía de memoria
17. Diseño de una jerarquía de memoria básica
17.1. Memoria caché
17.1.1. (MC) Ubicada en el mismo chip que el procesador
17.1.2. Fabricada con memoria RAM estática (SRAM).
17.1.3. Controlada por el controlador de caché incluido en el mismo chip
17.1.4. Existen varios niveles de caché
17.2. Memoria caché
17.2.1. (MP) Ubicada en un chip diferente al procesador.
17.2.2. Fabricada con memoria RAM dinámica (DRAM).
17.2.3. Controlada por el controlador de memoria principal que se encarga de planificar los accesos a la misma
17.2.4. El controlador puede ubicarse en el mismo chip que el procesador y la memoria caché
17.3. Memoria Virtual
17.3.1. (MV) Ubicada en el disco duro
17.3.2. Fabricada con tecnología magnética.
17.3.3. Se controla desde el sistema operativo a través del controlador de disco duro
17.4. Órdenes de magnitud de capacidades y tiempos de acceso
17.4.1. CPU
17.4.1.1. Banco de Registros
17.4.1.1.1. Byte/KByte
17.4.2. Caché
17.4.2.1. KByte/MByte
17.4.2.1.1. ~1 ns
17.4.3. Memoria principal
17.4.3.1. MByte/GByte
17.4.3.1.1. ~100 ns
17.4.4. Memoria virtual
17.4.4.1. GByte/TByte
17.4.4.1.1. ~5 ms
18. Mecanismo completo de acceso a memoria
18.1. Se traduce la dirección virtual a una dirección física
18.2. Si se traduce con éxito, es porque la palabra se encuentra en MP. Con esta dirección se accede a la memoria caché
18.3. Tipos de fallos en la MC
18.3.1. Iniciales, cuando se referencia una palabra por primera vez
18.3.2. De capacidad, cuando se producen reemplazos
18.3.3. De conflicto, varios bloques tienen asignada la misma ubicación en memoria caché
18.4. En caso de fallo, hay que pasar por el controlador de MP, que mapeará la dirección física buscada a la ubicación física de la palabra dentro de los chips DRAM
18.5. El controlador planificará el acceso a la MP puesto que otros dispositivos también acceden a la MP
18.6. En caso de acierto, el bloque que incluye la palabra se envía a la MC
18.7. En caso de fallo, se debe resolver el fallo de página o segmento desde la memoria virtual
18.8. El SO realiza un cambio de contexto y pasa a ejecutar otro proceso
18.9. Una vez que la página o el segmento está en MP, se lleva el bloque correspondiente a MC y se reanuda la ejecución de la instrucción que provocó el fallo
19. Diseño de la memoria caché
19.1. Almacena unos determinados bloques de información denominados marcos
19.2. Para determinar qué bloque está ocupando un determinado marco, se utilizan etiquetas o tags
19.3. Las etiquetas se comparan con la del bloque buscado para indicar si se ha producido un acierto o un fallo
19.4. Aspectos básicos de su diseño
19.4.1. Organización de la memoria caché
19.4.2. Política de ubicación
19.4.3. Política de reemplazo
19.4.4. Política de escritura
20. Política de ubicación
20.1. La memoria caché sólo almacena unos determinados bloques de información
20.2. Correspondencia directa
20.2.1. A cada bloque de memoria principal solo le corresponde un marco de memoria caché
20.2.2. Ventajas
20.2.2.1. La lectura permite el acceso simultáneo al directorio y a la palabra dentro del bloque de MC
20.2.3. Inconvenientes
20.2.3.1. Incremento de la tasa de fallos cuando dos bloques de MP
20.3. Totalmente asociativa
20.3.1. Cualquier bloque de MP se puede ubicar en cualquier bloque de MC
20.3.2. Ventajas
20.3.2.1. Flexibilidad
20.3.3. Inconvenientes
20.3.3.1. Mayor tiempo de acceso
20.4. Asociativa por conjuntos
20.4.1. Dividir la MC en C conjuntos de B bloqueso vías
21. Políticas de reemplazo
21.1. Cuando se produce un fallo en MC hay que determinar qué bloque de MC desalojar para traer el bloque que ha producido el fallo desde MP
21.2. Algoritmos más utilizados
21.2.1. Aleatorio
21.2.2. FIFO
21.2.3. LRU
22. Políticas de escritura
22.1. Las escrituras llevan más tiempo puesto que no se puede realizar trabajo en paralelo
22.2. Políticas
22.2.1. Escritura directa
22.2.2. Post-escritura