Вы находитесь на странице: 1из 41

Estructura y diseño de computadores: la interfaz hardware/software (4a. ed.).

Capitulo 5 Tema 5.5


Patterson D y Hennessy J. (2011).
 Determinar si el incremento en el grado de asociatividad en diferentes tamaños de
cache reduce la frecuencia de fallos.
 Reconocer los diferentes métodos que se pueden utilizar para encontrar un bloque
en la memoria caché.
 Identificar las distintas formas en las que se puede reemplazar un bloque en fallo
de la cache.
 Analizar el origen de las fallas y su posible solución de acuerdo a diversos factores
 Cuestión 1: ¿Dónde se puede situar un bloque?
 Cuestión 2: ¿Cómo se encuentra un bloque?
 Cuestión 3: ¿Qué bloque se remplaza en un fallo de cache?
 Cuestión 4: ¿Qué ocurre en una escritura?
 Las tres C
 Conclusiones
 Referencias
A lo largo de este capitulo ya hemos reconocido que los distintos tipos de jerarquías
de memoria comparten varios puntos en común, de los cuales trata este tema.
La siguiente figura muestra cómo algunas de las características cuantitativas de las
jerarquías de memoria pueden diferir.

FIGURA 5.29 Parámetros cuantitativos clave del diseño que caracterizan a los elementos más importantes de la jerarquía de memoria de un
computador.
Recuperado de Estructura y diseño de computadores: la interfaz hardware/software (4a. ed.),Patterson D, Hennessy J,(2011),pág. 518.

Mientras las caches, TLBs, y memoria virtual pueden inicialmente parecer muy
distintas entre sí, se basan en los mismos dos principios de localidad, y su
funcionamiento puede ser entendido a través de cómo resuelven cuatro cuestiones:
(Patterson D, Hennessy J,2011, pág. 522)
El emplazamiento de bloques en el nivel más alto de la jerarquía de memoria puede
utilizar un conjunto de técnicas lo cuales son:
1. Correspondencia directa
2. Asociativa por conjuntos
3. Completamente asociativa.

Recuperado de Estructura y diseño de computadores: la interfaz hardware/software (4a. ed.),Patterson D, Hennessy J,(2011),pág. 518.
FIGURA 5.14 Una cache de ocho bloques configurada bien en correspondencia directa, asociativa por conjuntos de dos vías, asociativa por
conjuntos de cuatro vías, o completamente asociativa.
Recuperado de Estructura y diseño de computadores: la interfaz hardware/software (4a. ed.),Patterson D, Hennessy J,(2011),pág. 418.
Entonces como ubicamos el bloque en la cache.
 Correspondencia directa:

Posición del bloque = N° de etiqueta del bloque MOD bloques de la cache.


 Asociativa por Conjuntos:

Conjunto que contiene un bloque = N° de etiqueta del bloque MOD N° de conjuntos de la cache
 Totalmente asociativa:

En cualquier posición.
Ruiz N.(2015). pág. 75

FIGURA 5.13 La posición de un bloque de memoria cuya dirección es 12 en una cache con 8 bloques
varía según sea el emplazamiento: de correspondencia directa, asociativo por conjuntos o completamente
asociativo.
Recuperado de Estructura y diseño de computadores: la interfaz hardware/software (4a. ed.),Patterson D,
Hennessy J,(2011),pág. 480.
 La ventaja de incrementar el grado de asociatividad consiste en que normalmente
se disminuye la frecuencia de fallos.
 La mejora en la frecuencia de fallos se origina por la reducción de los fallos que
compiten por la misma posición.

FIGURA 5.30 Frecuencias de fallos de la cache de datos para ocho tamaños de cache mejora a medida que aumenta la asociatividad.
Recuperado de Estructura y diseño de computadores: la interfaz hardware/software (4a. ed.),Patterson D, Hennessy J,(2011),pág. 519.
En resumen:

Correspondencia Ventajas Inconvenientes

