El documento describe las mejoras en el subsistema de caché de los procesadores AMD Zen en comparación con modelos anteriores. Zen presenta una caché L0i de instrucciones, cachés L1d y L1i más grandes y con mayor asociatividad, una caché L2 discreta por núcleo de 512KB y 8 vías, y una caché L3 multi-banco de 8MB por clúster con mejoras significativas en ancho de banda y latencia en comparación con Bulldozer. Estas mejoras deberían mejorar considerablemente el re
1. Blog | informaticapremium
Derechos Reservados - Carlos Yus Valero – informaticapremium - 2017
Blog | informaticapremium
AMD Zen Cache Publicado el 20 octubre, 2016
AMD Zen cache: La nueva micro arquitectura de AMD presenta un subsistema de caché
muy diferenciado y evolucionado respecto a su antecesor AMD Bulldozer 32 nm y sus
derivativas.
AMD Zen cache: Op cache L0i en AMD Ryzen
Para empezar AMD integra una op caché. Una caché L0i de instrucciones que acelera
mucho el procesamiento.
Si su tamaño ronda los 8 KB (AMD no lo ha desvelado) tendría una tasa de aciertos
del 80 – 90 %. Esto liberaría de mucho trabajo a los decoders y reduciría el consumo
de manera importante.
Este tipo de op caché L0i la utiliza Intel desde Sandy Bridge 32 nm y le ha dado
excelentes resultados en prestaciones y reducción de consumo.
2. Blog | informaticapremium
Derechos Reservados - Carlos Yus Valero – informaticapremium - 2017
Desde entonces Intel la ha mantenido en esencia invariada en sus siguientes
generaciones:
Sandy Bridge 32 nm
Ivy Bridge 22 nm
Haswell 22 nm
Broadwell 14 nm
Skylake 14 nm
La µop cache en estas todos estos procesadores es de 1.5 Kops, unos 6 KB.
En el caso de AMD Zen todavía no es público su tamaño ni su asociatividad u
organización, solo se apunta el término Large Op cache. A mí me suena bien …
AMD Zen Cache – Cachés L1: L1d (datos) y L1i (instrucciones)
Por fin… Se ha dejado atrás el diseño write thru de Bulldozer (similar al Intel Pentium
4) en favor de un mucho más óptimo y moderno esquema write back.
AMD Zen – Jerarquía de cachés
La caché L1i es de 64 KB y sobretodo, el paso a 4 vías de asociatividad, marca un
importante paso adelante.
3. Blog | informaticapremium
Derechos Reservados - Carlos Yus Valero – informaticapremium - 2017
AMD se había caracterizado desde el procesador Athlon por asociatividades de 2 vías
en sus diseños L1i. Excepto Steamroller 28 nm y Excavator 28 nm que contaban con 96
KB y 3 vías.
El tamaño de 64 KB es perfecto asegurando una muy alta tasa de aciertos. Es capaz
de transferir 32 bytes, 256 bit, al core por ciclo (Instruction Fetch).
Por su parte la caché L1d tiene 8 vías y 32 KB, para mí un compromiso excelente.
Tiene 2 puertos de lectura y 1 de escritura, todos ellos de 128 bit y soporta 72 lecturas
y 44 escrituras out of order en cola.
Unos números muy similares a Intel Skylake (la última arquitectura de Intel) y que
marcan una gran diferencia con anteriores cores de AMD.
Especulando, apostaría que las latencias L1 son de 4 ciclos load to use y la L0i debería
rondar los 2 ciclos, como la µop cache de Intel.
En Sandy Bridge 32 nm medí su latencia en 2 ciclos: Blogs de Micro arquitectura.
Intel Sandy Bridge: Instruction cache: la L0i obtiene una increíble latencia de 2 ciclos.
Según AMD, la caché L1 de Zen mejora en un factor 2X el ancho de banda de la de
Excavator.
4. Blog | informaticapremium
Derechos Reservados - Carlos Yus Valero – informaticapremium - 2017
AMD Zen cache – La caché L2
La L2 de AMD Zen / Ryzen es discreta por core con 512 KB y 8 vías de asociatividad. Un
muy buen diseño ya que el óptimo actual está entre los 256 KB (actuales diseños de
Intel) y los 512 KB.
Habrá que ver qué latencia nos presenta, lógicamente estará sobre los 13 – 15 ciclos,
más sería excesivo. Según datos oficiales mejora el rendimiento un 100% respecto a
Excavator (cosa no muy difícil…)
Diagrama de caché AMD Zen
A mí particularmente me gusta la reducción a 512 KB, un tamaño más lógico. y la
asociatividad, 8 ways, correcta.
AMD Zen cache – La caché L3 multi banco: 8 MB por clúster
La caché L3 de Zen fácilmente superará los 35 ciclos, lógicamente estará sobre 40 -
45. No debería ir más allá si quiere servir a las prestaciones.
5. Blog | informaticapremium
Derechos Reservados - Carlos Yus Valero – informaticapremium - 2017
En la imagen he marcado los 4 cores Zen de un clúster de 4 cores, sus 4 bancos L3 de
2 MB, 8 MB de L3 por clúster, 16 MB de totales L3 por chip.
AMD cifra en 5X el incremento de ancho de banda para la L3 de Zen respecto al terrible
rendimiento de la L3 de Bulldozer.
Espero que también reduzca su latencia unos 10 o 15 ciclos. Recordemos que los
números de la latencia L3 de Bulldozer fueron espantosos. Rondaba los 60 (!!) ciclos
efectivos load to use…
Diseño L3 victim cache
Lo que menos me gusta del diseño L3 de AMD Zen es que es una Victim Cache L3 y que
hay físicamente 2 cachés L3 de 8 MB por chip.
Es un diseño más sencillo, pero también menos efectivo que la organización de L3 de
Intel.
Intel utiliza una unificada y con acceso mediante ring bus bidireccional de alto ancho
de banda.
El diseño Victim Cache significa que la L3 se nutre solamente con los datos eliminados
(evicted) de las caché L2 de cada core.
Los datos no utilizados o desplazados por datos más recientes en las cachés L2 de Zen
van directamente a la caché L3 de su clúster.
6. Blog | informaticapremium
Derechos Reservados - Carlos Yus Valero – informaticapremium - 2017
Me gusta la reducción de asociatividad a 16 vías desde las 64 de del AMD Piledriver 32
nm FX 8350. 64 vías resultaba tan excesivo…
Este paso ayudará a reducir la latencia L3.
Snoop filter en Ryzen 8 core
EL AMD Ryzen 8 core, 2 clusters de 4 cores y 2 cachés L3 independientes de 8 MB tengo
la duda de si se implementa un Snoop Filter.
Un Snoop Filter reserva un espacio en la caché L3 (p.e. 1 MB en cada una de las cachés
L3 de 8 MB) para almacenar información.
Esta información sirve para reducir el tráfico de coherencia entre las 2 cachés L3.
Quizás AMD active Snoop Filtering en las versiones server y no en escritorio. O
simplemente deje un ajuste en BIOS para activar / desactivar esta característica.
Conclusión
AMD ha hecho un excelente trabajo con el subsistema de caché de AMD Zen. Va a ser
una parte fundamental en el éxito de la serie de procesadores Ryzen.
Hasta aquí otro de mis artículos en informaticapremium sobre lo último
en hardware, sistemas, almacenamiento, redes, programación, diseño
web, recuperación de datos y actualidad del mundo de la técnica y la informática. Nos
vemos en breve.
Carlos Yus Valero, 20 de octubre, 2016.
Blog | informaticapremium
Categorías Hardware, Procesadores, Sistemas
Derechos Reservados - Carlos Yus Valero – informaticapremium - 2017