Análisis de microarquitectura de AMD Zen 2. Ryzen 3000 y EPYC Rome

Hemos hido comentando sobre los productos de la próxima generación de procesadores de AMD durante más de un año. El nuevo diseño de chiplet ha sido anunciado como un avance significativo en el rendimiento y la escalabilidad de la conducción, especialmente porque se hace cada vez más difícil crear silicio grande con altas frecuencias en nodos de proceso cada vez más pequeños. Se espera que AMD implemente su paradigma de chiplet a través de su línea de procesadores, a través de Ryzen y EPYC, y cada uno de estos chiplets tendrá ocho núcleos Zen 2 de próxima generación. Hoy AMD dio más detalles sobre el núcleo Zen 2, lo que justifica el aumento del rendimiento de reloj por reloj de +15% en comparación con la generación anterior que la compañía presentó en Computex la semana pasada.

El portafolio de productos Zen 2 de AMD

Los productos actuales que AMD ha anunciado que tienen núcleos Zen 2 incluyen las CPUs de consumo de tercera generación Ryzen, conocidas como la familia Ryzen 3000, y el procesador EPYC empresarial de próxima generación de AMD, conocido como Roma. A partir de hoy, AMD ha anunciado detalles explícitos de seis procesadores Ryzen 3000 para el consumidor, que incluyen conteos de núcleos, frecuencias, soporte de memoria y alimentación. Los detalles sobre el procesador del servidor, además de algunos valores máximos, se esperan en el transcurso de los próximos meses.

El paradigma de diseño Zen 2, en comparación con la primera generación de Zen, ha cambiado significativamente. La nueva plataforma y la implementación del núcleo están diseñadas alrededor de chiplets pequeños de 8 núcleos construidos en el proceso de fabricación de 7 nm de TSMC, y miden alrededor de 74-80 milímetros cuadrados. En estos chiplets hay dos grupos de cuatro núcleos organizados en un “complejo central”, o CCX, que contiene esos cuatro núcleos y un conjunto de caché L3: el caché L3 se duplica para el Zen 2 sobre el Zen 1.

Cada CPU completa, independientemente de la cantidad de chiplets que tenga, se empareja con un dado IO central a través de los enlaces Infinity Fabric. El dado IO actúa como el hub central para todas las comunicaciones fuera del chip, ya que alberga todos los carriles PCIe para el procesador, así como los canales de memoria, y los enlaces Infinity Fabric a otros chiplets u otras CPU. El dado de IO para los procesadores EPYC Rome se basa en el proceso de 14 nm de Global Foundries, sin embargo, el chip de IO (que son más pequeños y contienen menos funciones) se basan en el proceso de 12 nm de Global Foundries.

Los procesadores de consumo, conocidos como ‘Matisse’ o Ryzen 3rd Gen o Ryzen 3000-series, se ofrecerán con hasta dos chiplets para dieciséis núcleos. AMD lanzará seis versiones de Matisse el 7 de julio, desde seis hasta dieciséis núcleos. Los procesadores de seis y ocho núcleos tienen una chiplet, mientras que por encima de esto las partes tendrán dos chiplets, pero en todos los casos el chip IO es el mismo. Esto significa que cada procesador Ryzen 3000 basado en Zen 2 tendrá acceso a 24 líneas PCIe 4.0 y memoria de doble canal. Según los anuncios de hoy, los precios oscilarán entre $199 para el Ryzen 5 3600, y hasta $700 para los dieciséis núcleos (estamos esperando la confirmación final de este precio).

Los procesadores EPYC Roma, construidos con estos chips Zen 2, tendrán hasta ocho de ellos, lo que permite una plataforma que puede admitir hasta 64 núcleos. Al igual que con los procesadores de consumo, ninguna chiplet se puede comunicar directamente entre sí; cada chiplet solo se conectará directamente al chip IO central. Ese chip IO contiene enlaces para ocho canales de memoria y hasta 128 líneas de conectividad PCIe 4.0.

Hoja de ruta de AMD

Antes de sumergirse en la nueva línea de productos, vale la pena repasar el lugar en el que actualmente nos encontramos en la hoja de ruta planificada de AMD.

En las hojas de ruta anteriores, que muestran el movimiento de AMD de Zen a Zen 2 y Zen 3, la compañía ha explicado que esta estructura de varios años mostrará Zen en 2017, Zen 2 en 2019 y Zen 3 para 2021. La cadencia no es exactamente una año, ya que ha dependido de las habilidades de diseño y fabricación de AMD, así como de los acuerdos con sus socios en las fundiciones y las fuerzas actuales del mercado.

AMD ha declarado que su plan para Zen 2 era lanzarse siempre a 7nm, que terminó siendo los 7nm de TSMC (Global Foundries no iba a estar listo a tiempo para los 7nm, y finalmente se desconectó). Se espera que la próxima generación de Zen 3 se alinee con un proceso actualizado de 7 nm, y en este punto AMD no ha hecho ningún comentario sobre un posible diseño de “Zen 2+” en las obras, aunque en este punto no esperamos ver uno.

Más allá de Zen 3, AMD ya ha declarado que Zen 4 y Zen 5 se encuentran actualmente en varios niveles de sus respectivas etapas de diseño, aunque la compañía no se ha comprometido con marcos de tiempo particulares o tecnologías de nodo de proceso. AMD ha declarado en el pasado que los paradigmas de estas plataformas y los diseños de procesadores se están configurando con 3-5 años de anticipación, y la compañía declara que tiene que hacer grandes apuestas en todas las generaciones para garantizar que pueda seguir siendo competitiva.

Para una pequeña información sobre Zen 4, en una entrevista con Forrest Norrod, vicepresidente ejecutivo del grupo Enterprise, Embedded y Semi-Custom de AMD, en Computex, le reveló a AnandTech el nombre en clave del procesador Zen 4 EPYC de AMD: Genoa

