jerarquia de la memoria

Get Started. It's Free
or sign up with your email address
jerarquia de la memoria by Mind Map: jerarquia de la memoria

1. conceptos básicos

1.1. diseño de una jerarquía básica

1.1.1. se usa una jerarquía organizada por niveles

1.1.1.1. memoria cache

1.1.1.1.1. ubicada en el mismo chip del procesador

1.1.1.1.2. fabricada con RAM estatica(SRAM)

1.1.1.1.3. controlada por el controlador cache

1.1.1.1.4. existen varios niveles de cache

1.1.1.2. memoria principal

1.1.1.2.1. ubicada en un chip diferente del procesador

1.1.1.2.2. fabricada con RAM dinámica(DRAM)

1.1.1.2.3. controlada por el controlador de memoria principal

1.1.1.3. memoria virtual

1.1.1.3.1. ubicada en el disco duro

1.1.1.3.2. fabricada con tecnología magnética

1.1.1.3.3. es controlada por el sistema operativo

1.1.2. cada una

1.1.2.1. se ubica físicamente en un lugar distinto

1.1.2.2. se fabrican con tecnología diferente

1.1.2.3. se gestiona de manera diferente

1.1.3. jerarquia

1.2. propiedades de una jerarquía de memoria

1.2.1. inclusión

1.2.1.1. cualquier informacion contenida en un nivel debe estar contenida en los niveles superiores

1.2.2. coherencia

1.2.2.1. las copias de la misma información en los diferentes niveles son coherentes entre si

1.2.3. correspondencia de direcciones

1.2.3.1. entre los distintos niveles de jerarquia

1.3. aciertos y fallos en el acceso a cache

1.3.1. la palabra leer o escribir se busca en la memoria cache

1.3.1.1. si se encuentra acierto

1.3.1.2. si no se encuentra fallo

1.3.1.2.1. la penalizacion depende de la latencia de la memoria principal y su ancho de banda

1.3.2. si la palabra no se encuentra en la MC

1.3.2.1. se trae un bloque que contiene la palabra desde la memoria principal

1.4. principio de localidad

1.4.1. localidad espacial

1.4.1.1. si se referencia un elelmento

1.4.1.1.1. los elementos cercanos a el tambien deberan ser referenciados

1.4.1.2. la jerarquía de memoria

1.4.1.2.1. mueve bloque de palabras contiguas en memoria a los niveles mas altos de jerarquia

1.4.1.3. operaciones con matrices y arrays

1.4.1.3.1. ejecución secuencial de un programa

1.4.2. localidad temporal

1.4.2.1. si se referencia un elemento

1.4.2.1.1. este tendra que ser referido pronto

1.4.2.2. la jerarquia de memoria

1.4.2.2.1. mantiene los datos accedidos recientemente lo mas cerca posible del procesador

1.4.2.3. estructuras de los programas

1.4.2.3.1. datos y bucles

1.5. aciertos y fallos en la memoria principal

1.5.1. relación entre Memoria principal y memoria virtual igual que la MC Y MP

1.5.2. la memoria principal se divide en paginas o segmentos

1.5.3. cuando se produce un fallo en una pagina se debe acceder a la memoria virtual

1.5.4. la penalizacion en este caso es mayor

1.5.4.1. ya que la memoria es mas lenta en la jerarquia

1.5.5. en la gestión de este nivel interviene el sistema operativo

1.5.5.1. el procesador ejecuta un cambio de contexto o tarea

1.5.5.1.1. hasta que la pagina este disponible en memoria principal

1.6. mecanismo de acceso a memoria

1.6.1. 1. Se traduce la direccion virtual a direccion fisica

1.6.2. 2. si se traduce con esta direccion se accede a memoria cache

1.6.3. 3. tipos de fallos en la memoria cache

1.6.3.1. iniciales

1.6.3.1.1. cuando se referencia una palabra por primera vez

1.6.3.2. de capacidad

1.6.3.2.1. cuando se producen remplazos

1.6.3.3. de conflicto

1.6.3.3.1. varios bloques tienen asignado la misma ubicación en memoria cache

1.6.4. 4. en caso de fallos

1.6.4.1. hay que pasar el control a memoria principal

1.6.4.2. mapeara la ubicación fisica buscada de la palabra dentro de los chips DRAM

1.6.5. 5. el controlador planeara el acceso a la MP

1.6.5.1. ya que otros dispositivos tambien acceden a la MP

1.6.6. 6. en caso de acierto

1.6.6.1. el bloque que incluye la palabra la envia a la MC

1.6.7. 7. en caso de fallo