Directa Acceso simple y rápido Alta tasa de fallos cuando varios


bloques compiten por el mismo
marco.
Asociativa por conjuntos Es un enfoque intermedio entre Al aumentar el grado de
emplazamiento directo y asociatividad aumenta el tiempo
totalmente asociativo. de acceso y el coste de hardware.
El grado de asociatividad afecta al
rendimiento, al aumentar el grado
de asociatividad disminuyen los
fallos por competencia de un
marco.
Totalmente asociativa Máximo aprovechamiento de la Una alta asociatividad impacta
memoria cache directamente en el acceso a la
memoria cache.
 Es aquella forma en la que se representan los niveles de
memoria cache, por importancia y rapidez. “Esta es
categorizada en niveles que describen que tan cercana
está al microprocesador.”
1. L1: Esta memoria cache es extremadamente rápida pero
relativamente pequeña.
2. L2:Es un poco más grande que la cache L1 pero es de
esperar cierta latencia.
3. L3:Está especializada en la mejora del funcionamiento
de las memorias L1 y L2.

Recuperado de Echart, 18 de
Imagen recuperada de Echart, 18 de Marzo
Marzo 2018, ¿Qué es la Cache L1,
2018, ¿Qué es la Cache L1, L2 y L3 en los
L2 y L3 en los Procesadores?.
Procesadores?.
https://uruguayoc.com/2018/03/18/
https://uruguayoc.com/2018/03/18/que-es-el-
que-es-el-cache-l1-l2-y-l3-en-los-
cache-l1-l2-y-l3-en-los-procesadores/
procesadores/
 “La memoria virtual es
una técnica utilizada
por los sistemas
operativos para
acceder a una mayor
cantidad de memoria
de la físicamente
disponible,
recurriendo a
soluciones de
almacenamiento
alternativas cuando se
agota la memoria RAM
instalada.”

Recuperado de Cabacas, 20 de Diciembre 2016, Que


es la memoria Virtual de Windows y cómo
configurarla bien, Imagen recuperada de Cabacas, 20 de Diciembre 2016, Que es la memoria Virtual de Windows y cómo configurarla
https://www.muycomputer.com/2016/12/20/la- bien, https://www.muycomputer.com/2016/12/20/la-memoria-virtual-windows-configurarla-bien/
memoria-virtual-windows-configurarla-bien/
 Se puede localizar de varias formas un bloque, este puede ser dependiendo del
método de emplazamiento de estos, pues se determina por el número de posibles
localizaciones.
 Así tenemos:

Recuperado de Estructura y diseño de computadores: la interfaz hardware/software (4a. ed.),Patterson D, Hennessy J,(2011),pág. 520.
Recuperado de Estructura y diseño de computadores: la interfaz hardware/software (4a. ed.),Patterson D, Hennessy J,(2011),pág. 520.

 Esta se lleva a cabo por la comparación de los indices al que se ubica el dato dentro
del bloque de la memoria cache. Uno de sus inconvenientes es que al tener una
posición fija, suele dar varios fallos, “cada bloque tiene asignada una posición fija en la
memoria caché y ante continuas referencias a palabras de dos bloques con la misma
localización en caché, hay continuos fallos habiendo sitio libre en la caché”
Recuperado de Wikipedia, 9 de Abril 2019, Caché, https://es.wikipedia.org/wiki/Cach%C3%A9_(inform%C3%A1tica)

Imagen recuperada de Wikipedia, 9 de Abril 2019, Caché, https://es.wikipedia.org/wiki/Cach%C3%A9_(inform%C3%A1tica)


“El emplazamiento asociativo por conjuntos es a menudo utilizado por las caches y
las TLBs, donde el acceso combina una indexación y una búsqueda dentro de un
pequeño conjunto.”

Recuperado de Estructura y diseño de computadores: la interfaz hardware/software (4a. ed.),Patterson D, Hennessy J,(2011),pág. 520.
 Generalmente se puede encontrar este método, cuando hablamos de las memorias
