Comienza Ya. Es Gratis
ó regístrate con tu dirección de correo electrónico
Memoria por Mind Map: Memoria

1. Aciertos y fallos en el acceso a la caché

1.1. La palabra a leer o escribir se busca en la MC

1.1.1. Se encuentra ACIERTO

1.1.2. No se encuentra FALLO

1.2. Si la palabra no se encuentra en la MC, se trae un bloque que contiene dicha palabra desde MP.

1.3. SI siempre se producen fallos en la caché existe el Principio de localidad

1.3.1. Localidad Espacial

1.3.1.1. Si se referencia a un elemento, los elementos cercanos tambien tienden a ser referenciados.

1.3.1.2. Se mueven bloques con palabras contiguas en memoria a los niveles mas alto de la jerarquía.

1.3.1.3. Operaciones con matrices y arrays

1.3.2. Localidad Temporal

1.3.2.1. Si se referencia a un elemento, este tenderaá a ser referencia pronto.

1.3.2.2. La jerarquia de memoria mantiene los datos accedidos recientemente lo mas cerca del procesador.

1.3.2.3. Esctructura de los programas

1.3.2.3.1. Datos

1.3.2.3.2. Bucles

2. Aciertos y fallos en el acceso a MP

2.1. Relacion MP Y MV ---> MC Y MP

2.1.1. La MP dividad en paginas o segmentos.

2.1.2. Cuando existe un fallo de página se accede a MV

2.1.3. Penalizacion es mayor que ya que MV es la mas lenta en la jerarquia.

2.1.4. En la gestión interviene el SO.

3. Mecanismo completo de acceso a memoria

3.1. Traducir dirección virtual a dirección física

3.2. Traducción exitosa si la palabra se encuentra en MP. Con esta dirección se accede a MC.

3.3. Tipos de fallo MC

3.3.1. Iniciales

3.3.1.1. Cuando se referencia por primera vez una palabra

3.3.2. De capacidad

3.3.2.1. Cuando se producen remplazos

3.4. Si se falla, hay que pasar por el controlador de MP

3.5. El controlador planificará el acceso a MP

3.6. En caso de acierto, el bloque que incluye la palabra se envía a MC.

3.7. En caso de fallo, se debe resolver el fallo de página o segmeneto desde la MV

3.8. El SO realiza un cambio de contexto y pasa a ejecutar otro proceso.

3.9. Una vez que la página o el segmento esta en MP, se lo lleva a MC.

3.10. Si se tiene dos niveles de MC

3.10.1. El mecanismo de acceso es el mismo, si se falla desde el primer nivel, el segundo primero trata de resolver la falla.

3.10.2. Si la palabra esta en el segundo nivel se envia al primer nivel.

3.10.3. En caso de falla se debe intentar desde la MP

3.10.4. Siguiendo el principo de inclusión, el bloque que provoca el fallo se lleva desde la MP hasta la caché de segundo nivel y desde esta al primer nivel.

3.10.5. En el caso de un procesador segmentado, todo este proceso deberia completarse en un unico ciclo de reloj.

4. Diseño de la memoria cache

4.1. Almacena unos determiados bloquees de informacion llamados "MARCOS"

4.2. Para determinar que bloque esta ocupado se utiliza "ETIQUETAS"

4.3. Aspectos basicos de su diseño

4.3.1. Organización de la memoria cache

4.3.2. Política de ubicación

4.3.3. Política de reemplazo

4.3.4. Política de escritura

5. Memoria Principal

5.1. Chips de memoria!

5.2. El controlador de memoria gestiona los accesos

5.3. Mapea la dirección física a ubicación física

5.4. Evolución de las diferentes tecnologías de memoria desde la DRAM convencional hasta las actuales DDR3!

5.5. DRAM Convencional

5.5.1. Modelo obsoleto

5.5.2. Las actuales son el resultado de aplicar mejoras y optimizaciones sobre la misma

5.5.3. Proceso de acceso a memoria

5.5.3.1. El procesador vuelca la dirección en el bus !

5.5.3.2. El controlador la decodifica

5.5.3.3. Determina el/los chip/s que deben ser accedidos y las matrices dentro de los mismos!

5.5.3.4. Envía a las matrices la dirección de fila y columna para validarlas

5.5.4. Desaprovechamiento de recursos:!

