Get Started. It's Free
or sign up with your email address
Memoria by Mind Map: Memoria

1. Diseño Jerarquía Básica

1.1. Primeros modelos descartados por bajo rendimiento

1.2. Memoria organizada en niveles

1.2.1. Memoria caché

1.2.2. Memoria principal

1.2.3. Memoria virtual

1.3. Cada una

1.3.1. En un lugar físico distinto

1.3.2. Fabricado con tecnología diferente

1.3.3. Gestión de manera independiente

1.4. Ordenes de magnitud de capacidades y tiempo de acceso

1.5. Tecnologías y características de los diferentes niveles

2. Memoria Cache (MC)

2.1. Ubicada mismo chip que procesador

2.2. Fabricada con memoria RAM estática (SRAM)

2.2.1. Capas de mantener los datos sin circuitos de refresco

2.2.2. Memoria volátil

2.3. Controlada por el controlador de cache se encuentre en el mismo chip

2.4. Varios niveles de Caché

2.4.1. Nivel 1

2.4.2. Nivel 2

2.4.3. Nivel 3

2.5. Aciertos y fallos en acceso a la caché

2.5.1. Palabra a leer o escribir busca en MC

2.5.1.1. Palabra se encuentra en MC, acierto

2.5.1.2. No se encuentra palabra en MC, fallo

2.5.1.2.1. Penalización por fallo depende de latencia de MP y ancho de banda

2.5.2. Si palabra no esta en MC se trae bloque desde MP

2.5.3. Siempre fallos en cache produce

2.5.3.1. Principios de localidad

2.5.3.1.1. Localidad Espacial

2.5.3.1.2. Localidad Temporal

2.6. Diseño de la Memoria Caché

2.6.1. Almacena bloques denominados marcos

2.6.2. Determinar que bloque ocupa un marco se utiliza etiquetas o tags

2.6.3. Etiquetas se comparan con la que se esta buscando para saber si hay acierto o fallo

2.6.4. Aspectos básicos en el diseño

2.6.4.1. Organización de la memoria caché

2.6.4.2. Política de ubicación

2.6.4.3. Política de reemplazo

2.6.4.4. Política de escritura

2.7. Organización de la Memoria Caché

2.7.1. Tamaño de la memoria caché

2.7.1.1. Demasiado pequeña

2.7.1.1.1. Incrementa tasa de fallos

2.7.1.1.2. No captura bien la localidad

2.7.1.1.3. Fallos de capacidad

2.7.1.2. Demasiado grande

2.7.1.2.1. No integrable en el mismo chip que el procesador, consumo de área y potencia

2.7.1.2.2. Más lenta, más comparaciones de etiquetas

2.7.2. Tamaño del marco

2.7.2.1. Bloques grandes

2.7.2.1.1. Captura mejor localidad espacial

2.7.2.1.2. Reduce fallos iniciales

2.7.2.1.3. Aumenta penalización por fallos, más tiempo para traer bloque de otro nivel

2.7.2.2. Se debe llegar a un compromiso

2.7.2.2.1. Tener encuenta latencia y ancho de banda de conexión con la siguiente jerarquía

2.7.3. Unificación o división de instrucciones y datos

2.7.3.1. La segmentación del procesador obliga a la división en etapas F y M

2.7.3.2. Unificar bloques de información comunes de instrucciones y datos cuando no se trata el primer nivel

2.7.3.3. Decisiones con ayuda de herramientas de simulación con reglas empíricas y heurísticas

2.7.4. Implementación de cachés multinivel

2.7.4.1. Aspecto que influye en el rendimiento

2.7.4.2. Memoria caché de único nivel

2.7.4.2.1. Pequeña y rapida

2.7.4.2.2. Utilizar dos niveles de memoria caché

2.7.4.3. Nivel 1

2.7.4.3.1. Cerca al procesador

2.7.4.3.2. Pequeña y rápida

2.7.4.4. Nivel 2

2.7.4.4.1. Mayor tamaño

2.7.4.4.2. Principio de localidad

2.7.4.4.3. Más lenta pero menos fallos de capacidad

2.7.4.5. Penalización por fallos es menor, no va a la MP sino a la caché de nivel 2

3. Memoria Principal (MP)

3.1. Ubicado chip diferente al procesador

3.2. Fabricada con memoria RAM dinámica (DRAM)

3.2.1. Require refresco cada cierto tiempo

3.2.2. Funciona a gran velocidad

3.3. Controlada por el controlador de memoria principal

