You are on page 1of 30

5.

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

1. Reducir la frecuencia de fallos impidiendo


que dos bloques de memoria compitan por el
cache.
2. La técnica cache multinivel reduce la
penalización por fallo. Se lo considera un
mecanismo calidad precio de coordinación
multi-núcleo. (ComputerGirl, 2016)

Figura 1: Procesador de silicio


3. Expresiones Informáticas
3.1 Tiempo de CPU.

3.2 Ciclos de reloj de parada debido a la memoria.

3.2.1 Ciclo de reloj de parada debido a


escrituras/lecturas.

3.3 Tiempo medio de acceso a memoria (AMAT).

Figura 2: Tiempo de CPU para la clasificación de una


imagen
3.1 Tiempo de CPU (Tiempo de ejecución del
CPU)
𝑇𝑖𝑒𝑚𝑝𝑜 𝑑𝑒 𝐶𝑃𝑈 = 𝑐𝑖𝑐𝑙𝑜 𝑑𝑒 𝑟𝑒𝑙𝑜𝑗 𝑑𝑒 𝑒𝑗𝑒𝑐𝑢𝑐𝑖ó𝑛 𝑑𝑒𝑙 𝐶𝑃𝑈 + 𝑐𝑖𝑐𝑙𝑜𝑠 𝑑𝑒 𝑟𝑒𝑙𝑜𝑗 𝑑𝑒 𝑝𝑎𝑟𝑎𝑑𝑎 𝑑𝑒𝑏𝑖𝑑𝑜 𝑎 𝑙𝑎 𝑚𝑒𝑚𝑜𝑟𝑖𝑎 ∙ 𝑡𝑖𝑒𝑚𝑝𝑜 𝑑𝑒𝑙 𝑐𝑖𝑐𝑙𝑜 𝑑𝑒 𝑟𝑒𝑙𝑜𝑗

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)

Paradas debido al búfer de escritura


• Originadas por que el búfer de escritura está lleno.

𝑁ú𝑚𝑒𝑟𝑜 𝑑𝑒 𝑒𝑠𝑐𝑡𝑖𝑟𝑢𝑎𝑠
• 𝐶𝑖𝑐𝑙𝑜𝑠 𝑑𝑒 𝑟𝑒𝑙𝑜𝑗 𝑑𝑒 𝑝𝑎𝑟𝑎𝑑𝑎 𝑝𝑎𝑟𝑎 𝑒𝑠𝑐𝑟𝑖𝑡𝑢𝑟𝑎𝑠 = ∙ 𝐹𝑟𝑒𝑐𝑢𝑒𝑛𝑐𝑖𝑎 𝑑𝑒 𝑓𝑎𝑙𝑙𝑜 𝑝𝑜𝑟 𝑒𝑠𝑐𝑟𝑖𝑡𝑢𝑟𝑎𝑠 ∙ 𝑃𝑒𝑛𝑎𝑙𝑖𝑧𝑎𝑐𝑖ó𝑛 𝑝𝑜𝑟 𝑓𝑎𝑙𝑙𝑜 𝑑𝑒 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.

𝐴𝑐𝑐𝑒𝑠𝑜 𝑎 𝑚𝑒𝑚𝑜𝑟𝑖𝑎
• 𝐶𝑖𝑐𝑙𝑜𝑠 𝑑𝑒 𝑟𝑒𝑙𝑜𝑗 𝑑𝑒 𝑝𝑎𝑟𝑎𝑑𝑎 𝑝𝑜𝑟 𝑙𝑎 𝑚𝑒𝑚𝑜𝑟𝑖𝑎 = ∙ 𝐹𝑟𝑒𝑐𝑢𝑒𝑛𝑐𝑖𝑎 𝑑𝑒 𝑓𝑎𝑙𝑙𝑜 ∙ 𝑃𝑒𝑛𝑎𝑙𝑖𝑧𝑎𝑐𝑖ó𝑛 𝑝𝑜𝑟 𝑓𝑎𝑙𝑙𝑜
𝑃𝑟𝑜𝑔𝑟𝑎𝑚𝑎