Forrest explicó que el nombre en código del Zen 5 sigue un patrón similar, pero no comentaría el marco de tiempo para el producto Zen 4. Dado que el diseño del Zen 3 se espera para mediados de 2020, eso pondría un producto Zen 4 para finales de 2021 / principios de 2022, si AMD sigue su cadencia. En este punto, no está claro cómo funcionará esto en los planes de la hoja de ruta del consumidor de AMD, y dependerá de cómo AMD se acerque a su paradigma de chiplet y cualquier ajuste futuro a su tecnología de empaque para permitir mejoras de rendimiento adicionales.

Reclamaciones de rendimiento de Zen 2

En Computex, AMD anunció que había diseñado Zen 2 para ofrecer un aumento directo de rendimiento del 15% sobre su plataforma Zen+ al comparar dos procesadores en la misma frecuencia. Al mismo tiempo, AMD también afirma que con la misma potencia, el Zen 2 ofrecerá una ganancia de rendimiento superior a 1.25x con la misma potencia, o hasta la mitad de la potencia con el mismo rendimiento. Combinando esto, para los puntos de referencia seleccionados, AMD reclama un rendimiento de +75% por vatio sobre su producto de la generación anterior, y un rendimiento de +45% por vatio sobre su competencia.

Estos son números que no podemos verificar en este momento, ya que no tenemos los productos en la mano, y cuando hacemos el embargo para los resultados de la evaluación comparativa se levantarán el 7 de julio. AMD dedicó una buena cantidad de tiempo a los nuevos cambios en la microarquitectura para Zen 2, así como a los cambios en el nivel de la plataforma, para mostrar cómo el producto ha mejorado con respecto a la generación anterior.

También se debe tener en cuenta que en varias ocasiones durante el reciente Tech Day de AMD, la compañía manifestó que no está interesada en ir de un lado a otro con su competencia principal en las actualizaciones incrementales para tratar de superarse, lo que podría resultar en una tecnología de retención. atrás. AMD está comprometido, según sus ejecutivos, a impulsar el rendimiento del rendimiento tanto como sea posible en todas las generaciones, independientemente de la competencia. Tanto la Dra. Lisa Su, CEO como Mark Papermaster, CTO, han dicho que esperaban que la línea de tiempo del lanzamiento de su cartera Zen 2 se cruzara con una línea de productos Intel de 10 nm muy competitiva. A pesar de que este no es el caso, los ejecutivos de AMD manifestaron que aún siguen adelante con su hoja de ruta según lo previsto.

El punto de referencia elegido por AMD, cuando muestra el rendimiento de sus próximos procesadores Matisse, es Cinebench. Cinebench es un punto de referencia de punto flotante que la compañía históricamente ha hecho muy bien y tiende a probar el rendimiento de la CPU FP así como el rendimiento de la memoria caché, aunque a menudo no involucra gran parte del subsistema de memoria.

De vuelta en CES 2019 en enero, AMD mostró un procesador Zen 2 de 8 núcleos sin nombre contra el procesador de 8 núcleos de gama alta de Intel, el i9-9900K, en Cinebench R15, donde los sistemas obtuvieron el mismo resultado, pero con el El sistema completo de AMD consume alrededor de 1/3 o más de potencia. Para Computex en mayo, AMD reveló una gran cantidad de detalles de ocho y doce núcleos, junto con la forma en que estos chips se comparan en los resultados de Cinebench R20 de uno o varios hilos.

AMD afirma que sus nuevos procesadores, cuando se comparan entre los recuentos de núcleos, ofrecen un mejor rendimiento de un solo subproceso, un mejor rendimiento de múltiples subprocesos, una potencia más baja y un precio mucho más bajo cuando se trata de puntos de referencia de CPU.

Cuando se trata de juegos, AMD es bastante optimista en este aspecto. A 1080p, al comparar el Ryzen 7 2700X con el Ryzen 7 3800X, AMD espera un aumento de +11% a +34% en la velocidad de cuadros de generación en generación.

Cuando se trata de comparar juegos entre los procesadores AMD e Intel, AMD se atuvo a las pruebas de 1080p de títulos populares, comparando nuevamente procesadores similares para los recuentos básicos y los precios. En casi todas las comparaciones, fue una ida y vuelta entre el producto de AMD y el producto de Intel: AMD ganaría algo, perdería algo o robaría en otros. Aquí está la comparación de $250 como ejemplo:

El rendimiento en juegos en este caso fue diseñado para mostrar la frecuencia y las mejoras de IPC, en lugar de los beneficios de PCIe 4.0. En el lado de la frecuencia, AMD declaró que a pesar de la reducción del troquel de 7nm y la mayor resistividad de las vías, pudieron extraer una frecuencia más alta del proceso TSMC de 7nm en comparación con los 14nm y 12nm de Global Foundries.

AMD también hizo comentarios sobre el nuevo diseño de caché L3, ya que se mueve de 2 MB / core a 4 MB / core. Duplicar el caché L3, de acuerdo con AMD, proporciona un aumento adicional de + 11% a + 21% en el rendimiento a 1080p para juegos con una GPU discreta.

Hay algunas instrucciones nuevas en el Zen 2 que podrían ayudar a verificar estos números.

Optimizaciones de Windows

Uno de los puntos clave que ha sido una molestia en el lado de los procesadores que no son de Intel que utilizan Windows ha sido la optimización y la organización del programador en el sistema operativo. Hemos visto en el pasado cómo Windows no ha sido amable con los diseños de microarquitectura que no son Intel, como el diseño de módulo anterior de AMD en Bulldozer, la estrategia de CPU híbrida de Qualcomm con Windows en Snapdragon, y más recientemente con arreglos de múltiples matrices en Threadripper que introducir diferentes dominios de latencia de memoria en la computación del consumidor.

