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

1. Jerarquia de Memoria

1.1. 3 niveles

1.1.1. Memoria Cache (MC)

1.1.1.1. Ubicada en el mismo chip del procesador

1.1.1.2. Fabricada con SRAM

1.1.1.2.1. Static RAM

1.1.1.3. Existen 3 niveles

1.1.1.3.1. L1

1.1.1.3.2. L2

1.1.1.3.3. L3

1.1.2. Memoria Principal (MP)

1.1.2.1. Ubicada en un chip diferente al procesador

1.1.2.2. Fabricada con DRAM

1.1.2.2.1. Dynamic RAM

1.1.3. Memoria Virtual (MV)

1.1.3.1. Ubicada en el Disco Duro

1.1.3.2. Fabricada con tecnología magnética

1.1.3.3. Se controla desde el SO

1.2. Caracteristicas

1.2.1. se ubican físicamente en un lugar distinto

1.2.2. se fabrican con una tecnología diferente

1.2.3. se gestionan de manera independiente

1.3. Orden de Magnitud de Capacidad y Tiempo de Acceso

1.3.1. .

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

1.4.1. .

1.5. Propiedades

1.5.1. Inclusion

1.5.1.1. Cualquier información contenida en un nivel de la jerarquía debe estar también en los niveles superiores

1.5.2. Coherencia

1.5.2.1. la misma información en los diferentes niveles.

1.5.3. Debe haber una correspondencia de direcciones entre los distintos niveles de la jerarquía

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

1.6.1. Métricas que suelen utilizarse con la memoria principal o la memoria virtual

1.6.1.1. Latencia

1.6.1.1.1. Tiempo que transcurre desde que un acceso a memoria comienza hasta que finaliza.

1.6.1.2. Ancho de banda

1.6.1.2.1. cantidad de información por unidad de tiempo que puede transferirse desde/hacia la memoria

2. Aciertos y Fallos en el acceso a las Memorias

2.1. Aciertos y Fallos en la memoria Cache

2.1.1. La palabra a leer o escribir se busca en MC

2.1.1.1. Si la palabra se encuentra en caché, acierto

2.1.1.2. Si no se encuentra en caché, fallo

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

2.1.2. Principio de Localidad

2.1.2.1. Localidad Espacial

2.1.2.1.1. Si se referencia un elemento, los elementos cercanos a él, también son referenciados

2.1.2.1.2. Operaciones con matrices y arrays, ejecución secuencial de un programa

2.1.2.2. Localidad Temportal

2.1.2.2.1. Si se referencia un elemento, este referenciara pronto

2.1.2.2.2. La jerarquía de memoria mantiene los datos accedidos recientemente lo más cerca posible del procesador!

2.1.2.2.3. Estructura de los programas: datos y bucles

2.2. Aciertos y Fallos en la memoria Principal

2.2.1. La MP se divide en páginas o segmentos

2.2.2. Cuando se produce un fallo de página o segmento, se debe acceder a la memoria Virtual

2.2.2.1. En la gestión de este nivel interviene el SO

2.2.2.1.1. El procesador realiza un cambio de contexto y ejecuta otra tarea hasta que la página o segmento esté disponible en MP

3. Mecanismo completo de acceso a Memoria

3.1. 1. Se traduce la dirección virtual a una dirección física

3.2. 2. Si se traduce con éxito, es porque la palabra se encuentra en MP.

3.2.1. Con esta dirección se accede a la MC

3.3. 3. Tipos de fallos en la MC

3.3.1. Iniciales

3.3.1.1. cuando se referencia una palabra por primera vez

3.3.2. De Capacidad

3.3.2.1. cuando se producen reemplazos

3.3.3. De Conflicto

3.3.3.1. varios bloques tienen asignada la misma ubicación en memoria caché

3.4. 4. En caso de fallo, hay que pasar por el controlador de MP

3.4.1. el controlador de MP, mapeará la dirección física buscada a la ubicación física de la palabra en la RAM

3.5. 5. El controlador planificará el acceso a la MP

3.5.1. otros dispositivos también acceden a la MP

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

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

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

