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

1. Memoria Cache (MC)

1.1. Ubicada mismo chip que procesador

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

1.2.1. Capas de mantener los datos sin circuitos de refresco

1.2.2. Memoria volátil

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

1.4. Varios niveles de Caché

1.4.1. Nivel 1

1.4.2. Nivel 2

1.4.3. Nivel 3

1.5. Aciertos y fallos en acceso a la caché

1.5.1. Palabra a leer o escribir busca en MC

1.5.1.1. Palabra se encuentra en MC, acierto

1.5.1.2. No se encuentra palabra en MC, fallo

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

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

1.5.3. Siempre fallos en cache produce

1.5.3.1. Principios de localidad

1.5.3.1.1. Localidad Espacial

1.5.3.1.2. Localidad Temporal

1.6. Diseño de la Memoria Caché

1.6.1. Almacena bloques denominados marcos

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

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

1.6.4. Aspectos básicos en el diseño

1.6.4.1. Organización de la memoria caché

1.6.4.2. Política de ubicación

1.6.4.3. Política de reemplazo

1.6.4.4. Política de escritura

1.7. Organización de la Memoria Caché

1.7.1. Tamaño de la memoria caché

1.7.1.1. Demasiado pequeña

1.7.1.1.1. Incrementa tasa de fallos

1.7.1.1.2. No captura bien la localidad

1.7.1.1.3. Fallos de capacidad

1.7.1.2. Demasiado grande

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

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

1.7.2. Tamaño del marco

1.7.2.1. Bloques grandes

1.7.2.1.1. Captura mejor localidad espacial

1.7.2.1.2. Reduce fallos iniciales

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

1.7.2.2. Se debe llegar a un compromiso

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

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

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

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

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

1.7.4. Implementación de cachés multinivel

1.7.4.1. Aspecto que influye en el rendimiento

1.7.4.2. Memoria caché de único nivel

1.7.4.2.1. Pequeña y rapida

1.7.4.2.2. Utilizar dos niveles de memoria caché

1.7.4.3. Nivel 1

1.7.4.3.1. Cerca al procesador

1.7.4.3.2. Pequeña y rápida

1.7.4.4. Nivel 2

1.7.4.4.1. Mayor tamaño

1.7.4.4.2. Principio de localidad

1.7.4.4.3. Más lenta pero menos fallos de capacidad

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

2. Memoria Principal (MP)

2.1. Ubicado chip diferente al procesador

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

2.2.1. Require refresco cada cierto tiempo

2.2.2. Funciona a gran velocidad

2.3. Controlada por el controlador de memoria principal

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

2.5. Aciertos y fallos en el acceso a la MP

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

2.5.2. MP divide en páginas

2.5.3. Fallos en página se accede a MV

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

2.5.5. Interviene SO en la gestión

2.6. Diseño Memoria Principal

2.6.1. Chips de memoria

2.6.1.1. Matrices cuadradas de celdas DRAM

2.6.1.2. Cada celda almacena un bit

2.6.2. Controlador memoria gestiona accesos

2.6.2.1. En propio procesador

2.6.2.2. Chipset

2.6.2.3. Hub externo

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

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

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

2.6.4.1. DRAM convencional

2.6.4.1.1. Modelo obsoleto

2.6.4.1.2. Actuales mejores sobre la misma

2.6.4.1.3. Proceso acceso a memoria

2.6.4.1.4. Desaprovechamiento de recursos

2.6.4.2. FPM DRAM

2.6.4.2.1. Fast Page Mode DRAM

2.6.4.2.2. División de memoria en páginas

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

2.6.4.2.4. Acceso modo burst

2.6.4.3. SDRAM o DRAM Sincrónica

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

2.6.4.3.2. Utiliza reloj global del sistema

2.6.4.3.3. Funciona en modo 5-1-1-1

2.6.4.3.4. Funcionan con frecuencias superiores a 66 MHz

2.6.4.3.5. Tiempo acceso entre 25 y 10 ns

2.6.4.4. DDR

2.6.4.4.1. Double Data Rate

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

2.6.4.4.3. Se llega a los 400MHz

2.6.4.5. DDR2

2.6.4.5.1. Trabaja a mayores frecuencias

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

2.6.4.6. DDR3

2.6.4.6.1. Velocidad a 1900MHz

2.6.4.6.2. Reduce tensión de alimentación

3. Memoria Virtual (MV)

3.1. Ubicada en el disco duro

3.2. Fabricada con tecnología magnética

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

3.4. Diseño memora virutal

3.4.1. Introduce jerarquía de memoria

3.4.1.1. Permite multiprogramación=protección