Obviamente, AMD tiene una relación cercana con Microsoft cuando se trata de identificar una topología central no regular con un procesador, y las dos compañías trabajan para asegurar que las asignaciones de hilo y memoria, sin la dirección dirigida por el programa, intenten aprovechar al máximo el sistema. Con la actualización del 10 de mayo a Windows, se han implementado algunas características adicionales para aprovechar al máximo la próxima microarquitectura Zen 2 y los diseños de silicona Ryzen 3000.

Las optimizaciones vienen en dos frentes, los cuales son razonablemente fáciles de explicar.

Thread Grouping

The first is thread allocation. When a processor has different ‘groups’ of CPU cores, there are different ways in which threads are allocated, all of which have pros and cons. The two extremes for thread allocation come down to thread grouping and thread expansion.

El primero es la asignación de hilos. Cuando un procesador tiene diferentes “grupos” de núcleos de CPU, hay diferentes formas en que se asignan los subprocesos, todos los cuales tienen sus pros y sus contras. Los dos extremos para la asignación de hilos se reducen a la agrupación y expansión de hilos.

La agrupación de hilos es donde a medida que se generan nuevos subprocesos, se asignan a los núcleos directamente junto a los núcleos que ya tienen subprocesos. Esto mantiene los hilos muy juntos, para la comunicación hilo a hilo, sin embargo, puede crear regiones de alta densidad de potencia, especialmente cuando hay muchos núcleos en el procesador pero solo un par están activos.

La expansión del hilo es donde los núcleos se colocan lo más lejos posible entre sí. En el caso de AMD, esto significaría un segundo subproceso que se genera en una chiplet diferente, o un complejo de núcleo / CCX diferente, lo más lejos posible. Esto permite que la CPU mantenga un alto rendimiento al no tener regiones de alta densidad de potencia, lo que generalmente proporciona el mejor rendimiento turbo en varios subprocesos.

El peligro de la expansión de subprocesos es cuando un programa genera dos subprocesos que terminan en lados diferentes de la CPU. En Threadripper, esto podría incluso significar que el segundo subproceso estaba en una parte de la CPU que tenía una larga latencia de memoria, lo que provocaba un desequilibrio en el rendimiento potencial entre los dos subprocesos, incluso aunque los núcleos en los que estaban dichos subprocesos hubieran estado en el mayor frecuencia de turbo.

Debido a que el software moderno, y en particular los videojuegos, ahora generan múltiples hilos en lugar de depender de un solo hilo, y esos hilos necesitan hablar entre sí, AMD está pasando de una técnica de expansión de hilos híbrida a una técnica de agrupamiento de hilos. Esto significa que un CCX se llenará de hilos antes de que se pueda acceder a otro CCX. AMD cree que a pesar del potencial de alta densidad de potencia dentro de un chiplet, mientras que el otro podría estar inactivo, todavía vale la pena por el rendimiento general.

Para Matisse, esto debería permitir una mejora agradable para los escenarios de subprocesos limitados, y en la cara de la tecnología, los juegos. Será interesante ver cuánto afectará esto a las próximas CPU EPYC Rome o los futuros diseños de Threadripper. El único punto de referencia que AMD proporcionó en su explicación fue Rocket League a 1080p bajo, que reportó una ganancia de tasa de fotogramas de + 15%.

Control del reloj

Para cualquiera de nuestros usuarios familiarizados con nuestra microarquitectura Skylake de inmersión profunda, puede recordar que Intel introdujo una nueva función llamada Speed ​​Shift que permitió que el procesador se ajustara entre diferentes estados P de forma más libre, así como la aceleración desde el ralentí hasta una carga muy rápida. De 100 ms a 40 ms en la primera versión en Skylake, luego a 15 ms con Kaby Lake. Hizo esto devolviendo el control de estado P desde el sistema operativo al procesador, que reaccionó según el rendimiento y la solicitud de instrucciones. Con Zen 2, AMD ahora está habilitando la misma característica.

AMD ya tiene una mayor granularidad en sus ajustes de frecuencia sobre Intel, lo que permite diferencias de 25 MHz en lugar de 100 MHz. Sin embargo, la habilitación de un salto de frecuencia de rampa a carga más rápido ayudará a AMD cuando se trata de cargas de trabajo muy impulsadas por ráfagas. como WebXPRT (el favorito de Intel para este tipo de demostración). De acuerdo con AMD, la forma en que esto se ha implementado con Zen 2 requerirá actualizaciones de BIOS, además de pasar a la actualización de Windows del 10 de mayo, pero reducirá la rampa de frecuencia de ~ 30 milisegundos en Zen a ~ 1-2 milisegundos en Zen 2 Se debe tener en cuenta que esto es mucho más rápido que los números que Intel suele proporcionar.

El nombre técnico para la implementación de AMD incluye CPPC2, o Collaborative Power Performance Control 2, y las métricas de AMD indican que esto puede aumentar las cargas de trabajo de ráfaga y también la carga de aplicaciones. AMD cita un aumento del 6% en el rendimiento en los tiempos de inicio de la aplicación utilizando la sub-prueba de inicio de la aplicación PCMark10.

Seguridad endurecida para Zen 2

Otro aspecto de Zen 2 es el enfoque de AMD para los mayores requisitos de seguridad de los procesadores modernos. Como se ha informado, un buen número de las recientes explotaciones de canal lateral no afectan a los procesadores AMD, principalmente debido a cómo AMD administra sus búferes TLB que siempre han requerido comprobaciones de seguridad adicionales antes de que la mayor parte de esto se convirtiera en un problema. No obstante, para los problemas a los que AMD es vulnerable, ha implementado una plataforma de seguridad completa basada en hardware para ellos.