5.6. FPM DRAM: Fast Page Mode DRAM

5.6.1. División de la memoria en páginas

5.6.2. Los accesos que se encuentran en la misma página requieren menos ciclos de espera!

5.6.3. Accesos en modo burst!

5.7. SDRAM o DRAM Sincrónica

5.7.1. La tecnología de memoria actual es síncrona, utilizando el reloj global del sistema!

5.7.2. Las memoria pueden funcionar en modo 5-1-1-1

5.8. DDR, DDR2, DDR3

5.8.1. DDR (Double Date Rate) transfiere información dos veces en cada ciclo de reloj: en el flanco de subida y en el de bajada!

5.8.2. DDR2 permite trabajar a mayores frecuencias!

5.8.3. Para seguir aumentando la frecuencia hasta los 1900 MHz, la tecnología DDR3 reduce de nuevo la tensión de alimentación

6. Diseño de la memoria virtual

6.1. La memoria virtual se introduce en la jerarquía de memoria porque:!

6.1.1. Permite la multiprogramación è protección

6.1.2. Permite ejecutar procesos más grandes que la MP

6.1.3. Permite independencia de las referencias con respecto a la localización de los procesos en MP

6.2. La MV no se controla exclusivamente por hardware!

6.3. La tecnología de la MV es el almacenamiento magnético

6.4. La unidad de información no es el bloque, sino el segmento o la página, mucho mayores que el bloque que se maneja entre MC y MP

6.5. El alojamiento es siempre asociativo !

6.6. La política de escritura es siempre post-escritura

6.7. Más compleja y difícil de gestionar!

6.8. Latencia del orden de ms y no de ns!

6.9. Resolver un fallo de página implica un cambio de contexto para evitar la enorme penalización por fallo!

6.10. Decisiones clave a la hora de diseñar un sistema de memoria virtual

6.10.1. El tamaño de la página debe ser lo suficientemente grande para amortizar el elevado tiempo de acceso!

6.10.2. Priman las políticas que reducen el número de fallos de pagina, por eso la técnica de alojamiento empleada es totalmente asociativa

6.10.3. Los fallos de página se manejan por software

6.10.4. La escritura-directa queda descartada en MV. En su lugar se emplea post-escritura

6.11. Dirección virtual→ dirección generada por el procesador!

6.12. Dirección física → dirección que maneja la unidad de memoria!

6.13. Memory Management Unit (MMU):

6.13.1. Traduce direcciones virtuales a direcciones físicas!

6.13.2. Trabaja en tiempo de ejecución de manera transparente a la CPU!

6.14. Asignación de memoria

6.14.1. Tres métodos de asignación de memoria

6.14.1.1. Paginación: tamaño fijo de bloque de información!

6.14.1.1.1. La paginación se gestiona además de con el hardware, con la colaboración del SO

6.14.1.1.2. A esta estructura se la denomina tabla de páginas y reside en memoria!

6.14.1.1.3. La memoria física se divide en bloques de tamaño fijo denominados marcos

6.14.1.1.4. La memoria virtual se divide en bloques del mismo tamaño denominados páginas!

6.14.1.1.5. Se mantiene una lista de todos los marcos libres!

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

6.14.1.2. Segmentación: tamaño variable de bloque de información

6.14.1.3. Técnica híbrida, paginada/ segmentada: los segmentos se componen de un número entero de páginas!

6.15. Fallo de página

6.15.1. Si el bit de válido está a off --> se produce un fallo de página

6.15.2. Se debe transferir el control al SO: mecanismo de excepción

6.15.2.1. Buscar la página en el siguiente nivel de la jerarquía, en el disco magnético!

6.15.2.2. Decidir en qué marco de MP alojar la página

6.15.3. Se debe llevar un control de la localización en el disco de las páginas virtuales!

6.15.4. El SO reserva espacio en disco para todas las páginas de un proceso: swap space

6.15.5. El SO mantiene otra estructura de datos en la que almacena qué procesos y qué direcciones virtuales utiliza cada página física!

6.15.6. Para ayudar al SO, algunos ordenadores proporcionan el bit de referencia o bit de uso, que se pone a 1 cuando se accede a la página!

6.15.7. Para saber si una página ha sido modificada, a la tabla de páginas se le añade el dirty bit!