1.6.7.1. se debe resolver el fallo de pagina desde la MV

1.6.8. 8. el SO realiza un cambio de contexto y pasa a realizar otro proceso

1.6.9. 9. una vez que la pagina este en la MP

1.6.9.1. se lleva al bloque correspondiente en la MC

1.6.9.2. se reanuda la ejecución de la instrucción que realizo el fallo

1.6.10. en caso de los dos niveles de cache

1.6.10.1. el mecanismo de acceso es el mismo

1.6.10.2. salvo que cuando falla el acceso del la cache de primer nivel

1.6.10.2.1. primero se intenta resolver desde el segundo

1.6.10.3. si la palabra se encuentra en el segundo nivel

1.6.10.3.1. se envia el bloque completo al primer nivel

1.6.10.3.2. completando el acceso sin salir del chip dle procesador

1.6.10.4. en caso de fallo se debe intentar desde la MP

1.6.10.5. siguiendo el principio de inclusion

1.6.10.5.1. el bloque que produjo fallo se lleva desde la MP hasta la cache de segundo nivel

1.6.10.6. en el caso de un procesador segmentado

1.6.10.6.1. todo este proceso debe completarse en un ciclo de reloj

1.7. evaluación de prestaciones

1.7.1. metricas que suelen usare con la memoria principal o la memoria virtual

1.7.1.1. latencia

1.7.1.1.1. tiempo que transcurre desde un acceso a memoria hasta q finaliza

1.7.1.1.2. depende de la tecnologia con la que este fabricada la memoria

1.7.1.2. ancho de banda

1.7.1.2.1. cantidad de informacion por unidad de tiempo que puede transferirse desde/hacia memoria

1.7.1.2.2. depende de la organizacion de la memoria

2. diseño de memoria cache

2.1. diseño de memoria cache

2.1.1. almacena determinados bloques de informacion(marcos)

2.1.2. se usa etiquetas o tags

2.1.2.1. para determinar que bloque esta ocupado en determinado marco

2.1.3. las etiquetas se comparan con las del bloque buscado para saber si hay un acierto o fallo

2.1.4. aspectos basicos de su diseño

2.1.4.1. organizacion de memoria cahce

2.1.4.2. politica de ubicacion

2.1.4.3. plotica de remplazo

2.1.4.4. politica de escritura

2.2. organizacion de memoria cache

2.2.1. tamaño de memoria cache

2.2.1.1. demasiado pequeña

2.2.1.1.1. incrementa la tas ad e fallos

2.2.1.1.2. no captura bien la localidad

2.2.1.1.3. fallos de capacidad

2.2.1.2. demasiado grande

2.2.1.2.1. no se podria integrar en el mismo chi que el procesador

2.2.1.2.2. mas lenta

2.2.2. tamaño de marco

2.2.2.1. bloques grandes

2.2.2.1.1. se captura mejor la localidad espacial

2.2.2.1.2. se reducen los fallos iniciales

2.2.2.1.3. aumenta la penalizacion por fallos

2.2.2.2. se debe llegar a un compromiso

2.2.2.2.1. teniendo en cuenta la latencia y el ancho de banda de coneccion con la siguiente jerarquia

2.2.3. unificacion o division de las instrucciones y los datos

2.2.3.1. la segmentacion del procesador obliga a la division

2.2.3.1.1. para evitar riesgos estructurales entres las etapa F y M

2.2.3.2. cuando no se trata del primer nivel se puede optar por unificar

2.2.3.2.1. en bloques de informacion comunes las instrucciones y los datos

2.2.3.3. estas decisiones se toman con ayuda de simulaciones

2.2.3.3.1. y siguiendo reglas empíricas y heuristicas

2.2.4. implementacion de caches multinivel

2.2.4.1. aspecto que mas influye en el rendimiento

2.2.4.2. memoria cache de un unico nivel

2.2.4.2.1. puequeña y rapida o lenta y grande

2.3. politica de ubicacion

2.3.1. la memoria cache almacena solo unos determinados bloques de informacion

2.3.2. tasa de fallo Vs tiempo de acceso

2.3.2.1. correspondencia directa

2.3.2.1.1. a cada bloque de memoria principal le corresponde solo uno de memoria cache

2.3.2.1.2. correspondencia entre memoria principal y cache

2.3.2.1.3. ventajas

2.3.2.1.4. desventajas

2.3.2.2. totalmente asociativa

2.3.2.2.1. cuaquierl bloque de la MP se puede ubicar en cualquier bloque de la MC