El cambio aquí viene para el bypass especulativo de la tienda, conocido como Spectre v4, que AMD ahora tiene hardware adicional para trabajar en conjunto con el sistema operativo o los administradores de memoria virtual, como los hipervisores, para poder controlar. AMD no espera ningún cambio en el rendimiento de estas actualizaciones. Los problemas más recientes, como Foreshadow y Zombieload, no afectan a los procesadores AMD.

Nuevas Instrucciones

Control de QoS de ancho de banda de memoria y caché

Al igual que con la mayoría de las nuevas microarquitecturas x86, existe un impulso para aumentar el rendimiento a través de nuevas instrucciones, pero también intentar la paridad entre diferentes proveedores en las instrucciones que se admiten. Para Zen 2, mientras que AMD no se ocupa de algunos de los conjuntos de instrucciones más exóticos que Intel podría realizar, está agregando nuevas instrucciones en tres áreas diferentes.

El primero, CLWB, se ha visto antes en procesadores Intel en relación con la memoria no volátil. Esta instrucción le permite al programa enviar datos a la memoria no volátil, en caso de que el sistema reciba un comando de detención y se pierdan los datos. Existen otras instrucciones asociadas con la protección de datos en sistemas de memoria no volátiles, aunque AMD no comentó esto explícitamente. Podría ser una indicación de que AMD está buscando una mejor compatibilidad con el hardware y las estructuras de memoria no volátil en diseños futuros, en particular en sus procesadores EPYC.

La segunda instrucción de caché, WBNOINVD, es un comando solo de AMD, pero se basa en otros comandos similares, como WBINVD. Este comando está diseñado para predecir cuándo se necesitarán partes particulares de la memoria caché en el futuro, y las elimina listas para acelerar los cálculos futuros. En el caso de que la línea de caché necesaria no esté lista, se procesaría un comando de vaciado antes de la operación necesaria, lo que aumentaría la latencia: ejecutando un flujo de línea de caché por adelantado mientras la instrucción de latencia crítica aún está bajando de la tubería. Acelera su ejecución definitiva.

El conjunto final de instrucciones, archivado bajo QoS, en realidad se relaciona con la forma en que se asignan las prioridades de memoria caché y memoria.

Cuando una CPU en la nube se divide en diferentes contenedores o máquinas virtuales para diferentes clientes, el nivel de rendimiento no siempre es consistente, ya que el rendimiento podría limitarse en función de lo que otra máquina virtual está haciendo en el sistema. Esto se conoce como el problema del “vecino ruidoso”: si otra persona está consumiendo todo el ancho de banda del núcleo a la memoria, o el caché L3, puede ser muy difícil que otra VM en el sistema tenga acceso a lo que necesita. Como resultado de ese vecino ruidoso, la otra máquina virtual tendrá una latencia muy variable sobre cómo puede procesar su carga de trabajo. Alternativamente, si una VM de misión crítica está en un sistema y otra VM sigue solicitando recursos, la misión crítica podría terminar perdiendo sus objetivos, ya que no tiene todos los recursos a los que necesita acceso.

Tratar con vecinos ruidosos, más allá de garantizar el acceso total al hardware como un solo usuario, es difícil. La mayoría de los proveedores y operaciones de la nube ni siquiera le dirán si tiene vecinos, y en el caso de una migración de VM en vivo, esos vecinos pueden cambiar con mucha frecuencia, por lo que no hay garantía de un rendimiento sostenido en ningún momento. Aquí es donde entra en juego un conjunto de instrucciones dedicadas de QoS (Calidad de servicio).

Al igual que con la implementación de Intel, cuando una serie de máquinas virtuales se asigna a un sistema en la parte superior de un hipervisor, el hipervisor puede controlar la cantidad de ancho de banda de memoria y el caché al que tiene acceso cada máquina virtual. Si una máquina virtual de 8 núcleos de misión crítica requiere acceso a 64 MB de L3 y al menos 30 GB / s de ancho de banda de memoria, el hipervisor puede controlar que la VM de prioridad siempre tendrá acceso a esa cantidad, y eliminarla completamente del grupo para otras máquinas virtuales, o restringir inteligentemente los requisitos a medida que la máquina virtual de misión crítica irrumpe en acceso completo.

Intel solo habilita esta función en sus procesadores escalables Xeon, sin embargo, AMD lo habilitará en toda su gama de procesadores Zen 2 para consumidores y usuarios empresariales.

El problema inmediato que tuve con esta característica está en el lado del consumidor. Imagínese si un videojuego exige acceso a toda la memoria caché y todo el ancho de banda de la memoria, mientras que algún software de transmisión no tendría acceso a ninguno, lo que podría causar estragos en el sistema. AMD explicó que aunque los programas técnicamente individuales pueden solicitar un cierto nivel de QoS, sin embargo, el sistema operativo o el hipervisor dependerán del control si esas solicitudes son válidas y adecuadas. Ven esta característica más como una característica empresarial que se usa cuando los hipervisores están en juego, en lugar de instalaciones simples en los sistemas de los consumidores.

Tamaño del CCX

La reducción del tamaño de los nodos presenta una serie de desafíos en el núcleo y más allá. Incluso sin tener en cuenta la potencia y la frecuencia, la capacidad de colocar estructuras en el silicio y luego integrar ese silicio en el paquete, así como proporcionar energía a las partes correctas del silicio a través de las conexiones correctas, se convierte en un ejercicio en sí mismo. AMD nos dio una idea de cómo 7nm cambió algunos de sus diseños, así como los desafíos de empaquetado en ellos.