Se puede transformar en:

𝐼𝑛𝑠𝑡𝑟𝑢𝑐𝑐𝑖𝑜𝑛𝑒𝑠 𝐹𝑎𝑙𝑙𝑜𝑠
• 𝐶𝑖𝑐𝑙𝑜𝑠 𝑑𝑒 𝑟𝑒𝑙𝑜𝑗 𝑑𝑒 𝑝𝑎𝑟𝑎𝑑𝑎 𝑝𝑜𝑟 𝑙𝑎 𝑚𝑒𝑚𝑜𝑟𝑖𝑎 = ∙ 𝐼𝑛𝑠𝑡𝑟𝑢𝑐𝑐𝑖𝑜𝑛𝑒𝑠 ∙ 𝑃𝑒𝑛𝑎𝑙𝑖𝑧𝑎𝑐𝑖ó𝑛 𝑝𝑜𝑟 𝑓𝑎𝑙𝑙𝑜
𝑃𝑟𝑜𝑔𝑟𝑎𝑚𝑎
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

• CORRESPONDENCIA DIRECTA: Existe una asignación entre la dirección de


memoria de un bloque y una única posición del nivel superior de jerarquía.

• TOTALMENTE ASOCIATIVA: Un bloque de memoria puede ser asociado a


cualquiera de las entradas de la caché.

• ASOCIATIVA POR CONJUNTOS: Combina el emplazamiento de


correspondencia directa con el emplazamiento asociativo.
Figura 4: Posición de un bloque de memoria cuya dirección es 12 en una cache con 8 bloques según su
emplazamiento.
Figura 5: Ejemplo de cache de 8 bloques configurada por conjuntos.
5. Localización de un bloque en la cache
Cada bloque de una cache asociativa por conjuntos incluye una etiqueta de dirección que viene
determinada por la dirección del bloque.

Figura 6: Cache asociativa por conjuntos


La etiqueta de cada bloque de cache dentro del conjunto apropiado es inspeccionada para comprobar
si se corresponde con la dirección del bloque que envía el procesador. (Patterson y Hennessy, 2011,
p.484)

Figura 7: Frecuencia de fallos de la cache de datos


organizada como la del procesador Fast-MATH

Figura 8: Las tres partes de una dirección de una


cache asociativa por conjuntos o de correspondencia
directa
Partes de una dirección de una cache asociativa por conjuntos o correspondencia directa:
1. Etiqueta
2. Índice
3. Desplazamiento de bloque
La etiqueta se usa para elegir el bloque después de compararla con las etiquetas de los bloques del
conjunto seleccionado .
El valor del índice se usa para seleccionar el conjunto que contiene la dirección de interés.
El desplazamiento del bloque es la dirección deseada de los datos dentro del bloque. (Patterson y
Hennessy, 2011, p.484)
5.1 Elección del bloque a reemplazar

(Patterson y Hennessy, 2011, p.485)


En una cache de correspondencia directa, se necesita un solo comparador, debido a que el dato
solicitado puede encontrarse en un único bloque de la cache, al cual se accede indexándolo.
(Patterson y Hennessy, 2011, p.486)

Figura 9: La implementación de una cache asociativa por conjuntos


de cuatro vías requiere cuatro comparadores y un multiplexor 4 a 1.
5.2 Menos recientemente usado (LRU)
Consiste en realizar el seguimiento de cuándo se utiliza cada elemento del conjunto en relación
con el resto de elementos de ese mismo conjunto.
Para una cache asociativa por conjuntos de dos vías, podemos saber cuándo fueron utilizados los
dos elementos del conjunto manteniendo un único bit en cada conjunto que indique el elemento
referenciado en cada acceso. (Patterson y Hennessy, 2011, p.485)