Virtuales, debido a tres razones:

“1. La asociatividad completa es beneficiosa, ya que los fallos son muy costosos.
2. La asociatividad completa permite que el software utilice métodos sofisticados
de reemplazos diseñados para reducir la frecuencia de fallos.
3. El mapa de correspondencias completo puede indexarse fácilmente sin necesidad de
hardware adicional ni que se aplique ningún método de búsqueda.”

Recuperado de Estructura y diseño de computadores: la interfaz hardware/software (4a. ed.),Patterson D, Hennessy J,(2011),pág. 520.
 Cuando se produce un fallo, se debe decidir qué bloque será reemplazado, por lo
que:
 Si es completamente asociativa se debe reemplazar todos los bloques.
 Si es asociativa por conjuntos, se escoge entre los bloques del conjunto.
 Y la más sencilla es por correspondencia directa, pues solo existe un candidato a
ser reemplazado.

 “Ya hemos mencionado las dos estrategias de reemplazos más importantes para
caches asociativas por conjuntos o completamente asociativas:
1. Aleatoria
2. Menos reciente usado (LRU)”
Recuperado de Estructura y diseño de computadores: la interfaz hardware/software (4a. ed.),Patterson D, Hennessy J,(2011),pág. 521.
 “En el caso del reemplazo aleatorio se elige de forma aleatoria entre uno
cualquiera de los bloques de caché candidatos.”

Recuperado de uniovi, Breves Conceptos Teóricos, http://www.atc.uniovi.es/inf_med_gijon/3ingcomp/practicas/SMC/teor%C3%ADa-conceptos.htm

 “Cuando se necesita espacio se selecciona aleatoriamente un candidato a descartar.


Este algoritmo no requiere guardar información sobre la historia de accesos. Dada su
simplicidad, ha sido usado en procesadores ARM.”
Recuperado de Wikipedia, 15 de Febrero 2019, Algoritmo de Caché, https://es.wikipedia.org/wiki/Algoritmo_de_caché
 “Descarta primero los elementos menos usados
recientemente. El algoritmo lleva el seguimiento de
lo que se va usando, lo que resulta caro si se quiere
hacer con precisión.”

Recuperado de Wikipedia, 15 de Febrero 2019, Algoritmo de


Caché, https://es.wikipedia.org/wiki/Algoritmo_de_caché

 “3.1 Experimento de Simulación


Los experimentos en la subsección son trazos artificialmente
generados. Ellos dan cierta intuición acerca de la diferencia
entre LRU, LRU/2 y 2Q, pero no necesariamente representa una
real aplicación entre estos.”

Recuperado de SHASHA Dennis, 2Q: A Low Overhead High


Performance Buffer Management Replacement Algorithm , Imagen recuperada de SHASHA Dennis, 2Q: A Low Overhead
http://www.vldb.org/conf/1994/P439.PDF High Performance Buffer Management Replacement Algorithm ,
http://www.vldb.org/conf/1994/P439.PDF
 Un aspecto clave de cualquier jerarquía de
memoria consiste en saber como se tratan las
escrituras:

 1)Escritura Directa

(Una cache de correspondencia directa con ocho entradas donde se muestran las
direcciones de palabra de memoria principal que van desde la 0 a la 31 y que se
corresponden con las mismas entradas a la cache)

 2)Escritura Retardada(Denominada también copia retardada)


 1)Las palabras pueden ser individualmente almacenadas por el
procesador al ritmo de la cache, en vez del que pueda aceptar la
memoria principal

 2)Múltiples escrituras dentro del bloque requieren sólo una


escritura en el nivel inferior de la jerarquía

 3)Cuando los bloques se actualizan en el nivel inferior de la


jerarquía, el sistema puede hacer uso de un alto ancho de banda, ya
que se escribe el bloque entero
 1) Los fallos son mas simples