3.9. 9. Una vez que la página o el segmento está en MP, se lleva el bloque correspondiente a MC

3.9.1. se reanuda la ejecución de la instrucción que provocó el fallo

3.10. .

3.11. Acceso a memoria del nanoMIPS en la etapa M

4. Diseño de la Memoria Cache

4.1. Diseño

4.1.1. Almacena unos determinados bloques de información denominados marcos

4.1.2. Para determinar qué bloque está ocupando un determinado marco, se utilizan etiquetas o tags

4.1.3. Las etiquetas se comparan con la del bloque buscado para indicar si se ha producido un acierto o un fallo

4.2. Aspectos básicos de su diseño

4.2.1. Organización de la memoria caché

4.2.1.1. Tamaño de la memoria caché

4.2.1.1.1. demasiado pequeña

4.2.1.1.2. demasiado grande

4.2.1.2. Tamaño de marco

4.2.1.2.1. Bloques Grandes

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

4.2.1.3.1. La segmentación del procesador obliga a la división

4.2.1.4. Implementación de cachés multinivel

4.2.1.4.1. Aspecto que más influye en el rendimiento

4.2.1.4.2. Nivel 1 (L1)

4.2.1.4.3. Nivel 2 (L2)

4.2.2. Política de ubicación

4.2.2.1. Correspondencia directa

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

4.2.2.1.2. Ventajas

4.2.2.1.3. Desventajas

4.2.2.2. Totalmente asociativa

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

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

4.2.2.2.3. Ventajas

4.2.2.2.4. Desventajas

4.2.2.3. Asociativa por conjuntos

4.2.2.3.1. Dividir la MC en C conjuntos de B bloques

4.2.2.3.2. Se aplica a

4.2.2.4. .

4.2.3. Política de reemplazo

4.2.3.1. Fallo en MC hay que determianr qué bloque de MC desalojar

4.2.3.2. Puede reducir la tasa de fallos de los accesos posteriores a MC

4.2.3.3. Tener en cuenta:

4.2.3.3.1. Probabilidad de uso de una página

4.2.3.3.2. Coste de intercambio

4.2.3.4. Algoritmos usados

4.2.3.4.1. Aleatorio

4.2.3.4.2. FIFO (First in First Out)

4.2.3.4.3. LRU (Least Recently Used)

4.2.3.4.4. Tasa de aciertos vs Tamaño de Cache

4.2.4. Política de escritura

4.2.4.1. Las escrituras no se pueden realizar en paralelo, llevan más tiempo.

4.2.4.2. En las lecturas, se recupera la información de un marco determinado al tiempo que se realiza la comparación de las etiquetas.

4.2.4.3. Políticas

4.2.4.3.1. Escritura directa

4.2.4.3.2. Post-Escritura

4.2.4.3.3. Conociendo los posibles fallos de la MC , se prefiere la escritura directa.

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

4.2.4.5. Escritura con ubicación

4.2.4.5.1. Se asocia con post-escritura

4.2.4.5.2. Se lleva el bloque de MP a MC donde se realiza la escritura

4.2.4.6. Escritura sin ubicación

4.2.4.6.1. Se asocia con escritura directa

4.2.4.6.2. Sólo se escribe sobre la MP

5. Diseño de la Memoria Principal

5.1. Chips de Memoria

5.1.1. Matrices Cuadradas de celdas DRAM

5.1.2. Cada celda almacena un bit

5.2. Tecnologias de Memoria RAM

5.2.1. DRAM

5.2.1.1. modelo obsoleto

5.2.1.2. Proceso de acceso a memoria

5.2.1.2.1. El procesador vuelca la dirección en el bus

5.2.1.2.2. El controlador la decodifica

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

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

5.2.1.3. Desaprovechamiento de recursos

5.2.1.3.1. Después de recuperar una fila para extraer una columna, si queremos acceder a otra columna , se vuelve a repetir todo el proceso

5.2.2. FPM DRAM: Fast Page Mode DRAM

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

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

5.2.2.2.1. Cada página se corresponde justo con todas las celdas en una misma fila de la matriz del chip de memoria

5.2.2.3. Accesos en modo burst