Extensión: política de reemplazamientos en la


cual el bloque reemplazado corresponde al que no
a sido usado por el periodo de tiempo más largo.
Figura 10: Representación de LRU
6. ¿Qué es el cache multinivel?
En las memorias multinivel encontramos que se añade CPU
un segundo nivel de caché fuera del chip (L2) con un
tiempo de acceso menor que el de la memoria
principal. Caché
L1

Cuando ocurre un fallo en la caché primaria (L1), se


accede a la caché secundaria (L2) para buscar los
datos.(Gomez, 2012)
Caché
L2
- Si están allí se reduce la penalización de fallo.
- Si no están accedemos a la memoria principal.
Normalmente la L1 es de pequeño tamaño y con
asociatividad 2 o 4, y este es el mas cercano al Memoria principal

procesador, mientras que la L2 es grande y con


asociatividad 2, como mucho. (ComputerBlog, 2016) Figura 11: Representación de
cache multinivel
Para reducir aún más el hueco existente entre la alta frecuencia de reloj de los procesadores
modernos y el largo tiempo que se requiere para acceder a las DRAMs, muchos
microprocesadores se apoyan en un nivel adicional de cache.

Si el segundo nivel de cache contiene el dato


Este segundo nivel de cache se encuentra en deseado, la penalización por fallo en el
el mismo chip y se accede cuando se produce primer nivel de la cache será el tiempo de
un fallo en la cache principal.(ITC, sf) acceso al segundo nivel de la cache, que es
mucho menor que el tiempo de acceso a la
memoria principal.

Si los datos no se encuentran ni en la cache


principal ni en la secundaria, se realiza un
acceso a la memoria principal, y se sufre una
penalización más larga por fallo. (Patterson y Hennessy, 2011, p.487)
6.1 Prestaciones de la cache multinivel
EJEMPLO SOLUCIÓN
Suponga que tenemos un procesador con un CPI La penalización por fallo cuando se requiere acceder a
base de 1.0, e imagine que todas las referencias la memoria principal es
aciertan en la cache principal y que la
𝟏𝟎𝟎 𝒏𝒔
frecuencia de reloj es de 4 GHz. Tome un 𝒏𝒔 = 𝟒𝟎𝟎 𝒄𝒊𝒄𝒍𝒐𝒔 𝒅𝒆 𝒓𝒆𝒍𝒐𝒋
𝟎,𝟐𝟓𝒄𝒊𝒄𝒍𝒐 𝒅𝒆 𝒓𝒆𝒍𝒐𝒋
tiempo de acceso a la memoria principal de 100
ns, incluido todo el manejo de fallos. Suponga El CPI efectivo con un único nivel de cache viene
que la frecuencia de fallos por instrucción en la dado por
cache principal es del 2%. ¿Cuánto más rápido
será el procesador si añadiéramos una cache 𝑪𝑷𝑰 𝑻𝒐𝒕𝒂𝒍 = 𝑪𝑷𝑰 𝑩𝒂𝒔𝒆 +
𝑪𝒊𝒄𝒍𝒐𝒔 𝒅𝒆 𝒑𝒂𝒓𝒂𝒅𝒂 𝒑𝒐𝒓 𝒊𝒏𝒔𝒕𝒓𝒖𝒄𝒄𝒊ó𝒏 𝒅𝒆𝒃𝒊𝒅𝒐 𝒂 𝒎𝒆𝒎𝒐𝒓𝒊𝒂
secundaria que tiene un tiempo de acceso de 5
ns tanto para un acierto como para un fallo, y es
lo suficientemente largo como para reducir la
frecuencia de fallos de la memoria principal a
0.5%?
Para el procesador con un nivel de cache