Una métrica clave abandonada por AMD se relaciona con el complejo central: cuatro núcleos, las estructuras centrales asociadas y luego las caches L2 y L3. Con 12 nm y el núcleo Zen +, AMD declaró que un complejo de un solo núcleo era de ~ 60 milímetros cuadrados, que se separa en 44 mm2 para los núcleos y 16 mm2 para los 8 MB de L3 por CCX. Agregue dos de estos complejos de 60 mm2 con un controlador de memoria, carriles PCIe, cuatro enlaces IF y otro IO, y un trozo de zepelín Zen + fue de 213 mm2 en total.

Para Zen 2, un chiplet único es de 74 mm2, de los cuales 31.3 mm2 es un complejo central con 16 MB de L3. AMD no dividió este número 31.3 en núcleos y L3, pero uno podría imaginar que el L3 podría estar acercándose al 50% de ese número. La razón por la que el chiplet es mucho más pequeño es que no necesita controladores de memoria, solo tiene un enlace de IF y no tiene IO, porque todos los requisitos de la plataforma están en el dado de IO. Esto permite a AMD hacer que los chiplets sean extremadamente compactos. Sin embargo, si AMD tiene la intención de seguir aumentando el caché L3, podríamos terminar con la mayor parte del chip como L3.

Sin embargo, en general, AMD ha declarado que el CCX (núcleos más L3) ha disminuido en tamaño en un 47%. Esto está mostrando una gran escala, especialmente si el + 15% del rendimiento de la instrucción en bruto y el aumento de la frecuencia entran en juego. El rendimiento por mm2 será una métrica muy interesante.
embalaje

Empaquetado

Con Matisse en el zócalo AM4 y Roma en el zócalo EPYC, AMD declaró que tenían que hacer algunas apuestas en su tecnología de empaque para mantener la compatibilidad. Invariablemente, algunas de estas apuestas terminan siendo una compensación por el apoyo continuo, sin embargo, AMD cree que el esfuerzo adicional ha merecido la compatibilidad continua.

Uno de los puntos clave de los que AMD habló en relación con el empaque es cómo cada uno de los moldes de silicona se adjunta al paquete. Para habilitar un procesador de escritorio de matriz de pin-grid, el silicio se debe colocar en el procesador de forma BGA. AMD declaró que, debido al proceso de 7 nm, el paso de golpeo (la distancia entre las bolas de soldadura en la matriz de silicona y el paquete) se redujo de 150 micrones en 12 nm a 130 micrones en 7 nm. Esto no suena como mucho, sin embargo, AMD afirmó que solo hay dos proveedores en el mundo con tecnología suficiente para hacer esto. La única alternativa sería tener un poco más grande de silicio para soportar un paso de golpe más grande, lo que finalmente lleva a un montón de silicio vacío (o un paradigma de diseño diferente).

Una de las formas para habilitar el paso de golpe más estrecho es ajustar cómo se procesan los golpes en la parte inferior de la matriz. Normalmente, una protuberancia de soldadura en un paquete es una gota / bola de soldadura sin plomo, que se basa en la física de la tensión y el reflujo de la superficie para garantizar que sea consistente y regular. Sin embargo, para habilitar los pasos de golpe más estrechos, AMD tuvo que pasar a una topología de tope de soldadura de pilar de cobre.

Para habilitar esta característica, el cobre se deposita de forma epitaxial dentro de una máscara para crear un “soporte” en el que se asienta la soldadura por reflujo. Debido al diámetro del pilar, se necesita menos máscara de soldadura y crea un radio de soldadura más pequeño. AMD también se encontró con otro problema, debido a su diseño de matriz doble dentro de Matisse: si la matriz IO usa máscaras de protección de soldadura estándar, y las chiplets usan pilares de cobre, debe haber un nivel de consistencia de altura para los disipadores de calor integrados. Para los pilares de cobre más pequeños, esto significa administrar el nivel de crecimiento de los pilares de cobre.

AMD explicó que en realidad era más fácil administrar la implementación de esta conexión que construir diferentes disipadores de calor de altura, ya que el proceso de sellado utilizado para los disipadores no permitiría una tolerancia tan baja. AMD espera que todos sus diseños de 7 nm en el futuro utilicen la implementación del pilar de cobre.

Enrutamiento

Más allá de simplemente colocar el silicio en el sustrato orgánico, ese sustrato tiene que gestionar las conexiones entre la matriz y externamente a la matriz. AMD tuvo que aumentar el número de capas de sustrato en el paquete a 12 para Matisse a fin de manejar el enrutamiento adicional (no hay información sobre cuántas capas se requieren en Roma, quizás 14). Esto también se vuelve algo complicado para los procesadores de chiplet de núcleo único y chiplet de núcleo doble, especialmente cuando se prueba el silicio antes de colocarlo en el paquete.

En el diagrama podemos ver claramente los enlaces IF de los dos chiplets que van al dado IO, mientras que el IO también maneja los controladores de memoria y lo que parecen ser tareas del plano de poder también. No hay enlaces en el paquete entre los chiplets, en caso de que alguien se esté preguntando: los chiplets no tienen forma de comunicación directa; toda la comunicación entre los chiplets se maneja a través del dado IO.

AMD declaró que con este diseño también tenían que tener en cuenta cómo se colocaba el procesador en el sistema, así como el diseño de refrigeración y memoria. Además, cuando se trata de un soporte de memoria más rápido, o las tolerancias más estrictas de PCIe 4.0, todo esto también debe tenerse en cuenta, ya que proporciona la ruta óptima para la señalización sin interferencia de otras trazas y otras rutas.

Descripción general de la microarquitectura AMD Zen 2

El análisis rápido

En el Tech Day de AMD, estuvieron presentes el compañero y arquitecto principal Mike Clark para revisar los cambios. Mike es un gran ingeniero con quien hablar, aunque lo que siempre me divierte (para cualquier compañía, no solo AMD) es que los ingenieros que hablan sobre los últimos productos que llegan al mercado ya están trabajando una, dos o tres generaciones por delante en la compañía. Mike comentó que le tomó un tiempo recordar los cambios específicos de Zen + a Zen 2, mientras que internamente su mente ya lleva varias generaciones en la línea.