3.4. Controlador en el mismo chip que procesador y MC o chipset Norte o MCH

3.5. Aciertos y fallos en el acceso a la MP

3.5.1. Relación entre MP y MV similar a la MC y MP

3.5.2. MP divide en páginas

3.5.3. Fallos en página se accede a MV

3.5.4. Penalización mayor, acceso a MV más lenta de la jerarquía

3.5.5. Interviene SO en la gestión

3.6. Diseño Memoria Principal

3.6.1. Chips de memoria

3.6.1.1. Matrices cuadradas de celdas DRAM

3.6.1.2. Cada celda almacena un bit

3.6.2. Controlador memoria gestiona accesos

3.6.2.1. En propio procesador

3.6.2.2. Chipset

3.6.2.3. Hub externo

3.6.3. Mapea dirección física a ubicación física

3.6.3.1. Chip+matrices+filas+columnas=bits a recupera

3.6.4. Evolución memoria desde DRAM a la actuales DDR3

3.6.4.1. DRAM convencional

3.6.4.1.1. Modelo obsoleto

3.6.4.1.2. Actuales mejores sobre la misma

3.6.4.1.3. Proceso acceso a memoria

3.6.4.1.4. Desaprovechamiento de recursos

3.6.4.2. FPM DRAM

3.6.4.2.1. Fast Page Mode DRAM

3.6.4.2.2. División de memoria en páginas

3.6.4.2.3. Accesos a la misma página requiere menos ciclos de espera

3.6.4.2.4. Acceso modo burst

3.6.4.3. SDRAM o DRAM Sincrónica

3.6.4.3.1. Tecnologías anteriores asincrónas, introduciendo latencias y retardos innecesarios

3.6.4.3.2. Utiliza reloj global del sistema

3.6.4.3.3. Funciona en modo 5-1-1-1

3.6.4.3.4. Funcionan con frecuencias superiores a 66 MHz

3.6.4.3.5. Tiempo acceso entre 25 y 10 ns

3.6.4.4. DDR

3.6.4.4.1. Double Data Rate

3.6.4.4.2. Transfiere información dos veces en cada ciclo de reloj

3.6.4.4.3. Se llega a los 400MHz

3.6.4.5. DDR2

3.6.4.5.1. Trabaja a mayores frecuencias

3.6.4.5.2. Se reduce tensión de alimentación a 1,8v

3.6.4.6. DDR3

3.6.4.6.1. Velocidad a 1900MHz

3.6.4.6.2. Reduce tensión de alimentación

4. Memoria Virtual (MV)

4.1. Ubicada en el disco duro

4.2. Fabricada con tecnología magnética

4.3. Controlado desde el sistema operativo a través de controlador de disco duro

4.4. Diseño memora virutal

4.4.1. Introduce jerarquía de memoria

4.4.1.1. Permite multiprogramación=protección

4.4.1.2. Ejecuta procesos más grandes que MP

4.4.1.3. Independencias a referencias con respecto a localización de procesos de MP

4.4.2. MV no solo se controla por hardware

4.4.3. Tecnología de MV es almacenamiento magnético

4.4.4. Unidad de información es segmento o página mayor que MC y MP

4.4.5. Alojamiento asociativo

4.4.6. Política de escritura en post-escritura

4.4.7. Más compleja y difícil de gestionar

4.4.8. Latencia en orden de ms

4.4.9. Fallo de página implica cambio de contexto evitar penalización

4.4.10. Decisiones claves

4.4.10.1. Tamaño de página suficientemente grande para amortizar tiempo de acceso

4.4.10.2. Políticas que reduce el número de fallos de página, tecnología asociativa

4.4.10.3. Fallos de página se manejan por software

4.4.10.4. Emplea post-escritura

4.5. Organización Memoria Virtual

4.5.1. Dirección Virtual

4.5.1.1. Dirección generada por el procesador

4.5.2. Dirección Física

4.5.2.1. Dirección que maneja la unidad de memoria

4.5.3. Memory Management Unit (MMU)

4.5.3.1. Traduce direcciones virtuales a direcciones físicas

4.5.3.2. Trabaja en tiempo de ejecución y manera transparente al CPU

4.6. Asignación de Memoria

4.6.1. Métodos de asignación de memoria

4.6.1.1. Paginación

4.6.1.1.1. Tamaño fijo bloque de información

4.6.1.2. Segmentación

4.6.1.2.1. Tamaño variable bloque de información

4.6.1.3. Técnica híbrida

4.6.1.3.1. Paginada/segmentada

4.6.1.3.2. Segmentos números entero de páginas