6.15.8. Cuando se produce un fallo de página se transfiere el control a la dirección 0X8000 0180!

6.16. Proteccion

6.16.1. Cuando varios procesos compartan la MP, se debe evitar la lectura o escritura en zonas de memoria que no pertenecen a un proceso!

6.16.2. Un bit de permiso de escritura en el TLB puede proteger a una página de ser escrita!

6.16.3. El hardware debe proporcionar al SO los siguientes mecanismos:

6.16.3.1. Soportar dos modos de ejecución: supervisor y usuario

6.16.3.2. Proporcionar una parte del estado del procesador en modo sólo lectura de tal manera que el usuario no la pueda escribir:

6.16.3.2.1. Bit de modo usuario/supervisor

6.16.3.2.2. Puntero de tabla de páginas

6.16.3.2.3. TLB!

6.16.4. Para modificar estos elementos, el SO utiliza instrucciones especiales sólo disponibles en modo supervisor

7. Diseño de una jerarquía de memoria básica

7.1. Primeros modelos de computadoras descartaron la idea.

7.2. Hoy en dia la memoria esta organizada en

7.2.1. Memoria caché

7.2.1.1. Ubicada en el mismo chip que el procesador

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

7.2.1.3. Controlada por el controlador de caché

7.2.1.4. Hoy en dia existen varios nivels de caché

7.2.2. Memoria principal

7.2.2.1. Ubicada en un chip diferente al procesador

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

7.2.2.3. Controlada por el controlador de memoria principal

7.2.2.4. El controlador puede estar ubicado de disntitas maneras

7.2.3. Memoria Virtual

7.2.3.1. Ubicada en el disco duro

7.2.3.2. Fabricada con tecnología magnética

7.2.3.3. Controlada por el SO

7.2.4. Cada una

7.2.4.1. Se ubica fisicamente en un lugar distinto

7.2.4.2. Se fabrica con una tecnlogía diferente

7.2.4.3. Se gestiona de manera independiente

8. Propiedades de una jerarquía de memoria

8.1. Inclusión

8.1.1. cualquier informacion contenida en un nivel, tambien debe estar presente en niveles superiores.

8.2. Coherencia

8.2.1. Copias de distintos niveles son coherentes entre sí, almacenan los mismos valores.

9. Evaluación de prestaciones de la jerarquía de memoria

9.1. t_MEM = t_AciertoMC + TF ( Tasa de Fallos) * pF ( penalizacion por fallo en MC)

9.2. TF = numFallos / numTotalAccesosMem

9.3. Normalmente, el tiempo invertido en acceder a la memoria se suma al tiempo de CPU

9.3.1. t = t _CPU + t_MEM

9.4. Metricas

9.4.1. Latencia

9.4.1.1. tiempo desde que se accede a memoria hasta que finalize.

9.4.2. Ancho de Banda

9.4.2.1. cantidad de informacion que se puede transferir desde/ hacia la memoria.

10. Organización de la memoria caché

10.1. Tamaño de la memoria caché

10.1.1. Demasiada pequeña

10.1.1.1. Incrementa la tasa de fallos

10.1.1.2. No captura bien la localidad!

10.1.1.3. Fallos de capacidad!

10.1.2. Demasiado grande

10.1.2.1. No se podrá integrar en el mismo chip que el procesador debido al consumo de área y de potencia!

10.1.2.2. Más lenta, más comparaciones de etiquetas!

10.2. Tamaño de marco

10.2.1. Bloques grandes

10.2.1.1. Se captura mejor la localidad espacial!

10.2.1.2. Se reducen los fallos iniciales

10.2.1.3. Aumenta la penalización por fallo, se necesita más tiempo para traer los bloques del siguiente nivel!

10.3. Unificación o división de las instrucciones y los datos

10.3.1. La segmentación del procesador obliga a la división para evitar riesgos estructurales entra las etapas F y M

10.3.2. Cuando no se trata del primer nivel se puede optar por unificar en bloques de información comunes las instrucciones y los datos!

10.4. Implementación de cachés multinivel

10.4.1. Aspecto que más influye en el rendimiento!

10.4.2. Memoria caché de un único nivel!

10.4.3. Nivel 1 (L1): cercana al procesador, pequeña y rápida!