5.2.2.3.1. Una vez accedida la columna, se puede acceder a las tres siguientes columnas de esa misma fila sin necesidad de volver a cargar

5.2.2.3.2. Se fabricaban con tiempos de acceso de 70 o 60 ns

5.2.3. SDRAM o DRAM Sincrónica

5.2.3.1. Las tecnologías anteriores eran asincrónicas, utilizaban sus propias señales de sincronización para realizar los accesos a memoria

5.2.3.1.1. Esto producía latencia y retardos innecesarios

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

5.2.3.3. Tiempos de acceso de entre 25 y 10 ns

5.2.4. DDR, DDR2, DDR3

5.2.4.1. DDR (Double Date Rate) transfiere información dos veces en cada ciclo de reloj

5.2.4.1.1. En el ciclo de subida y de bajada

5.2.4.2. Se llega por primera vez a los 400MHz

5.2.4.3. DDR2 permite trabajar a mayores frecuencias

5.2.4.4. Para trabajar a frecuencias tan altas y no tener problemas con el calor, se reduce la tensión de alimentación a 1,8 V

5.2.4.5. la tecnología DDR3 reduce la tensión de alimentación , para llegar a los 1900Mhz

6. Diseño de la Memoria Virtual

6.1. Memoria Virtual

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.1.4. La MV no se controla exclusivamente por hardware

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

6.1.6. La unidad de información no es el bloque, sino el segmento o la página

6.1.7. El alojamiento es siempre asociativo

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

6.2. Diseño

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

6.2.2. Latencia del orden de ms y no de ns

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

6.2.4. Decisiones clave

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

6.2.4.1.1. Tamaño típico entre 4KB y 16KB

6.2.5. Priman las políticas que reducen el número de fallos de pagina

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

6.2.6.1. la sobrecarga introducida por estos algoritmos es mucho menor que el tiempo de acceso a disco

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

6.3. Organización

6.3.1. Dirección Virtual

6.3.1.1. Generada por el procesador

6.3.2. Dirección Fisica

6.3.2.1. Manejada por la unidad de memoria MMU

6.4. Asignación de memoria

6.4.1. Paginación

6.4.1.1. Tamaño fijo de bloque de información.

6.4.1.2. Se gestiona con el hardware y el SO.

6.4.1.3. Algoritmos de ubicación de paginas óptimos.

6.4.1.4. El problema de usar una ubicación totalmente asociativa radica en localizar la página

6.4.1.5. Se ubican las páginas por medio de unas tablas que indexan la memoria. (Tablas de Páginas)

6.4.1.6. La memoria física se divide en bloque denominados MARCOS.

6.4.1.7. La memoria virtual se divide en bloques denominados PÁGINAS

6.4.1.8. Se mantiene una lista de todos los marcos disponibles.

6.4.1.9. Ubicación y busqueda de páginas

6.4.1.9.1. Utiliza una politica de reemplazo totalmente asociativa, el So puede implementar algoritmos de reemplazos más inteligentes.

6.4.1.9.2. La verdadera dificultad radica en encontrar una entrada.

6.4.1.9.3. Emplea Tabla de Páginas

6.4.1.9.4. Cada programa tiene su propia tabla de páginas.

6.4.1.9.5. Page Table Register permite la localización de la tabla de paginas en MP.

6.4.1.9.6. Para evitar colisiones entre el espacio de direcciones virtuales de los distintos procesos, el SO se encarga de:

6.4.1.9.7. El bit de válido se utiliza en cada entrada de la tabla de páginas para indicar si la página está o no presente en la MP.

6.4.2. Segmentación

6.4.2.1. Tamaño variable de bloque de información

6.4.3. Tecnica Híbrida

6.4.3.1. Los segmentos se componen de un número entero de páginas

6.5. Fallo de página

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

6.5.2. Se debe tranferir el control al SO(Exception)

6.5.2.1. Busca la pagina en el siguiente nivel de la jerarquía

6.5.2.2. Decide en qué marco de MP alojar la página

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

6.5.4. El SO reserva espacio en disco para todas las páginas de un proceso: Swap Space