5. Propiedades de una jerarquía de memoria

5.1. Inclusión

5.1.1. Información en un nivel de estar en los niveles superiores

5.2. Coherencia

5.2.1. Copias entre los diferentes niveles deben ser coherentes entre sí, mismo valores

5.3. Correspondencia de direcciones

5.3.1. Entre los distintos niveles de la jerarquía

6. Mecanismo Completo de Acceso a Memoria

6.1. Pasos

6.1.1. 1 Traducción dirección virtual a dirección física

6.1.2. 2 Traducción con éxito, existe en MC, se accede a MC

6.1.3. 3 Tipos de fallos MC

6.1.3.1. Iniciales

6.1.3.1.1. Referencia palabra por primera vez

6.1.3.2. Capacidad

6.1.3.2.1. Se produce reemplazos

6.1.3.3. Conflicto

6.1.3.3.1. varios bloques misma ubicación en MC

6.1.4. 4 Caso de Fallo

6.1.4.1. Pasar por el controlador de MP, buscando la dirección física

6.1.5. 5 Controlador Planificará acceso a MP, ya que otros dispositivos también accede a MP

6.1.6. 6 En caso de Acierto

6.1.6.1. Bloque que incluye palabra se envía a MC

6.1.7. 7 En caso de fallo

6.1.7.1. Resuelve fallo de página desde la MV

6.1.8. 8 SO realiza cambio de contexto y pasa a ejecutar otro procesador

6.1.9. 9 Página esta en MP, lleva bloque a MC y reanuda ejecución de instrucción que provocó fallo

6.2. Caso de tener dos MC

6.2.1. Mecanismo de acceso es el mismo

6.2.2. Si falla acceso al primer nivel de cáche, primero de intenta resolver desde el segundo

6.3. Si la palabra esta en segundo nivel

6.3.1. Se envia bloque completo al primer nivel

6.3.2. Completa acceso sin salir del clip del procesador

6.4. Caso de fallo intentar desde MP

6.5. Siguiendo principio de inclusión

6.5.1. Bloque de fallo se lleva desde MP a caché de segundo nivel y luego a la de primer nivel

6.6. Caso de procesador segmentado

6.6.1. Todos los pasos hasta llegar a MP

6.6.2. Se completa en un ciclo de reloj

6.7. Mecanismo Completo de acceso a memoria

6.8. Acceso a memoria

7. Evaluación de Prestaciones de la Jerarquía de Memoria

7.1. Se debe Conocer

7.1.1. Tiempo de acierto de la MC

7.1.2. Tasa de fallos de la MC

7.1.3. Penalización por fallo en MC

7.1.4. Tiempo invertido en acceder a la memoria se suma al tiempo de CPU

7.2. Métricas para memoria principal o virtual

7.2.1. Latencia

7.2.1.1. Tiempo que transcurre desde un acceso a memoria hasta que finaliza. Depende de la tecnología

7.2.2. Ancho de banda

7.2.2.1. cantidad de información que se puede enviar en una unidad de tiempo

8. Política de Ubicación MC

8.1. Memoria caché dos determinados bloques de información

8.2. Un bloque puede alojarse en un marco

8.3. Tasa de fallo vs. Tiempo de acceso

8.3.1. Correspondencia directa

8.3.1.1. Un bloque de MP le corresponde un bloque de MC

8.3.1.2. Correspondencia en MP y MC

8.3.1.2.1. Dirección Física

8.3.1.2.2. Tamaño de bloque

8.3.1.2.3. Capacidad MC

8.3.1.2.4. Capacidad MP

8.3.1.3. Ventajas

8.3.1.3.1. Lectura acceso simultaneo a directorio y palabra dentro de MC

8.3.1.3.2. Algoritmo de reemplazo trivial

8.3.1.4. Inconvenientes

8.3.1.4.1. Incremento de tasa de fallos cuando dos bloques MP corresponde el mismo MC

8.3.1.4.2. Se accede en forma alternativa

8.3.2. Totalmente asociativa

8.3.2.1. Cualquier bloque de MP se puede ubicar en cualquier bloque de MC

8.3.2.2. Las etiquetas se comparas con todas las de la caché

8.3.2.3. Ventajas

8.3.2.3.1. Flexibilidad, algoritmos de reemplazo

8.3.2.3.2. Mayor tasa de aciertos

8.3.2.4. Inconvenientes

8.3.2.4.1. Mayor tiempo de acceso

8.3.3. Asociativa por conjuntos