10.4.4. Nivel 2 (L2): mayor tamaño, aprovecha el principio de localidad, más lenta pero menos fallos de capacidad

10.4.5. La penalización por fallo es menor, en lugar de ir a MP irá a la caché de nivel 2!

10.5. Política de ubicación

10.5.1. La memoria caché sólo almacena unos determinados bloques de información!

10.5.2. Política de ubicación: tasa de fallos Vs tiempo de acceso

10.5.2.1. Correspondencia directa

10.5.2.1.1. A cada bloque de memoria principal solo le corresponde un marco de memoria caché

10.5.2.1.2. Correspondencia entre memoria principal y caché!

10.5.2.1.3. Ventajas

10.5.2.1.4. Inconvenientes

10.5.2.2. Totalmente asociativa

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

10.5.2.2.2. La etiqueta se compara con todas las etiquetas almacenadas en caché

10.5.2.2.3. Ventajas

10.5.2.2.4. Inconvenientes

10.5.2.3. Asociativa por conjuntos

10.5.2.3.1. Dividir la MC en C conjuntos de B bloques o vías!

10.5.2.3.2. Se aplica

10.5.2.3.3. Solución intermedia

10.5.2.3.4. Reduce el tiempo de acceso de la memoria totalmente asociativa e incrementa la tasa de aciertos de la directa!

10.6. Políticas de reemplazo

10.6.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

10.6.2. En el caso de una caché con correspondencia directa solo se puede desalojar un bloque!

10.6.3. Dicha selección puede reducir la tasa de fallos de los accesos posteriores a MC

10.6.4. Algoritmos más utilizados

10.6.4.1. Aleatorio

10.6.4.1.1. se utiliza un generador de números aleatorios para escoger el bloque a reemplazar

10.6.4.2. FIFO

10.6.4.2.1. First In First Out, reempleza el bloque que ha permanecido en MC el mayor periodo de tiempo

10.6.4.3. LRU

10.6.4.3.1. Least Recently Used, reemplaza el bloque de memoria que lleva más tiempo sin utilizarse!

10.7. Políticas de escritura

10.7.1. Las escrituras llevan más tiempo puesto que no se puede realizar trabajo en paralelo!

10.7.2. Políticas!

10.7.2.1. Escritura directa!

10.7.2.1.1. Se escribe a la vez en el primer nivel de memoria caché y en el siguiente nivel de la jerarquía!

10.7.2.1.2. En caso de fallo, se trae el bloque de MP a MC y una vez en esta, se procede a realizar la escritura!

10.7.2.1.3. Ventajas

10.7.2.1.4. Incovenientes

10.7.2.2. Post-escritura!

10.7.2.2.1. Cuando se modifica una palabra solo se hace en el primer nivel de caché!

10.7.2.2.2. Para no actualizar la memoria con cada reemplazo, se activa un bit, el bit de sucio o dirty bit, que indicará si el bloque ha sido modificado o no

10.7.2.2.3. Ventajas

10.7.2.2.4. Incovenientes

10.7.3. Si el acceso a MC es para escritura y el bloque no se encuentra, se produce un fallo de escritura!

10.7.4. Escritura con ubicación (Write with allocate)

10.7.5. Escritura sin ubicación (Write with no allocate)!

10.8. Buffer de escritura

10.8.1. Estructura hardware en la que se realizan las escrituras en primera instancia

10.8.2. Posteriormente se solapa la escritura con el siguiente nivel de la jerarquía con la ejecución de las siguientes instrucciones

10.8.3. Las escrituras en el buffer suponen una penalización menor que hacerlas en el siguiente nivel de la jerarquía de memoria!

10.8.4. Escritura directa

10.8.4.1. Las escrituras se hacen palabra a palabra en caché y en este buffer en lugar de en el siguiente nivel de la jerarquía de memoria!

10.8.4.2. El contenido del buffer se volcará en el siguiente nivel:!

10.8.4.2.1. Cuando esté lleno

10.8.4.2.2. Cuando se produzca un fallo de lectura

10.8.5. Post-escritura

10.8.5.1. El buffer se utiliza para volcar los bloques sucios que van a ser reemplazados en memoria caché

10.8.5.2. El contenido del buffer se volcará en el siguiente nivel

10.8.5.2.1. Cuando esté lleno!

10.8.5.2.2. Cuando se produzca un fallo