y menos costosos debido a que nuca
requieren que un bloque sea actualizado en el nivel inferior de la
jerarquía.

 2)La escritura directa es mas sencilla de implementar que la escritura


retardada, aunque para ser prácticos en un sistema de alta frecuencia, una
cache de escritura directa necesitará usar un búfer de escritura.
 3)Los fallos de lectura no ocasionan escrituras en el nivel inferior

 4) Es mucho más fácil de implementar que la escritura Retardada

 5)Mantiene siempre coherente la memoria cache y la memoria


inferior( útil en sistemas de multiproceso en los que varias CPU’s
acceden simultáneamente a los datos)
 Mientras las caches TLBs, y memoria virtual pueden parecer muy
distintas entre si, se basan en los mismos principios de localidad y su
funcionamiento puede ser entendido atraves de estas 4 cuestiones:
 ¿Dónde se puede situar aun bloque?
 ¿Cómo se encuentra un bloque?
 ¿Qué bloque se reemplaza en un fallo?
 ¿Cómo se manejan las escrituras?
 Modelo de cache en el que los fallos se clasifican por categorías:

 Fallos Obligatorios (Compulsory misses)

 Fallos de Capacidad (Capacity misses)

 Fallos de Conflicto (Conflict misses)


 Fallos obligatorios
Son causadas por el primer acceso a un dato que nunca ha estado en el caché.
también llamadas fallos en frio.

 Fallos de capacidad
Son causadas por que la cache no puede contener todos los bloques que necesita un
programa durante su ejecución.

 Fallos de conflicto
Ocurren en cachés de mapeo directo o por conjuntos cuando múltiples bloques
compiten por el mismo conjunto. También llamadas fallas de colisión.
0,006%

Frecuencia de fallos total y sus componentes para un rango de capacidades de las cache.

(Patterson y Hennessy, 2011)


 Los fallos de conflicto surgen directamente de la competencia por el mismo bloque de cache, el
aumento de la asociatividad reduce los fallos de conflicto

 Los fallos de capacidad pueden fácilmente ser reducidos agrandando la cache.

 Los fallos obligatorios son generados por el primer acceso a un bloque, la


forma que principalmente usa un sistema cache para reducir el número de fallos
obligatorios consiste en incrementar el tamaño de bloque.

 Caché víctima. Consiste en añadir una pequeña caché totalmente asociativa (1-5 bloques) para
almacenar bloques descartados por fallos de capacidad o conflicto.

 Optimización del compilador.

 La descomposición de los fallos constituye un modelo cualitativo útil.

(Técnicas de aumento de prestaciones para memoria y E/S. Osan Lopez L. 18 de septiembre de 2015)
(Patterson y Hennessy, 2011)
 Coherencia (Coherence): El bloque se encuentra en caché en estado inválido
ante una lectura o sin permiso de escritura ante una escritura debido a la solicitud
del bloque por otro procesador.

 Cobertura (Coverage): El bloque se encuentra en caché pero en estado inválido


(sin permisos) debido a una invalidación emitida a causa de un reemplazo en el
directorio, que causa la pérdida de la información de compartición.

(EMC2: Extending Magny-Cours Coherence for Large-Scale Servers)


 Caches pequeñas y simples: Las caches pequeñas permiten tiempos de acierto
reducidos pero tienen poca capacidad.
 En las caches de correspondencia la comprobación de la etiqueta y el acceso al
dato se hace al mismo tiempo.
 Evitar la traducción de direcciones. Evita la traducción durante la indexación de la
cache (consiste en almacenar direcciones de la caché, evitando así la traducción
de direcciones virtuales a físicas en caso de acierto)
 Escrituras en pipeline para aciertos en escritura rápidos. Consiste en crear un
pipeline para las operaciones de escritura, de manera que la escritura actual se
hace solapada en el tiempo con la comparación de etiquetas de la escritura
siguiente