Un elemento interesante para Zen 2 es alrededor de la intención. Inicialmente, el Zen 2 simplemente iba a ser un encogimiento del Zen +, pasando de 12nm a 7nm, similar a lo que solíamos ver con Intel en su modelo tick-tock para la primera parte del siglo. Sin embargo, según el análisis interno y el marco de tiempo de 7nm, se decidió que Zen 2 se usaría como plataforma para un mejor rendimiento, aprovechando los 7nm de múltiples maneras en lugar de simplemente rediseñar el mismo diseño en un nuevo nodo de proceso. Como resultado de los ajustes, AMD está promoviendo una mejora de IPC de + 15% para Zen 2 sobre Zen +.

Cuando se trata de los cambios exactos en la microarquitectura, lo que estamos viendo fundamentalmente sigue siendo un plano de planta similar al de Zen. Zen 2 es un miembro de la familia de la familia Zen, y no es un rediseño completo ni un paradigma diferente sobre cómo procesar x86; al igual que otras arquitecturas que tienen actualizaciones familiares, Zen 2 ofrece un núcleo más eficiente y un núcleo más amplio, lo que permite un mejor rendimiento de la instrucción.

En un nivel alto, el núcleo se parece mucho a lo mismo. Los aspectos más destacados del diseño Zen 2 incluyen un predictor de rama L2 diferente conocido como un predictor TAGE, una duplicación de la memoria caché micro-op, una duplicación de la memoria caché L3, un aumento en los recursos enteros, un aumento en los recursos de carga / almacenamiento y soporte Para AVX-256 de una sola operación (o AVX2). AMD ha declarado que no hay una penalización de frecuencia para AVX2, en función de su plataforma de frecuencia con reconocimiento de energía.

AMD también ha realizado ajustes en el sistema de caché, el más notable es el caché de instrucciones L1, que se ha reducido a la mitad a 32 kB, pero la asociatividad se ha duplicado. Este cambio se realizó por razones importantes, que veremos en las siguientes páginas. La memoria caché de datos L1 y las memorias caché L2 no se han modificado, sin embargo, los búferes internos de transacción (TLB) han aumentado la compatibilidad. AMD también afirma que ha agregado un mayor soporte de virtualización con respecto a la seguridad, lo que ayuda a habilitar las funciones en el futuro. Como se mencionó anteriormente en este artículo, también hay actualizaciones de seguridad.

Para un análisis rápido, es fácil decir que duplicar la memoria caché microoperatoria ofrecerá una mejora significativa de IPC en una serie de escenarios, y combinar eso con un aumento en los recursos de carga / almacenamiento ayudará a impulsar más instrucciones mediante. El caché L3 doble ayudará en cargas de trabajo específicas, como lo haría el soporte de operación única AVX2, pero el predictor de rama mejorado también mostrará un aumento en el rendimiento sin formato. En resumen, para un análisis en papel, la mejora de + 15% de IPC de AMD parece ser un número muy razonable para promover.

Fetch/Prefetch

A partir de la parte frontal del procesador, los prefetchers.

La principal mejora anunciada de AMD aquí es el uso de un predictor TAGE, aunque solo se usa para recuperaciones no L1. Es posible que esto no suene demasiado impresionante: AMD todavía está utilizando un motor de captación previa de perceptrón hash para las capturas de L1, que será la mayor cantidad posible de capturas, pero el predictor de ramificación TAGE L2 utiliza etiquetado adicional para permitir historiales de ramificaciones más largos para mejores vías de predicción. Esto se vuelve más importante para los prefetches L2 y más allá, con el perceptrón de hash preferido para los prefetches cortos en el L1 basado en la potencia.

En la parte delantera también obtenemos BTB más grandes, para ayudar a mantener un registro de las ramas de instrucción y las solicitudes de caché. El L1 BTB ha duplicado su tamaño de 256 entradas a 512, y el L2 casi se ha duplicado a 7K desde 4K. El L0 BTB se mantiene en 16 entradas, pero la matriz de destino Indirecto sube a 1K entradas. En general, estos cambios de acuerdo con AMD ofrecen una tasa de errores de cálculo un 30% menor, lo que ahorra energía.

Otro cambio importante es el caché de instrucciones L1. Notamos que es más pequeño para el Zen 2: solo 32 KB en lugar de 64 KB, sin embargo, la asociatividad se ha duplicado, de 4 a 8 vías. Dada la forma en que funciona un caché, estos dos efectos finalmente no se anulan entre sí, sin embargo, el caché L1-I de 32 KB debería ser más eficiente en el uso de la energía y experimentar una mayor utilización. La memoria caché L1-I no solo ha disminuido de forma aislada, uno de los beneficios de reducir el tamaño de la memoria caché I es que le ha permitido a AMD duplicar el tamaño de la memoria caché micro-op. Estas dos estructuras están una al lado de la otra dentro del núcleo, por lo que incluso a 7 nm tenemos una instancia de limitaciones de espacio que causan un intercambio entre las estructuras dentro de un núcleo. AMD declaró que esta configuración, la L1 más pequeña con el caché micro-op más grande, terminó siendo mejor en más de los escenarios que probó.

Decodificación

Para la etapa de decodificación, el aumento principal aquí es el caché de micro-op. Al duplicar el tamaño de la entrada de 2K a la entrada de 4K, tendrá más operaciones descodificadas que antes, lo que significa que debería experimentar una gran cantidad de reutilización. Para facilitar ese uso, AMD ha aumentado la tasa de envío de la memoria caché micro-op a los buffers hasta 8 instrucciones fusionadas. Suponiendo que AMD puede omitir sus decodificadores a menudo, este debería ser un bloque muy eficiente de silicio.