𝑪𝑷𝑰 𝑻𝒐𝒕𝒂𝒍 = 𝟏. 𝟎 + 𝑪𝒊𝒄𝒍𝒐𝒔 𝒅𝒆 𝒑𝒂𝒓𝒂𝒅𝒂 𝒑𝒐𝒓 𝒊𝒏𝒔𝒕𝒓𝒖𝒄𝒄𝒊ó𝒏 𝒅𝒆𝒃𝒊𝒅𝒐 𝒂 𝒍𝒂 𝒎𝒆𝒎𝒐𝒓𝒊𝒂 = 𝟏. 𝟎 + 𝟐% × 𝟒𝟎𝟎 = 𝟗


Con dos niveles de cache, un fallo en la cache principal puede ser resuelto bien por la cache secundaria o por la memoria principal.
La penalización por fallo para un acceso al segundo nivel de la cache es:

𝟓 𝒏𝒔
𝒏𝒔 = 𝟐𝟎 𝒄𝒊𝒄𝒍𝒐𝒔 𝒅𝒆 𝒓𝒆𝒍𝒐𝒋
𝟎, 𝟐𝟓
𝒄𝒊𝒄𝒍𝒐 𝒅𝒆 𝒓𝒆𝒍𝒐𝒋

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:

𝑪𝑷𝑰 𝑻𝒐𝒕𝒂𝒍 = 𝟏 + 𝑪𝒊𝒄𝒍𝒐𝒔 𝒅𝒆 𝒑𝒂𝒓𝒂𝒅𝒂 𝒑𝒐𝒓 𝒊𝒏𝒔𝒕𝒓𝒖𝒄𝒄𝒊ó𝒏 𝒆𝒏 𝒍𝒂 𝒄𝒂𝒄𝒉𝒆 𝒑𝒓𝒊𝒏𝒄𝒊𝒑𝒂𝒍


+ 𝑪𝒊𝒄𝒍𝒐𝒔 𝒅𝒆 𝒑𝒂𝒓𝒂𝒅𝒂 𝒑𝒐𝒓 𝒊𝒏𝒔𝒕𝒓𝒖𝒄𝒄𝒊ó𝒏 𝒆𝒏 𝒍𝒂 𝒄𝒂𝒄𝒉𝒆 𝒔𝒆𝒄𝒖𝒏𝒅𝒂𝒓𝒊𝒂
= 𝟏 + 𝟐% × 𝟐𝟎 + 𝟎. 𝟓% × 𝟒𝟎𝟎 = 𝟏 + 𝟎. 𝟒 + 𝟐. 𝟎 = 𝟑. 𝟒

De este modo, el procesador con la cache secundaria es más rápido en un factor:

𝟗, 𝟎
= 𝟐, 𝟔
𝟑, 𝟒
I.

Figuras I, II, II: Comparación de


Quicksort y Radix Sort utilizando (I) las
instrucciones ejecutadas por elemento
clasificado, (II) el tiempo por elemento
clasificado, y (III) los fallos de cache por
elemento clasificado.

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.

(Patterson y Hennessy, 2011, p.487)


7. Conclusiones
De esta manera, las cuatro expresiones informáticas permiten analizar y determinar mejoras para
el cache del ordenador basándose en su tiempo de respuesta como el de bloqueos.
Por tanto se debe de tener en cuenta los dos factores externos con las cuales un diseñador
desarrolla el componente cache.
Se entendió que a la caché multinivel se le agrega un segundo nivel de caché el cual tiene un
acceso menor al de la memoria principal lo cual reduce la penalización por fallo si los datos
buscados se encuentran en dicha memoria.
Se analizó los dos algoritmos a través de sus respectivas gráficas comparativas concluyendo que
Quicksort tiene menos fallos de caché en comparación con Radix Sort.
Mediante el análisis de los bloques de la memoria cache, pudimos comprobar que se pueden
tener tres tipos de distribuciones en la memoria cache que trabajan mediantes sus bloques.
8. Referencias Bibliográficas

You might also like