(EMC2: Extending Magny-Cours Coherence for Large-Scale Servers)


Fusión de arrays:

Estructura de Computadores, Facultad de Informática, UCM


Fusión de bucles:

Estructura de Computadores, Facultad de Informática, UCM


 Se concluye que si se incrementa el grado de asociatividad, la frecuencia de fallos
disminuye considerablemente y depende del tamaño de la cache pues si la cache
es de menor tamaño la disminución en frecuencia de fallos será mayor y si la
cache tiene un tamaño considerable la frecuencia de fallos disminuirá poco o nada
en lo absoluto.
 El diseño de las jerarquías de memorias consiste en que cada cambio que
potencialmente mejora la frecuencia de fallos puede también afectar
negativamente a las prestaciones globales.
 En conclusión, existen diferentes formas en las que se puede encontrar un bloque
y que una de las más recomendable es la completamente asociativa por los
beneficios que nos brinda, además, reconocimos los dos métodos en lo que
generalmente se reemplaza un bloque con respecto a la forma en la que se
encontró dicho bloque, como puede ser LRU.
 El diseño de las jerarquías de memorias consiste en que cada cambio que
potencialmente mejora la frecuencia de fallos puede también afectar
negativamente a las prestaciones globales
 Patterson D y Hennessy J. (2011). Estructura y diseño de computadores: la interfaz
hardware/software (4a. ed.).
 Ruiz N.( 2015). Estructura y tecnología de ordenadores. Recuperado de
https://slideplayer.es/slide/3526381/
 Técnicas de aumento de prestaciones para memoria y E/S. Osan Lopez L. 18 de
septiembre de 2015
 “EMC2: Extending Magny-Cours Coherence for Large-Scale Servers” Ros,
Alberto; Cuesta, Blas; Fernández-Pascual, Ricardo; Gómez, María E.; Acacio, Manuel
E.; Robles, Antonio; García, José M.; Duato, José (2010).
 Estructura de Computadores, Facultad de Informática, UCM, Curso 11-12
Recuperado de : https://www.fdi.ucm.es/profesor/jjruz/WEB2/Temas/EC6.pdf
 Sistemas Operativos Multiusuario de la FCA – UNAM. Políticas de Escritura. Lugar
de publicación: ConocimientosWeb.Net
Recuperado de:
https://www.conocimientosweb.net/dcmt/ficha15292.html?fbclid=IwAR3n9eveJMf70
nQWpbznu3UMyFgIeGx_yXSnUbQH9IR_u3a2dPyZJpIeoZc
 “Marcelo A.Tosini (2007) Jerarquía de Memorias”
Recuperado de: https://www.slideshare.net/rmrivera03/jerarquia-de-memorias”
 “Echart Sergio (2018) Que es el cache L1, L2 y L3 en los Procesadores”
Recuperado de: https://uruguayoc.com/2018/03/18/que-es-el-cache-l1-l2-y-l3-en-
los-procesadores/
 “Cabacas Tómas (2016) Que es la memoria Virtual de Windows y como
configurarla bien”
Recuperado de: https://www.muycomputer.com/2016/12/20/la-memoria-virtual-
windows-configurarla-bien/
 “Wikipedia (2019) Algoritmo de caché”
Recuperado de: https://es.wikipedia.org/wiki/Algoritmo_de_caché
 “Wikpedia (2019) Caché(Informática)”
Recuperado de: https://es.wikipedia.org/wiki/Cach%C3%A9_(inform%C3%A1tica)
 “Shasha Dennis () 2Q: A Low Overhead High Performance Buffer Management
Replacement Algorithm ”
Recuperado de: http://www.vldb.org/conf/1994/P439.PDF
 Uniovi () Breves Conceptos Teóricos”
Recuperado de:
http://www.atc.uniovi.es/inf_med_gijon/3ingcomp/practicas/SMC/teor%C3%ADa-
conceptos.htm

Вам также может понравиться