Lo que hace que la entrada en 4K sea más impresionante es cuando la comparamos con la competencia. En la familia Skylake de Intel, la memoria caché micro-op en esos núcleos solo tiene una entrada de 1.5K. Intel aumentó el tamaño en un 50% para Ice Lake a 2.25K, pero ese núcleo llegará a las plataformas móviles más adelante este año y quizás a los servidores el próximo año. En comparación, el núcleo Zen 2 de AMD cubrirá la gama desde el consumidor hasta la empresa. También en este momento podemos compararlo con la memoria caché micro-op de la CPU A77 de Arm, que es una entrada de 1.5K, sin embargo, esa memoria caché es el primer diseño de memoria caché micro-op de Arm para un núcleo.

Los decodificadores en Zen 2 siguen siendo los mismos, todavía tenemos acceso a cuatro decodificadores complejos (en comparación con el complejo 1 de Intel + 4 decodificadores simples), y las instrucciones decodificadas se almacenan en caché en la memoria caché de micro-op, así como en la cola de micro-op .

AMD también ha declarado que ha mejorado su algoritmo de fusión micro-op, aunque no entró en detalles sobre cómo esto afecta el rendimiento. La conversión de fusión micro-op actual ya es bastante buena, por lo que sería interesante ver lo que AMD ha hecho aquí. En comparación con Zen y Zen +, basado en el soporte para AVX2, significa que el decodificador no necesita dividir una instrucción AVX2 en dos microoperaciones: AVX2 ahora es una microoperación única a través de la tubería.

Al ir más allá de los decodificadores, la cola y el envío de microoperaciones pueden introducir seis microoperaciones por ciclo en los programadores. Sin embargo, esto está ligeramente desequilibrado, ya que AMD tiene programadores independientes de enteros y de punto flotante: el programador de enteros puede aceptar seis microoperaciones por ciclo, mientras que el programador de punto flotante solo puede aceptar cuatro. Sin embargo, el envío puede enviar simultáneamente micro-operaciones a ambas al mismo tiempo.

Punto flotante

La mejora clave destacada para el rendimiento de punto flotante es la compatibilidad total con AVX2. AMD ha aumentado el ancho de la unidad de ejecución de 128 bits a 256 bits, lo que permite realizar cálculos AVX2 de un solo ciclo, en lugar de dividir el cálculo en dos instrucciones y dos ciclos. Esto se mejora al proporcionar cargas y almacenes de 256 bits, por lo que las unidades FMA pueden alimentarse continuamente. AMD afirma que, debido a su programación de ahorro de energía, no hay una caída de frecuencia predefinida cuando se usan las instrucciones AVX2 (sin embargo, la frecuencia puede reducirse dependiendo de los requisitos de temperatura y voltaje, pero eso es automático, independientemente de las instrucciones utilizadas)

En la unidad de punto flotante, las colas aceptan hasta cuatro microoperaciones por ciclo desde la unidad de despacho que alimenta un archivo de registro físico de 160 entradas. Esto se mueve a cuatro unidades de ejecución, que pueden ser alimentadas con datos de 256b en el mecanismo de carga y almacenamiento.

Se han realizado otros ajustes a las unidades de FMA que van más allá de duplicar el tamaño: AMD afirma que han aumentado el rendimiento en bruto en las asignaciones de memoria, para cálculos físicos repetitivos y ciertas técnicas de procesamiento de audio.

Otra actualización clave es disminuir la latencia de multiplicación de FP de 4 ciclos a 3 ciclos. Esa es una mejora bastante significativa. AMD ha declarado que mantiene muchos de los detalles en secreto, ya que quiere presentarlos en Hot Chips en agosto. Realizaremos un análisis completo de las instrucciones para nuestras revisiones el 7 de julio.

Unidades enteras, carga y almacenamiento

Los programadores de unidades enteras pueden aceptar hasta seis microoperaciones por ciclo, que se incorporan al búfer de reorden de 224 entradas (hasta 192). La unidad Integer tiene técnicamente siete puertos de ejecución, compuestos por cuatro ALU (unidades lógicas aritméticas) y tres AGU (unidades de generación de direcciones).

Los programadores comprenden cuatro colas ALU de 16 entradas y una cola AGU de 28 entradas, aunque la unidad AGU puede introducir 3 microoperaciones por ciclo en el archivo de registro. La cola de la AGU ha aumentado de tamaño en función de las simulaciones de AMD de distribuciones de instrucciones en software común. Estas colas se incorporan al archivo de registro de propósito general de 180 entradas (hasta 168), pero también realizan un seguimiento de las operaciones específicas de ALU para evitar posibles operaciones de detención.

Las tres AGU se introducen en la unidad de carga / almacenamiento que puede admitir dos lecturas de 256 bits y una escritura de 256 bits por ciclo. No todas las tres AGU son iguales, a juzgar por el diagrama anterior: AGU2 solo puede administrar tiendas, mientras que AGU0 y AGU1 pueden hacer tanto cargas como tiendas.

La cola de almacenamiento ha aumentado de 44 a 48 entradas, y los TLB para el caché de datos también han aumentado. Sin embargo, la métrica clave aquí es el ancho de banda de carga / almacenamiento, ya que el núcleo ahora puede admitir 32 bytes por reloj, frente a 16.

Cache e Infinity Fabric

Si no se ha incorporado ya, el gran cambio en el caché es el caché de instrucciones L1 que se ha reducido de 64 KB a 32 KB, pero la asociatividad ha aumentado de 4 a 8 vías. Este cambio permitió a AMD aumentar el tamaño de la memoria caché micro-op de la entrada de 2K a la de 4K, y AMD sintió que esto daba un mejor equilibrio de rendimiento con la evolución de las cargas de trabajo modernas.