3.4.1.2. Ejecuta procesos más grandes que MP

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

3.4.2. MV no solo se controla por hardware

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

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

3.4.5. Alojamiento asociativo

3.4.6. Política de escritura en post-escritura

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

3.4.8. Latencia en orden de ms

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

3.4.10. Decisiones claves

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

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

3.4.10.3. Fallos de página se manejan por software

3.4.10.4. Emplea post-escritura

3.5. Organización Memoria Virtual

3.5.1. Dirección Virtual

3.5.1.1. Dirección generada por el procesador

3.5.2. Dirección Física

3.5.2.1. Dirección que maneja la unidad de memoria

3.5.3. Memory Management Unit (MMU)

3.5.3.1. Traduce direcciones virtuales a direcciones físicas

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

3.6. Asignación de Memoria

3.6.1. Métodos de asignación de memoria

3.6.1.1. Paginación

3.6.1.1.1. Tamaño fijo bloque de información

3.6.1.2. Segmentación

3.6.1.2.1. Tamaño variable bloque de información

3.6.1.3. Técnica híbrida

3.6.1.3.1. Paginada/segmentada

3.6.1.3.2. Segmentos números entero de páginas

4. Propiedades de una jerarquía de memoria

4.1. Inclusión

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

4.2. Coherencia

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

4.3. Correspondencia de direcciones

4.3.1. Entre los distintos niveles de la jerarquía

5. Mecanismo Completo de Acceso a Memoria

5.1. Pasos

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

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

5.1.3. 3 Tipos de fallos MC

5.1.3.1. Iniciales

5.1.3.1.1. Referencia palabra por primera vez

5.1.3.2. Capacidad

5.1.3.2.1. Se produce reemplazos

5.1.3.3. Conflicto

5.1.3.3.1. varios bloques misma ubicación en MC

5.1.4. 4 Caso de Fallo

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

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

5.1.6. 6 En caso de Acierto

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

5.1.7. 7 En caso de fallo

5.1.7.1. Resuelve fallo de página desde la MV

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

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

5.2. Caso de tener dos MC

5.2.1. Mecanismo de acceso es el mismo

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

5.3. Si la palabra esta en segundo nivel

5.3.1. Se envia bloque completo al primer nivel

5.3.2. Completa acceso sin salir del clip del procesador

5.4. Caso de fallo intentar desde MP

5.5. Siguiendo principio de inclusión

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

5.6. Caso de procesador segmentado

5.6.1. Todos los pasos hasta llegar a MP

5.6.2. Se completa en un ciclo de reloj

5.7. Mecanismo Completo de acceso a memoria

5.8. Acceso a memoria

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

6.1. Se debe Conocer

6.1.1. Tiempo de acierto de la MC

6.1.2. Tasa de fallos de la MC

6.1.3. Penalización por fallo en MC

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

6.2. Métricas para memoria principal o virtual

6.2.1. Latencia

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

6.2.2. Ancho de banda

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

7. Política de Ubicación MC

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

7.2. Un bloque puede alojarse en un marco

7.3. Tasa de fallo vs. Tiempo de acceso

7.3.1. Correspondencia directa

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

7.3.1.2. Correspondencia en MP y MC

7.3.1.2.1. Dirección Física

7.3.1.2.2. Tamaño de bloque

7.3.1.2.3. Capacidad MC

7.3.1.2.4. Capacidad MP

7.3.1.3. Ventajas

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

7.3.1.3.2. Algoritmo de reemplazo trivial

7.3.1.4. Inconvenientes

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

7.3.1.4.2. Se accede en forma alternativa

7.3.2. Totalmente asociativa

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

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

7.3.2.3. Ventajas

7.3.2.3.1. Flexibilidad, algoritmos de reemplazo

7.3.2.3.2. Mayor tasa de aciertos

7.3.2.4. Inconvenientes

7.3.2.4.1. Mayor tiempo de acceso

7.3.3. Asociativa por conjuntos

7.3.3.1. Dividir la MC en C conjuntos de B bloques

7.3.3.2. Se Aplica

7.3.3.2.1. Correspondencia directa nivel de conjuntos

7.3.3.2.2. Correspondencia asociativa nivel bloques

7.3.3.3. Solución intermedia

7.3.3.4. Reduce tiempo de acceso de la totalmente asociativa

7.3.3.5. Incrementa tasa de aciertos de la directa

8. Políticas de Reemplazo MC

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

8.2. MC con correspondencia directa solo se desaloja un bloque

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

8.4. A tener en cuenta

8.4.1. Probabilidad de uso de una página

8.4.2. Coste intercambio

8.5. Algoritmos