2.3.2.2.2. las etiquetas se compran con todas las almacenadas en cache

2.3.2.2.3. ventajas

2.3.2.2.4. inconvenientes

2.3.2.3. asociativa por conjuntos

2.3.2.3.1. dividir la memoria en C conjuntos de B bloques

2.3.2.3.2. se aplica

2.3.2.3.3. solucion intermedia

2.3.2.3.4. reduce el tiempo de acceso e incrementa la tasa de aciertos

2.4. politicas de remplazo

2.4.1. cuando se produce un fallo en MC se debe determinar que bloque de MC se desaloja

2.4.1.1. para traer el bloque que a producido el fallo desde MP

2.4.2. en caso de una cache con asociacion directa solo se puede desalojar un bloque

2.4.3. puede reducir la tasa de fallos de los accesos posteriores a MC

2.4.4. tener en cuenta

2.4.4.1. probabilidad de uso de una pagina

2.4.4.2. coste de intercambio

2.4.5. algoritmos mas usados

2.4.5.1. aleatorio

2.4.5.1.1. su usa un generador de numeros aleatorios para saber el bloque a remplazar

2.4.5.1.2. mas sencilla de implementar y menos costosa

2.4.5.2. FIFO

2.4.5.2.1. remplaza el bloque que ha permanecido mas tiempo en MC

2.4.5.2.2. mas costosa a medida que aumenta el numeor de bloques

2.4.5.2.3. se debe mantener una lista ordenada

2.4.5.3. LRU

2.4.5.3.1. remplaza el bloque de memoria que lleve mas tiempo sin utilizarse

2.4.5.3.2. mas complejo y costoso en cuanto a recursos

2.4.5.3.3. es el que mejor resultados ofrece

2.5. politicas de escritura

2.5.1. la escritura toma mas tiempo

2.5.1.1. puesto que no se puede realizar el trabajo en paralelo

2.5.1.2. en caso de lectura solo se recupera la informacion

2.5.2. politicas

2.5.2.1. escritura directa

2.5.2.1.1. se escribe a la vez en el primer nivel de memoria y en el siguiente de la jerarquia

2.5.2.1.2. en caso de fallo

2.5.2.1.3. ventajas

2.5.2.1.4. desventajas

2.5.2.2. post-escritura

2.5.2.2.1. cuando se modifica una palabra solo se hace en el primer nivel de cache

2.5.2.2.2. para no actualizar la memoria con cada remplazo

2.5.2.2.3. la escritura en el bloque MP se realiza cuando el bloque sucio en MC se remplaza

2.5.2.2.4. ventajas

2.5.2.2.5. desventajas

2.5.3. escritura con ubicacion

2.5.3.1. se asocia con la post-escritura

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

2.5.4. escritura sin ubicacion

2.5.4.1. se asocia con la escritura directa

2.5.4.2. solo se escribe sobre la MP

2.6. buffer de escritura

2.6.1. estructura de hardware

2.6.1.1. se realizan las escrituras en la primera instancia

2.6.1.2. se solapa la escritura con el siguiente nivel de jerarquia

2.6.2. estructura pequeña y rapida organizada como una MC

2.6.3. las escrituras en el buffer suponen una penalizacion menor

2.6.4. si el buffer esta lleno, el procesador debe parar hasta que quede una posicion vacia

2.6.5. escritura directa

2.6.5.1. la escritura se hace palabra a palabra

2.6.5.1.1. en cache y en este buffer en lugar del siguiente nivel de jerarquia

2.6.5.2. el contenido del buffer se volcara

2.6.5.2.1. cuando este lleno

2.6.5.2.2. cuando se produzca un fallo de escritura

2.6.6. post-escritura

2.6.6.1. se usa para volcar los bloques sucios que van a ser remplazados en MC

2.6.6.2. no hay que esperar que el bloque sucio se almacene en el siguiente nivel

2.6.6.2.1. puesto que se almacena temporalmente en el buffer

2.6.6.3. el buffer se volcara en el siguiente nivel

2.6.6.3.1. cuando este lleno

2.6.6.3.2. cuando se produzca un fallo

3. memoria principal

3.1. diseño de memoria principal

3.1.1. chips de memoria

3.1.1.1. matrices cuadradas de celdas de DRAM

3.1.1.2. cada celda almacena un bit

3.1.2. el controlador de memoria que gestiona accesos

3.1.2.1. dentro del propio procesador

3.1.2.2. chipset

3.1.2.3. hub externo

3.1.3. mapea la dirección física a ubicación fisica

3.1.3.1. chip o chips + matrices + filas + columnas

3.1.3.1.1. bits a recuperar

3.1.4. evolución de las tecnologías de memoria

3.1.4.1. desde la DRAM hasta las actuales DDR3

3.2. DRAM convencional

3.2.1. modelo obsoleto

3.2.2. las actuales son el resultado de mejoras sobre la misma

3.2.3. proceso de acceso a memoria

3.2.3.1. el procesador vuelca las direcciones en el bus

3.2.3.2. el controlador la decodifica

3.2.3.3. determina el/los chip/s que deben ser accedidos y las matrices dentro de los mismo

3.2.3.4. envía las matrices(fila y columna) para validarlas

3.2.4. desaprovechamiento de recursos

3.2.4.1. se retpite todo el proceso si

3.2.4.1.1. después de recuperar una fila para extraer una columna

3.2.4.1.2. y a continuación se quiere acceder a una columna de la misma fila

3.3. FPM DRAM

3.3.1. división de la memoria en paginas

3.3.2. los accesos que se encuentran en la misma pagina requieren menos tiempo  de acceso

3.3.3. acceso en modo burst

3.3.3.1. una vez accedida a la columna, se pueden acceder a las siguientes tres columnas de la misma fila

3.3.3.1.1. sin necesidad de volver a cargar las filas de drivers de datos

3.3.3.2. 5-3-3-3

3.3.3.2.1. 5 ciclos para el primer acceso y 3 para los restantes

3.3.3.3. se fabrican con tiempos de acceso de 60 o 7 ns

3.4. SDRAM o DRAM sincronica

3.4.1. las tecnologías eran asincronicas

3.4.1.1. utilizaban sus propias señales de sincronizacion

3.4.1.2. introducían latencia y retardos innecesarios

3.4.2. la tecnología actual es sincronica

3.4.3. la memoria puede funcionar en modos 5-1-1-1

3.4.4. tiempos de accesos entre 10 y 25 ns

3.5. DDR, DDR2, DDR3

3.5.1. DDR

3.5.1.1. transfiere información dos veces cada ciclo de reloj

3.5.1.2. en el falnco de subida y en el de bajada

3.5.2. DDR2

3.5.2.1. permite trabajar a mayores frecuencias

3.5.2.2. permite trabajar a frecuencias tan altas y no tener problemas con el calor

3.5.2.3. se reduce la tencion de alimentación a 1.8V

3.5.3. DDR3

3.5.3.1. para seguir aumentando la frecuencia hasta los 1900 MHz

3.5.3.2. reduce la tensión de alimentación

4. Memoria virtual

4.1. diseño de la memoria virtual

4.1.1. se introduce en la jerarquía de memoria

4.1.1.1. permite multiprogramacion

4.1.1.1.1. protección

4.1.1.2. permite ejecutar procesos mas grandes que la MP

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

4.1.2. la MV no se controla exclusivamente por el hardware

4.1.3. la tecnología es el almacenamiento magnético

4.1.4. la unidad de información no es el bloque

4.1.4.1. si no el segmento y la pagina

4.1.4.1.1. mucho mayores que el bloque y se maneja entre el MC y MP

4.1.5. el alojamiento es siempre asociativo

4.1.6. la política de escritura es siempre post-escritura

4.1.7. mas compleja y difícil de gestionar

4.1.8. latencia del orden ms y no de ns

4.1.9. resolver un fallo de pagina implica un cambio de contexto

4.1.10. decisiones clave a la hora de diseñar un sistema

4.1.10.1. el tamaño de pagina debe ser lo suficientemente grande para amortizar el tiempo de acceso

4.1.10.1.1. tamaño típico entre 4 y 16 KB

4.1.10.1.2. nuevos servidores y desktops se desarrollaron para soportar paginas de 32 y 64 KB

4.1.10.1.3. los nuevos sistemas empotrados utilizan 1KB

4.1.10.2. priman las políticas que reducen el numero de fallos por  pagina

4.1.10.3. los fallos por pagina se manejan por software

4.1.10.3.1. la sobrecarga inducida por los algoritmos es menor que el tiempo de acceso a disco

4.1.10.4. la escritura directa queda descartada

4.1.10.4.1. en su lugar se emplea post-escritura

4.2. organización de la memoria virtual

4.2.1. dirección virutal

4.2.1.1. dirección generada por el procesador

4.2.2. dirección fisica

4.2.2.1. dirección que maneja la unidad de memoria

4.3. MMU

4.3.1. traduce direcciones virtuales a direcciones fisicas

4.3.2. trabaja en el tiempo de ejecución de manera transparente con el CPU