8.3.3.1. Dividir la MC en C conjuntos de B bloques

8.3.3.2. Se Aplica

8.3.3.2.1. Correspondencia directa nivel de conjuntos

8.3.3.2.2. Correspondencia asociativa nivel bloques

8.3.3.3. Solución intermedia

8.3.3.4. Reduce tiempo de acceso de la totalmente asociativa

8.3.3.5. Incrementa tasa de aciertos de la directa

9. Políticas de Reemplazo MC

9.1. Fallo en la MC, necesita desalojar un bloque de MC para traer bloque de MP

9.2. MC con correspondencia directa solo se desaloja un bloque

9.3. La selección reduce tasa de fallos a accesos posteriores a MC

9.4. A tener en cuenta

9.4.1. Probabilidad de uso de una página

9.4.2. Coste intercambio

9.5. Algoritmos

9.5.1. Aleatorio

9.5.1.1. Generador números aletorios, escoge bloque a reemplazar

9.5.1.2. Más sencilla de implementar

9.5.1.3. Menos costosa

9.5.2. FIFO

9.5.2.1. First in first out

9.5.2.2. Reemplazar bloque que a estado mayor periodo de tiempo en MC

9.5.2.3. Más costosa con mayor número de bloques

9.5.2.4. Tiene una lista ordenada

9.5.3. LRU

9.5.3.1. Least recently used

9.5.3.2. Reemplaza el bloque memos usada recientemente

9.5.3.3. Más complejo y costoso a nivel de recursos

9.5.3.4. Ofrece mejores resultados

10. Política de escritura MC

10.1. Escritura no puede realizar trabajo paralelo

10.2. Políticas

10.2.1. Escritura directa

10.2.1.1. Write through

10.2.1.2. Se escribe en primer nivel MC y siguiente nivel de jerarquía

10.2.1.3. En fallo, trae bloque de MP a MC, y se realiza la escritura

10.2.1.4. Ventajas

10.2.1.4.1. Fácil de implementar

10.2.1.4.2. Asegurar la coherencia

10.2.1.5. Inconvenientes

10.2.1.5.1. Genera mucho tráfico a memoria

10.2.1.5.2. Procesador espera a que complete escritura

10.2.2. Post-escritura

10.2.2.1. Write back

10.2.2.2. Modifica solo primer nivel de caché

10.2.2.3. Se activa bit sucio para indicar bloque modificado

10.2.2.4. Escritura en MP cuando bloque sucio en MC se reemplaza

10.2.2.5. Ventajas

10.2.2.5.1. Menos tráfico de información

10.2.2.5.2. Aciertos en escritura a velocidad de MC

10.2.2.6. Inconvenientes

10.2.2.6.1. Diseño más complejo, requiere más recursos

10.2.2.7. Por fallos mejor la escritura directa

10.3. Fallo de Escritura

10.3.1. Acceso a MC para escribir y bloque no se encuentra

10.4. Escritura con Ubicación

10.4.1. Write with allocate

10.4.2. Asociado con post-escritura

10.4.3. Lleva MP a MC donde realiza escritura

10.5. Escritura sin Ubicación

10.5.1. Writr with no allocate

10.5.2. Asociado con escritura directa

10.5.3. Sólo se escribe sobre MP

11. Esquema de traducción de direcciones

12. Paginación I (MV)

12.1. Gestiona hardware y SO

12.2. Importante reducir fallos de página

12.3. Problema en ubicación totalmente asociativa radica en localizar entrada

12.3.1. Búsqueda completa es impracticable

12.4. Localizan páginas por medio de tablas indexadas a memoria

12.5. Tabla de páginas y reside en memoria

12.6. Direcciones virtuales de un proceso no es contiguo

12.7. Marcos

12.7.1. Memoria física divide en bloques de tamaño fijo

12.8. Páginas

12.8.1. Memoria virtual divide en bloque del mismo tamaño

12.9. Se tiene lista de todos los marcos libres

12.10. Ejecución programa

12.10.1. Tener n páginas libres y n marcos libres para cargar programa

12.10.2. Luego inicializar tabla de páginas para pasar direcciones virtuales a físicas

12.11. Ubicación y búsqueda de páginas

12.11.1. Por la ubicación totalmente asociativa, SO implementa algoritmos de reemplaza para reducir fallos

12.11.2. Dificultad radica en encontrar entrada, búsqueda exhaustiva es impracticable

12.11.3. Tabla de página en memoria

12.11.3.1. Indexada número de página de la dirección virtual

12.11.3.2. Página física ubicación página virtual buscada