6.5.5. Esta nueva estructura puede formar parte de la tabla de páginas o ser una estructura indexada.

6.5.6. Al mismo tiempo crea una estructura de datos para almacenar la ubicación en el disco de cada página virtual

6.5.7. El SO mantiene otra estructura de datos en la que almacena qué procesos y qué direcciones virtuales utiliza cada página

6.5.8. Cuando todas las paginas fisicas estan ocupadas, la mayoria de SO emplean LRU para reemplazar una pagina.

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

6.5.10. Si a página a reemplazar ha sido modificada, en los sistemas de MV se emplea write-back

6.5.10.1. Para saber si una página ha sido modificada a la tabla de páginas se le añade el bit sucio.

6.5.11. Cuando se produce un fallo de página se transfiere el control a la direccion 0X8000 0180

6.5.11.1. Dirección general para una excepción

6.5.11.2. EL TLB miss tiene un punto de entrada especial para reducir la penalización

6.5.11.3. El SO utiliza el registro Cause para determinar la causa de la excepción.

6.5.12. Como se trata de un fallo de página:

6.5.12.1. El SO salva el estado del proceso activo: usa EPC y Cause para proceder.

6.6. Protección

6.6.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.6.2. Se usa un bit de permiso de escritura en el TBL para proteger a una página.

6.6.3. El hardware debe proporcionar al SO los siguientes mecanismos

6.6.3.1. Dos modos de ejecución:

6.6.3.1.1. Supervisor

6.6.3.1.2. Usuario

6.6.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.6.3.2.1. Bit de modo usuario/supervisor

6.6.3.2.2. Puntero de tabla de páginas

6.6.3.2.3. TLB

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

6.6.3.3.1. Proporcionar mecanismos para cambiar de modo usuario a modo supervisor

6.6.4. Las tablas de páginas se almacenan en el espacio de direcciones de SO

6.7. Optimizacion de la traduccion de direcciones TLB

6.7.1. Como las tablas de paginas estan almacenadas en la MP, implica al menos dos accesos a memoria

6.7.2. Debido al principio de localidad, las palabras de una página serán referenciadas pronto, por lo que la traduccion de una pagina virtual a fisica debería conservarse

6.7.3. Es por esto que los procesadores actuales incluyen una chache especial que mantiene las traducciones recientes

6.7.4. A esta cache se la conoce como TLB translation-lookaside buffer

6.7.5. En cada referencia a memoria, primero buscamos si la traduccion esta en TLB

6.7.6. TLB HIT: la traduccion si está

6.7.6.1. Nos ahorramos el acceso a memoria para consultar la tabla de páginas

6.7.6.2. Se comprueba el bit de válido,

6.7.6.2.1. Si es 0 la página no está en memoria

6.7.6.2.2. Si es 1 se puede actualizar el bit de referencia y el de sucio.

6.7.7. TLB MISS: la traducción no está

6.7.7.1. No nos ahorramos el acceso a memoria

6.7.7.2. Traemos la traducción de la tabla de páginas sin comprobar el bit de válido.

6.7.7.3. Se re-ejecuta la instruccion, pero en este caso la traduccion si estará.

6.7.7.4. El TLB miss se puede atender tanto por hardware o por software.

6.7.8. En el TLB se utiliza write-back, de tal manera que los bits con información solo se copian en la tabla de páginas cuando la entrada en el TLb es reemplazada.

6.7.9. Los diseñadores de TLB utilizan diferentes combinaciones

6.7.9.1. LRU por hardware demasiado caro

6.7.9.2. Mucho sistemas dan soporte para seleccion de una entrada aleatoria

6.8. Trhrashing - Work Set

6.8.1. Si un programa accede a una MV mayor que la MP disponible, se ejecutará muy despacio.

6.8.2. Dicho programa estará intercambiando páginas constantemente entre memoria y disco, thrashing

6.8.3. Si un programa entra en trashing, lo mejor es ejecutar ese programa con más memoria o añadir más memoria.

6.8.4. Otra alternativa es rediseñar los algoritmos y estructuras de datos de nuestro programa para tratar de reducir el número de páginas que un programa utiliza de forma simultanea, es decir, reducir el work set.