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

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

1.1. Primeros modelos de computadoras descartaron la idea.

1.2. Hoy en dia la memoria esta organizada en

1.2.1. Memoria caché

1.2.1.1. Ubicada en el mismo chip que el procesador

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

1.2.1.3. Controlada por el controlador de caché

1.2.1.4. Hoy en dia existen varios nivels de caché

1.2.2. Memoria principal

1.2.2.1. Ubicada en un chip diferente al procesador

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

1.2.2.3. Controlada por el controlador de memoria principal

1.2.2.4. El controlador puede estar ubicado de disntitas maneras

1.2.3. Memoria Virtual

1.2.3.1. Ubicada en el disco duro

1.2.3.2. Fabricada con tecnología magnética

1.2.3.3. Controlada por el SO

1.2.4. Cada una

1.2.4.1. Se ubica fisicamente en un lugar distinto

1.2.4.2. Se fabrica con una tecnlogía diferente

1.2.4.3. Se gestiona de manera independiente

2. Propiedades de una jerarquía de memoria

2.1. Inclusión

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

2.2. Coherencia

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

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

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

3.1.1. Se encuentra ACIERTO

3.1.2. No se encuentra FALLO

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

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

3.3.1. Localidad Espacial

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

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

3.3.1.3. Operaciones con matrices y arrays

3.3.2. Localidad Temporal

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

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

3.3.2.3. Esctructura de los programas

3.3.2.3.1. Datos

3.3.2.3.2. Bucles

4. Aciertos y fallos en el acceso a MP

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

4.1.1. La MP dividad en paginas o segmentos.

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

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

4.1.4. En la gestión interviene el SO.

5. Mecanismo completo de acceso a memoria

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

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

5.3. Tipos de fallo MC

5.3.1. Iniciales

5.3.1.1. Cuando se referencia por primera vez una palabra

5.3.2. De capacidad

5.3.2.1. Cuando se producen remplazos

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

5.5. El controlador planificará el acceso a MP

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

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

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

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

5.10. Si se tiene dos niveles de MC

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

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

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

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

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

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

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

6.2. TF = numFallos / numTotalAccesosMem

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

6.3.1. t = t _CPU + t_MEM

6.4. Metricas

6.4.1. Latencia

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

6.4.2. Ancho de Banda

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

7. Diseño de la memoria cache

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

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

7.3. Aspectos basicos de su diseño

7.3.1. Organización de la memoria cache

7.3.2. Política de ubicación

7.3.3. Política de reemplazo

7.3.4. Política de escritura

8. Organización de la memoria caché

8.1. Tamaño de la memoria caché

8.1.1. Demasiada pequeña

8.1.1.1. Incrementa la tasa de fallos

8.1.1.2. No captura bien la localidad!

8.1.1.3. Fallos de capacidad!

8.1.2. Demasiado grande

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

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

8.2. Tamaño de marco

8.2.1. Bloques grandes

8.2.1.1. Se captura mejor la localidad espacial!

8.2.1.2. Se reducen los fallos iniciales

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

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

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

8.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!

8.4. Implementación de cachés multinivel

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

8.4.2. Memoria caché de un único nivel!

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

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

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

8.5. Política de ubicación

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

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

8.5.2.1. Correspondencia directa

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

8.5.2.1.2. Correspondencia entre memoria principal y caché!

8.5.2.1.3. Ventajas

8.5.2.1.4. Inconvenientes

8.5.2.2. Totalmente asociativa

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

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

8.5.2.2.3. Ventajas

8.5.2.2.4. Inconvenientes

8.5.2.3. Asociativa por conjuntos

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

8.5.2.3.2. Se aplica

8.5.2.3.3. Solución intermedia

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

8.6. Políticas de reemplazo

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

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

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

8.6.4. Algoritmos más utilizados

8.6.4.1. Aleatorio

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

8.6.4.2. FIFO

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

8.6.4.3. LRU

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

8.7. Políticas de escritura

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

8.7.2. Políticas!

8.7.2.1. Escritura directa!

8.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!

8.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!

8.7.2.1.3. Ventajas

8.7.2.1.4. Incovenientes

8.7.2.2. Post-escritura!

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

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

8.7.2.2.3. Ventajas

8.7.2.2.4. Incovenientes

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

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

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

8.8. Buffer de escritura

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

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

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

8.8.4. Escritura directa

8.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!

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

8.8.4.2.1. Cuando esté lleno

8.8.4.2.2. Cuando se produzca un fallo de lectura

8.8.5. Post-escritura

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

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

8.8.5.2.1. Cuando esté lleno!

8.8.5.2.2. Cuando se produzca un fallo

9. Memoria Principal

9.1. Chips de memoria!

9.2. El controlador de memoria gestiona los accesos

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

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

9.5. DRAM Convencional

9.5.1. Modelo obsoleto

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

9.5.3. Proceso de acceso a memoria

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

9.5.3.2. El controlador la decodifica

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

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

9.5.4. Desaprovechamiento de recursos:!

9.6. FPM DRAM: Fast Page Mode DRAM

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

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

9.6.3. Accesos en modo burst!

9.7. SDRAM o DRAM Sincrónica

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

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

9.8. DDR, DDR2, DDR3

9.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!

9.8.2. DDR2 permite trabajar a mayores frecuencias!

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

10. Diseño de la memoria virtual

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

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

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

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

10.2. La MV no se controla exclusivamente por hardware!

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

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

10.5. El alojamiento es siempre asociativo !

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

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

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

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

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

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

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

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

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

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

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

10.13. Memory Management Unit (MMU):

10.13.1. Traduce direcciones virtuales a direcciones físicas!

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

10.14. Asignación de memoria

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

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

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

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

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

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

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

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

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

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

10.15. Fallo de página

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

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

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

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

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

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

10.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!

10.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!

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

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

10.16. Proteccion

10.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!

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

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

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

10.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:

10.16.3.2.1. Bit de modo usuario/supervisor

10.16.3.2.2. Puntero de tabla de páginas

10.16.3.2.3. TLB!

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