12.11.4. Cada programa tiene su tabla de páginas

12.11.5. Page Table Regiter

12.11.5.1. Localización de tabla en MP, hardware tiene apuntador al comienzo de la tabla

12.11.6. Evitar colisiones el SO

12.11.6.1. Asigna la memoria física

12.11.6.2. Actualizar tablas de páginas

12.11.7. Bit válido

12.11.7.1. Para indicar si página esta o no presente en MP

12.11.7.1.1. OFF

12.11.7.1.2. ON

13. Paginación II (MV)

13.1. Esquema de traducción de direcciones

14. Fallo de Página (MV)

14.1. Bit válido en off hay un fallo

14.2. Mecanismo de excepción tiene el SO

14.3. SO tiene el control

14.3.1. Busca página en disco magnético

14.3.2. Decidir marco en MP para página

14.4. Control en disco de las páginas virtuales

14.5. Swap space espacio para páginas en disco reservado por SO

14.6. SO crea estructura de datos para almacenar ubicación en disco

14.6.1. Estructura puede formar parte de la tabla o ser estructura auxiliar

14.7. SO almacena procesos y direcciones virtuales en estructura de datos

14.8. Páginas físicas ocupadas, SO emplea algoritmo LRU

14.9. Bit de referencia o uso para ayudar al SO, 1 si se accede a la página

14.10. Write-back página ha sido modificada, solo se modifica en MP y copia a disco

14.11. Dirty bit página ha sido modificada en tablas de páginas

14.12. Fallo de pagina

15. Protección (MV)

15.1. Procesos comparten MP, evitar lectura o escritura a zonas de memoria fuera de proceso

15.2. Bit de permiso de escritura en TLB protege a la página

15.3. Hardware proporciona al SO

15.3.1. Dos modos de ejecución

15.3.1.1. supervisor

15.3.1.1.1. Usuario

15.3.2. Proporcionar estado solo lectura de una parte del procesador

15.3.2.1. Bit de modo usuario/supervisor

15.3.2.2. Puntero de tablas de páginas

15.3.2.3. TLB

15.3.2.4. Instrucciones especiales en modo supervisor

15.3.2.5. Cambio de modo usuario a modo supervisor: syscall exception

15.3.2.5.1. Se salva PC en registro EPC

15.3.2.5.2. Poner procesador en modo supervisor

15.3.2.5.3. Volver modo usuario dirección almacenada EPC, utiliza instrucción ERET

15.4. Tablas páginas almacenadas en espacio direcciones en SO

16. Optimización de la traducción de direcciones: TLB (MV)

16.1. Tablas en MP, acceso a memoria por programa al menos dos accesos a memoria

16.2. Principio de localidad, traducción de una página virtual a física debería consevarse

16.3. Procesadores actuales incluyen caché especial que tiene traducciones recientemente utilizadas

16.4. Caché de traducciones de direcciones: translation-lookaside buffer (TLB)

16.5. Hardware de paginación con TLB

16.6. Se busca si cada traducción está en el TLB

16.6.1. TLB Hit: traducción si esta en TLB

16.6.1.1. Ahorro de acceso a memoria

16.6.1.2. Comprobar bit valido, 0=page fault pagina no esta en memoria

16.6.1.2.1. Procesador genera excepción para invocar SO, para resolver fallo

16.6.1.3. Bit válido está en 1, produce actualización bit de referencia y bit sucio (escrituta)

16.6.2. TLB Miss: traducción no está en TLB genera excepción

16.6.2.1. No se ahorra acceso a memoria

16.6.2.2. Traer traducción de tabla de página sin comprobar bit válido

16.6.2.3. Re-ejecuta instrucción, traducción si estará

16.6.2.4. TLB miss se atiende por harware como software

16.7. Utilizs write-back, bits de información copian en la tabla de páginas, entrada en TLB es reemplazada

16.8. Diseños TLB tiene combinaciones:

16.8.1. LRU por hardware muy caro, tampoco por software

16.8.2. Soporte para selección de entrada aleatoria (random)

17. Thrashing-Working set (MV)

17.1. Programa accede a MV mayor que MP disponible, ejecución muy despacio

17.2. Thrashing

17.2.1. Programa intercambirá páginas constantemente entre memoris y disco

17.2.2. Programa entra en thrashing, mejor ejecutar en una máquina con más memoria o añadir más memoria

17.2.3. Alternativa, rediseñar algoritmos y estructuras de datos del programa, trata de reducir páginas utilizadas simultaneas, reducción working set