8.5.1. Aleatorio

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

8.5.1.2. Más sencilla de implementar

8.5.1.3. Menos costosa

8.5.2. FIFO

8.5.2.1. First in first out

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

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

8.5.2.4. Tiene una lista ordenada

8.5.3. LRU

8.5.3.1. Least recently used

8.5.3.2. Reemplaza el bloque memos usada recientemente

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

8.5.3.4. Ofrece mejores resultados

9. Política de escritura MC

9.1. Escritura no puede realizar trabajo paralelo

9.2. Políticas

9.2.1. Escritura directa

9.2.1.1. Write through

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

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

9.2.1.4. Ventajas

9.2.1.4.1. Fácil de implementar

9.2.1.4.2. Asegurar la coherencia

9.2.1.5. Inconvenientes

9.2.1.5.1. Genera mucho tráfico a memoria

9.2.1.5.2. Procesador espera a que complete escritura

9.2.2. Post-escritura

9.2.2.1. Write back

9.2.2.2. Modifica solo primer nivel de caché

9.2.2.3. Se activa bit sucio para indicar bloque modificado

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

9.2.2.5. Ventajas

9.2.2.5.1. Menos tráfico de información

9.2.2.5.2. Aciertos en escritura a velocidad de MC

9.2.2.6. Inconvenientes

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

9.2.2.7. Por fallos mejor la escritura directa

9.3. Fallo de Escritura

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

9.4. Escritura con Ubicación

9.4.1. Write with allocate

9.4.2. Asociado con post-escritura

9.4.3. Lleva MP a MC donde realiza escritura

9.5. Escritura sin Ubicación

9.5.1. Writr with no allocate

9.5.2. Asociado con escritura directa

9.5.3. Sólo se escribe sobre MP

10. Paginación II (MV)

10.1. Esquema de traducción de direcciones

11. Fallo de Página (MV)

11.1. Bit válido en off hay un fallo

11.2. Mecanismo de excepción tiene el SO

11.3. SO tiene el control

11.3.1. Busca página en disco magnético

11.3.2. Decidir marco en MP para página

11.4. Control en disco de las páginas virtuales

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

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

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

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

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

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

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

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

11.12. Fallo de pagina

12. Protección (MV)

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

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

12.3. Hardware proporciona al SO

12.3.1. Dos modos de ejecución

12.3.1.1. supervisor

12.3.1.1.1. Usuario

12.3.2. Proporcionar estado solo lectura de una parte del procesador

12.3.2.1. Bit de modo usuario/supervisor

12.3.2.2. Puntero de tablas de páginas

12.3.2.3. TLB

12.3.2.4. Instrucciones especiales en modo supervisor

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

12.3.2.5.1. Se salva PC en registro EPC

12.3.2.5.2. Poner procesador en modo supervisor

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

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

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

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

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

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

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

13.5. Hardware de paginación con TLB

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

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

13.6.1.1. Ahorro de acceso a memoria

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

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

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

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

13.6.2.1. No se ahorra acceso a memoria

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

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

13.6.2.4. TLB miss se atiende por harware como software

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

13.8. Diseños TLB tiene combinaciones:

13.8.1. LRU por hardware muy caro, tampoco por software

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

14. Thrashing-Working set (MV)

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

14.2. Thrashing

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

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

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

15. Paginación I (MV)

15.1. Gestiona hardware y SO

15.2. Importante reducir fallos de página

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

15.3.1. Búsqueda completa es impracticable

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

15.5. Tabla de páginas y reside en memoria

15.6. Direcciones virtuales de un proceso no es contiguo

15.7. Marcos

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

15.8. Páginas

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

15.9. Se tiene lista de todos los marcos libres

15.10. Ejecución programa

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

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

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

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

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

15.11.3. Tabla de página en memoria

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

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

15.11.4. Cada programa tiene su tabla de páginas

15.11.5. Page Table Regiter

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

15.11.6. Evitar colisiones el SO

15.11.6.1. Asigna la memoria física

15.11.6.2. Actualizar tablas de páginas

15.11.7. Bit válido

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

15.11.7.1.1. OFF

15.11.7.1.2. ON

16. Diseño Jerarquía Básica

16.1. Primeros modelos descartados por bajo rendimiento

16.2. Memoria organizada en niveles

16.2.1. Memoria caché

16.2.2. Memoria principal

16.2.3. Memoria virtual

16.3. Cada una

16.3.1. En un lugar físico distinto

16.3.2. Fabricado con tecnología diferente

16.3.3. Gestión de manera independiente

16.4. Ordenes de magnitud de capacidades y tiempo de acceso

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

17. Esquema de traducción de direcciones