El caché L1-D sigue siendo de 32KB en 8 vías, mientras que el caché L2 aún es de 512KB en 8 vías. El caché L3, que es un caché no inclusivo (comparado con el caché inclusivo L2), ahora se ha duplicado en tamaño a 16 MB por complejo principal, hasta 8 MB. AMD administra su L3 compartiendo un bloque de 16MB por CCX, en lugar de permitir el acceso a cualquier L3 desde cualquier núcleo.

Debido al aumento en el tamaño de la L3, la latencia ha aumentado ligeramente. L1 sigue siendo de 4 ciclos, L2 sigue siendo de 12 ciclos, pero L3 ha aumentado de ~ 35 ciclos a ~ 40 ciclos (esta es una característica de los caches más grandes, terminan siendo una latencia ligeramente más lenta; es una compensación interesante a medida ). AMD ha declarado que ha aumentado el tamaño de las colas que manejan las fallas L1 y L2, aunque no ha explicado qué tan grandes son ahora.

Infinity Fabric

Con el cambio a Zen 2, también pasamos a la segunda generación de Infinity Fabric. Una de las actualizaciones principales con IF2 es el soporte de PCIe 4.0 y, por lo tanto, el aumento del ancho del bus de 256 bits a 512 bits.

La eficiencia general de IF2 ha mejorado un 27% según AMD, lo que lleva a una menor potencia por bit. A medida que pasemos a más enlaces de IF en EPYC, esto será muy importante a medida que los datos se transfieran de chiplet a IO die.

Una de las características de IF2 es que el reloj se ha desacoplado del reloj DRAM principal. En Zen y Zen +, la frecuencia de FI se acopló a la frecuencia de DRAM, lo que dio lugar a algunos escenarios interesantes en los que la memoria podía ir mucho más rápido, pero las limitaciones en la FI significaban que ambos estaban limitados por la naturaleza de bloqueo del reloj. . Para el Zen 2, AMD ha introducido relaciones con el IF2, lo que permite una relación normal de 1: 1 o una relación de 2: 1 que reduce el reloj de IF2 a la mitad.

Esta relación debería entrar automáticamente en juego alrededor de DDR4-3600 o DDR4-3800, pero sí significa que el reloj IF2 se reduce a la mitad, lo que tiene un efecto de golpeo con respecto al ancho de banda. Cabe señalar que incluso si la frecuencia de DRAM es alta, tener una frecuencia de IF más lenta probablemente limitará la ganancia bruta de rendimiento de esa memoria más rápida. AMD recomienda mantener la proporción en un 1: 1 alrededor de DDR4-3600, y en su lugar, optimizar los sub-tiempos a esa velocidad.

Construir un núcleo como Zen 2 requiere algo más que construir un núcleo. La interacción entre el núcleo, el diseño de SoC y, luego, la plataforma requiere que diferentes equipos internos se unan para crear un nivel de sinergia que carece de trabajo por separado. Lo que AMD ha hecho con el diseño de chiplet y el Zen 2 es una gran promesa, no solo para aprovechar los nodos de proceso más pequeños, sino también para conducir un camino hacia el futuro del cómputo.

Al bajar un nodo de proceso, las principales ventajas son una menor potencia. Se puede tomar de varias formas: menor potencia para la operación con el mismo rendimiento, o más presupuesto de potencia para hacer más. Vemos esto con los diseños de núcleos a lo largo del tiempo: a medida que se abren más presupuestos de energía o que diferentes unidades dentro del núcleo se vuelven más eficientes, esa potencia adicional se utiliza para hacer que los núcleos sean más anchos, y con suerte aumente la tasa de instrucción bruta. No es una ecuación fácil de resolver, ya que hay muchas ventajas y desventajas: uno de estos ejemplos en el núcleo Zen 2 es la relación entre el caché I-L1 reducido que ha permitido a AMD duplicar el caché micro-op, que AMD espera en general Para ayudar con el rendimiento y la potencia. Entrar en los detalles de lo que podría ser posible, al menos a un alto nivel, es como jugar con Lego para estos ingenieros.

Dicho todo esto, el Zen 2 se parece mucho al Zen. Es parte de la misma familia, lo que significa que se ve muy similar. Lo que AMD ha hecho con la plataforma, habilitando PCIe 4.0 y poniendo el diseño en su lugar para liberar a los procesadores del servidor del entorno similar a NUMA ayudará a AMD a largo plazo. El panorama es bueno para AMD aquí, dependiendo de cuán alta pueda impulsar la frecuencia de las partes del servidor, pero Zen 2 plus Rome eliminará una buena cantidad de preguntas que los clientes de la cerca tenían sobre el Zen.

En general, AMD ha citado una mejora del rendimiento del núcleo del + 15% con Zen 2 sobre Zen +. Con los cambios centrales, a un alto nivel, eso ciertamente parece factible. A los usuarios centrados en el rendimiento les encantará el nuevo Ryzen 9 3950X de 16 núcleos, mientras que el procesador parece agradable y eficiente a 105 vatios, por lo que será interesante, así que vea qué sucede a una potencia menor. También estamos anticipando un lanzamiento muy fuerte en Roma aquí en los próximos meses, especialmente con características como el rendimiento de FP doble y la calidad de servicio (QoS), y el rendimiento de multiproceso múltiple en bruto de 64 núcleos va a ser un factor de interrupción interesante para el mercado, especialmente si el precio es efectivo . Pronto tendremos el hardware disponible para presentar nuestros hallazgos cuando se lancen los procesadores el 7 de julio

Fuente: Anandtech

2 respuestas a «Análisis de microarquitectura de AMD Zen 2. Ryzen 3000 y EPYC Rome»

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *