Introduccion

En memorias buscamos tener velocidad,capacidad -> pero a la hora de hablar de memoria con la cpu necesitamos que sea lo mas rapida posible, de esta manera la jerarquia de memorias sera 1º registros de la cpu, 2º memoria cache, 3º memoria principal y los discos.
Funciona de la siguiente manera : la CPU solicita acceso a una posicion de memoria, se comprueba si esta en el nivel 1, si esta se da acceso, si no esta , se va mirando nivel a nivel si por ejemplo esta en el nivel 3 este la pasara al 2 y este al 1 hasta llegar a la cpu.
Bloque agrupacion de palabras de memoria consecutivas.

Memoria Cache

Memoria rapida y de pequeña capacidad, situada entre la CPU y la memoria principal

  • Almacenamiento (lineas): donde se alberga los bloques que se suben del siguiente nivel
  • Directorio: Que bloque de MP está almacenado en cada línea
  • Controlador: Implementa todas las políticas y realiza el servicio a los fallos

  • Tiene diferentes decisiones de diseño -> Políticas de ubicacion, extraccion,reemplazo,escritura y tamaño.
  • Ubicacion -> Directa :Cada bloque de Mp puede ubicarse solo en una línea predefinida de Mca (bloque i -> linea (i modulo L) siendo L nº lineas de la cache ) la pega que tiene es que puede producir fallos , Asociativa: Cada bloque de Mp puede ubicarse en cualquier línea de Mca , esta tiene mayor complejidad y coste , Asociativa por conjuntos: Cada bloque de Mp puede ubicarse en cualquier línea dentro de un conjunto predefinido de líneas de Mca (bloque i -> conjunto (i modulo C) siendo C = nº conjuntos de la cache).
  • Politicas de extraccion: Deciden cuando y que bloque se lleva a la cache, Bajo demanda: Se lleva a la caché el bloque que produce el fallo , Con anticipacion : Se llevan a la cache bloques que previsiblemente se van a necesitar en un futuro proximo.
  • Politicas de reemplazo: Deciden que bloque se “desaloja” de la cache para albergar al bloque que llega de Mp. FIFO (First in, First out) se cambia el mas antiguo de la Mca, LRU (Least recently used) Se reemplaza el bloque al que no se ha accedido durante un mayor periodo de tiempo
  • Politicas de escritura: Deciden cuando se actualiza la informacion en el siguiente nivel.1º con acierto en el acceso : Write-through (escritura inmediata) Se escribe en la cache y en el siguiente nivel de la jerarquia . Copy-back (escritura aplazada) Se escribe solo en la cache. 2º Sin acierto : With allocation (con ubicacion) EL bloque se envía a caché, With no allocation : el bloque no se envia a la cache

  • Tipos de fallos en cache :
  • De primera referencia
  • de conflicto
  • de capacidad

  • Se puede medir el rendimiento por tanto en Nº de accesos a cierta Mca / Nº total de accesos y Tiempo medio de acceso: Tiempo medio transcurrido desde que la CPU realiza una petición al sistema de memoria hasta que puede continuar. Tef = Tmca + (1-HRmcha)x Tpenalizacion. Ademas podemos obtener el tiempo medio de ocupacion = Tefectivo + TactualizacionMCA
    Reducción del Tiempo de penalización ->
  • Lectura fuera de orden (out of order fetch) : Enviar la palabra que produjo el fallo a la cache y a la CPU. 2º En Lecturas Enviar el resto de las palabras del bloque a la cache
  • Cache multinivel: Jerarquia de memorias cache,Si fallo en McaL1 y acierto en McaL2 -> tasa de fallos local (1-Hr)local = nºfallos en li / nºaccesos a Li . -> Tasa de fallos global (1-Hr)Global_Li = nºfallos en Li / nº total accesos al SM. -> Para L1 (1-Hr)local= (1-Hr)Global
  • Memoria Principal

    Parametros -> Tacceso o latencia : tiempo en L/E . Ancho de banda : nº de bytes que se puede transmitir desde mp
    Organizacion entrelazada: Organizar la Mp como K módulos a los que se puede acceder simultaneamente (“entrelazado de orden K ”), K potencia de 2

    Memoria Virtual

    Programas no limitados por la capacidad de la Mp disponible, Capacidad aparente >> Capacidad de la Mp. En entornos multiprogramacion -> Proteccion y compartición de información -> Reubicacion dinamica. Espacio de direcciones logico (EDL) y Espacio de direcciones fisico (EDF)

  • Paginacion bloques de tamaño fijo: paginas -> Correspondencia entre paginas virtuales y marcos de pagina. Tamaño de paginas 2k bytes -> Implementacion de la traduccion: Tabla de páginas, una tabla por proceso + RBTP
  • Segmentacion bloques de tamaño variable: segmentos
  • Segmentacion paginada: segmentos, compuestos a su vez por paginas -> Ubicacion en Mp solo de las partes del segmento utilizadas, asignacion de bloques de Mp de tamaño fijo (paginas). Proteccion y comparticion a nivel de segmento

  • TLB (translation lookaside buffer): -> si acierto en TLB traducción finalizada -> si no acceso a las tablas de traducción en Mp y actualización de la TLB.

    Examenes

    Conceptos de examenes


    Caso 1 : Para iniciar el acceso a la memoria cache se necesita identificar el bloque (en el caso de una cache directa) o el conjunto (si es una cache asociativa por conjuntos). Al tener memoria virtual se requiere disponer de los bits que identifican el bloque o el conjunto para poder iniciar el acceso a la cache. Esos bits se conocen antes de traducir la direccion virtual si y solo si forman parte del desplazamiento en la pagina, ya que en ese caso no necesitan traduccion. Utilizando paginas de 8kB (213 bytes) los 13 bits menos significativos de la direccion virtual no se traducen. Del mismo modo, con paginas de 16kB se tienen 14 bits, de 32 kB, 15 bits, y con paginas de 64 kB, son 16 los bits que no se traducen. Por otra parte, una memoria cache de 32kB (215 bytes) con ubicacion directa necesita 15 bits para identificar bloque de cache y byte dentro del bloque, independientemente del tamano del bloque. Si fuera asociativa por conjuntos de 2 necesitarıa 14 bits para esa misma funcion (en este caso identificar conjunto y byte en bloque) y, siendo asociativa por conjuntos de 4 lıneas, necesita 13 bits. Del mismo modo, en el caso de la cache de 64kB y asociativa por conjuntos de 4 se requieren 14 bits para identificar el conjunto y el byte dentro del bloque. En definitiva, se podrıa solapar el acceso con cualquiera de las combinaciones mencionadas de tamano de pagina y de tamano de cache excepto con la pagina mas pequena (8kB) en combinacion con la cache mas grande (64kB). En este caso se dispone de 13 bits y se necesitarıan 14. b) Segun lo indicado en el apartado anterior, podrıa solaparse la traduccion en TLB con el acceso a la cache directa utilizando paginas de 32kB con cache de 32kB o bien paginas de 64kB con cache de 32kB o de 64kB.
    jerarquıa de memorias: Son los principios de localidad de referencias: localidad espacial, referida a la propiedad por la que el procesador accede frecuentemente a direcciones cercanas a otra a la que ha accedido recientemente, y localidad temporal, referida a la propiedad por la que el procesador accede frecuentemente a las mismas direcciones a las ya ha accedido recientemente.

    Formulas y terminos


    Cache -> [ etiqueta | conjunto | byte en BLoque ] ; capacidad de la cache / tam bloque = nº bloques ; el n bloques lo dividimos entre el numero de bloques por conjuntos = eso nos dice el numero de conjunto (con ese numero lo pasamos a exponente 2 para saber cuantos bit necesitamos para dirreccionar ese numero de conjuntos). Con el numero de bit para conjunto y los de un bloque podemos sacar la etiqueta restando al total.
    La tasa de acierto global, indicada como HrG, a partir de la tasa de acierto observada en el primer y segundo nivel, Hr1 y Hr2 respectivamente, se expresa como: HrG = Hr1 + (1 − Hr1) × Hr2
    WTWNA y Out of Order Fetch
    acierto en TLB y fallo en memoria cache -> tacc = tTLB + tMca + tMP
    fallo de traducci´on en TLB, por lo que se realizan Nº(niveles) accesos extra a memoria principal -> tacc = tTLB + Nªniveles × tMP + tMca + tMP
    polıtica de lectura out of order fetch (OOF en cuanto se lee la primera palabra del bloque el procesador ya puede continuar) y politica de reemplazo LRU. CBWA
    T minimo de lectura : El tiempo minimo de acceso a la informacion, tanto para lecturas como para escrituras, se da cuando hay acierto en la memoria cache: Tmin = TMca.
    El tiempo maximo de acceso en caso de lectura se da cuando se accede a datos, hay fallo en la memoria cache de datos, el bloque elegido para ser reemplazado esta modificado y, finalmente, hay que acceder a memoria principal para leer el nuevo bloque, aunque, por la politica de lectura OOF, en cuanto se haya leido la primera palabra el procesador podra continuar: Tmax lect = TMca + TMpbq + TMpr
    numero de bloques que ocupan las estructuras de datos: (Nº total elementos× Nº B/elemento) / Nº B/bloque . (Si ocupan un numero entero de bloques y estan ubicados en memoria principal consecutivamente, todas las estructuras de datos estan alineadas a bloque)
    Fallos:
    Fallos de primera referencia : son los fallos cuando los elementos que buscamos no estan , en la mayoria de ejercicios no estan contenidos y el numero total de elementos es el numero total de fallos.
    N accesos a memoria: Numero de elementos x el numero de veces que se accede a ese elemento
    T total accesos : igual pero multiplicando por el tiempo segun es lectura o escritura hay que tener en cuenta los fallos y los elementos fallidos multiplicarlos por ese tiempo.
    t medio acceso = T total acceso / n accesos