Professional Documents
Culture Documents
3 Evaluación y
mejoramiento de las
prestaciones del cache
KE V I N E N DA RA , ROG E R ROM E RO, ROYE R M OR E N O, E R I CK DÍ A Z
A RQ U I TEC TU R A D E CO M P U TA D O RES – 2 0 1 9
CONTENDIO
1. Objetivos
2. Introducción
3. Expresiones Informáticas
4. Reducción de los fallos de cache mediante un emplazamiento
5. Localización de un bloque en la cache
6. ¿Qué es el cache multinivel?
7. Conclusiones
8. Bibliografías
1. Objetivos
Especificar las cuatro expresiones informáticas vinculadas al mejoramiento del cache.
Presentar las dos causas que determinan las prestaciones del cache.
Entender que utilidad tienen las caché multinivel en la reducción de la penalización por fallo.
Analizar el comportamiento de los dos algoritmos de ordenamiento (Radix Sort y Quicksort) para
comprender cual es el más apropiado con respecto al mejoramiento de la cache.
Entender el tipo de distribución que puede tener una memoria cache según el emplazamiento de sus
bloques.
2. Introducción
TÉCNICAS PARA UN MEJORAMIENTO
DEL CACHE
Fallos por
escrituras
Ciclos de reloj de
parada para
escrituras
Paradas por el
Ciclos de reloj de búfer de escritura
parada debido a
la memoria
Ciclos de reloj de Penalización por
parada para fallo, frecuencia
lecturas de fallo
Figura 3: Estructura de los ciclos de reloj de parada debido a la
memoria.
Fuente: Elaboración propia basada en el libro “Estructura y diseño
de computadores”
3.2 Ciclos de reloj de parada debido a la memoria
Producidos por fallos en el cache, en procesadores reales se requiere de una simulación detallada del procesador y
del sistema de memoria. (Patterson & Hennessy, 2011, p. 475)
• 𝐶𝑖𝑐𝑙𝑜𝑠 𝑑𝑒 𝑟𝑒𝑙𝑜𝑗 𝑑𝑒 𝑝𝑎𝑟𝑎𝑑𝑎 𝑑𝑒𝑏𝑖𝑑𝑜 𝑎 𝑙𝑎 𝑚𝑒𝑚𝑜𝑟𝑖𝑎 = (𝑐𝑖𝑐𝑙𝑜𝑠 𝑑𝑒 𝑟𝑒𝑙𝑜𝑗 𝑑𝑒 𝑝𝑎𝑟𝑎𝑑𝑎 𝑝𝑎𝑟𝑎 𝑒𝑠𝑐𝑟𝑖𝑡𝑢𝑟𝑎𝑠 + 𝑐𝑖𝑐𝑙𝑜𝑠 𝑑𝑒 𝑟𝑒𝑙𝑜𝑗 𝑑𝑒 𝑝𝑎𝑟𝑎𝑑𝑎 𝑝𝑎𝑟𝑎 𝑙𝑒𝑐𝑡𝑢𝑟𝑎𝑠)
3.2.1 Ciclos de reloj de parada para lecturas
• Los ciclos de reloj de parada por lecturas se definen como el número de accesos de
lectura por programa, de la penalización por fallo en ciclos de reloj para una lectura
y de la frecuencia de fallo de las lecturas
𝑁ú𝑚𝑒𝑟𝑜 𝑑𝑒 𝑙𝑒𝑐𝑡𝑢𝑟𝑎𝑠
𝐶𝑖𝑐𝑙𝑜𝑠 𝑑𝑒 𝑟𝑒𝑙𝑜𝑗 𝑑𝑒 𝑝𝑎𝑟𝑎𝑑𝑎 𝑝𝑎𝑟𝑎 𝑙𝑒𝑐𝑡𝑢𝑟𝑎𝑠 = ∙ 𝑓𝑟𝑒𝑐𝑢𝑒𝑛𝑐𝑖𝑎 𝑑𝑒 𝑓𝑎𝑙𝑙𝑜 𝑑𝑒 𝑙𝑒𝑐𝑢𝑡𝑟𝑎𝑠 ∙ 𝑃𝑒𝑛𝑎𝑙𝑖𝑧𝑎𝑐𝑖ó𝑛 𝑝𝑜𝑟 𝑓𝑎𝑙𝑙𝑜 𝑑𝑒 𝑙𝑒𝑐𝑡𝑢𝑟𝑎𝑠
𝑃𝑟𝑜𝑔𝑟𝑎𝑚𝑎
3.2.2 Ciclos de reloj de parada para escrituras
Fallos de escritura
• Para continuar con la lectura se requiere buscar el bloque.(UPV, sf)
𝑁ú𝑚𝑒𝑟𝑜 𝑑𝑒 𝑒𝑠𝑐𝑡𝑖𝑟𝑢𝑎𝑠
• 𝐶𝑖𝑐𝑙𝑜𝑠 𝑑𝑒 𝑟𝑒𝑙𝑜𝑗 𝑑𝑒 𝑝𝑎𝑟𝑎𝑑𝑎 𝑝𝑎𝑟𝑎 𝑒𝑠𝑐𝑟𝑖𝑡𝑢𝑟𝑎𝑠 = ∙ 𝐹𝑟𝑒𝑐𝑢𝑒𝑛𝑐𝑖𝑎 𝑑𝑒 𝑓𝑎𝑙𝑙𝑜 𝑝𝑜𝑟 𝑒𝑠𝑐𝑟𝑖𝑡𝑢𝑟𝑎𝑠 ∙ 𝑃𝑒𝑛𝑎𝑙𝑖𝑧𝑎𝑐𝑖ó𝑛 𝑝𝑜𝑟 𝑓𝑎𝑙𝑙𝑜 𝑑𝑒 escrituras +
𝑃𝑟𝑜𝑔𝑟𝑎𝑚𝑎
𝐵𝑙𝑜𝑞𝑢𝑒 𝑝𝑜𝑟 𝑏ú𝑓𝑒𝑟 𝑑𝑒 𝑒𝑠𝑐𝑟𝑖𝑡𝑢𝑟𝑎
Las penalizaciones por el búfer de escritura pueden ser ignoradas sin peligro alguno, en sistemas de
búfer de tamaño razonable.
Se pueden combinar las lecturas y escrituras usando una única frecuencia de fallo y penalización por
fallo.
𝐴𝑐𝑐𝑒𝑠𝑜 𝑎 𝑚𝑒𝑚𝑜𝑟𝑖𝑎
• 𝐶𝑖𝑐𝑙𝑜𝑠 𝑑𝑒 𝑟𝑒𝑙𝑜𝑗 𝑑𝑒 𝑝𝑎𝑟𝑎𝑑𝑎 𝑝𝑜𝑟 𝑙𝑎 𝑚𝑒𝑚𝑜𝑟𝑖𝑎 = ∙ 𝐹𝑟𝑒𝑐𝑢𝑒𝑛𝑐𝑖𝑎 𝑑𝑒 𝑓𝑎𝑙𝑙𝑜 ∙ 𝑃𝑒𝑛𝑎𝑙𝑖𝑧𝑎𝑐𝑖ó𝑛 𝑝𝑜𝑟 𝑓𝑎𝑙𝑙𝑜
𝑃𝑟𝑜𝑔𝑟𝑎𝑚𝑎
𝐼𝑛𝑠𝑡𝑟𝑢𝑐𝑐𝑖𝑜𝑛𝑒𝑠 𝐹𝑎𝑙𝑙𝑜𝑠
• 𝐶𝑖𝑐𝑙𝑜𝑠 𝑑𝑒 𝑟𝑒𝑙𝑜𝑗 𝑑𝑒 𝑝𝑎𝑟𝑎𝑑𝑎 𝑝𝑜𝑟 𝑙𝑎 𝑚𝑒𝑚𝑜𝑟𝑖𝑎 = ∙ 𝐼𝑛𝑠𝑡𝑟𝑢𝑐𝑐𝑖𝑜𝑛𝑒𝑠 ∙ 𝑃𝑒𝑛𝑎𝑙𝑖𝑧𝑎𝑐𝑖ó𝑛 𝑝𝑜𝑟 𝑓𝑎𝑙𝑙𝑜
𝑃𝑟𝑜𝑔𝑟𝑎𝑚𝑎
3.3 Tiempo medio de acceso a memoria (AMAT)
¿Qué ocurre si el procesador fuera más rápido,
¿En que consiste el AMAT?
pero el sistema de memoria no?
Ley de Moore.- Número de transistores se dobla Forma de analizar diseños alternativos de cache.
cada dos años.
Ley de Amdhal.- Si se dobla el número de
𝐴𝑀𝐴𝑇 = 𝑇𝑖𝑒𝑚𝑝𝑜 𝑑𝑒 𝑢𝑛 𝑎𝑐𝑖𝑒𝑟𝑡𝑜 + 𝐹𝑟𝑒𝑐𝑢𝑒𝑛𝑐𝑖𝑎 𝑑𝑒 𝑓𝑎𝑙𝑙𝑜 ∙ 𝑃𝑒𝑛𝑎𝑙𝑖𝑧𝑎𝑐𝑖ó𝑛 𝑝𝑜𝑟 𝑓𝑎𝑙𝑙𝑜
procesadores, el tiempo de ejecución se reduce a
la mitad.(Gilberto Diaz, 2010)
Ley de Amdhal (Libro).- El aumento posible de
las prestaciones con una mejora está limitado por
la cantidad que se usa esa mejora.(Patterson &
Hennesy, 2009, p. 51)
3. 4 Cálculo del tiempo medio de acceso
a memoria
EJEMPLO SOLUCIÓN
Determinar el AMAT para un procesador con El tiempo medio de acceso a memoria por
un ciclo de reloj de 1 ns, una penalización por instrucción es
fallo de 20 ciclos, una frecuencia de fallos de 𝐴𝑀𝐴𝑇 = 𝑇𝑖𝑒𝑚𝑝𝑜 𝑑𝑒 𝑢𝑛 𝑎𝑐𝑖𝑒𝑟𝑡𝑜 +
0.05 fallos por instrucción y un tiempo de 𝐹𝑟𝑒𝑐𝑢𝑒𝑛𝑐𝑖𝑎 𝑑𝑒 𝑓𝑎𝑙𝑙𝑜 ∙
acceso de cache (incluyendo detección de 𝑃𝑒𝑛𝑎𝑙𝑖𝑧𝑎𝑐𝑖ó𝑛 𝑝𝑜𝑟 𝑓𝑎𝑙𝑙𝑜
acierto) de 1 ciclo. Suponga que las
penalizaciones por fallo de lectura y escritura = 0.005 x 20
son iguales e ignorar otras paradas de escritura
= 2 ciclos o 2 ns
4. Reducción de los fallos de cache mediante un
emplazamiento más flexibles de los bloques
Un bloque puede alojarse exactamente en un solo lugar de la cache
𝟓 𝒏𝒔
𝒏𝒔 = 𝟐𝟎 𝒄𝒊𝒄𝒍𝒐𝒔 𝒅𝒆 𝒓𝒆𝒍𝒐𝒋
𝟎, 𝟐𝟓
𝒄𝒊𝒄𝒍𝒐 𝒅𝒆 𝒓𝒆𝒍𝒐𝒋
Si el fallo se resuelve en la cache secundaria, entonces ésta es toda la penalización por fallo. Si el fallo requiere que se acceda a la
memoria principal, entonces la penalización total por fallo es la suma del tiempo de acceso a la cache
secundaria y el tiempo de acceso a la memoria principal. De este modo, para una cache de dos niveles, el CPI total es la suma de los
ciclos de parada originados en ambos niveles de cache y el CPI base:
𝟗, 𝟎
= 𝟐, 𝟔
𝟑, 𝟒
I.
II. III.
El efecto de estos cambios sobre los Dado que el objetivo es
Cuando se compara con un único En comparación, la cache
dos niveles de cache puede hacerse reducir la frecuencia de
nivel de cache, la cache principal secundaria será a menudo de
visible cuando se comparan con el fallos, a menudo utiliza
de una cache multinivel es a mayor capacidad que la cache de
diseño óptimo de un único nivel de una asociatividad mayor
menudo más pequeña un solo nivel.
cache. que la cache primaria.