29 mayo, 2020
La micro-arquitectura Cortex-X1: Más grande, más robustas, más rendimiento.
La firma ARM ha presentado oficialmente su nueva arquitectura CPU Cortex-A78 y la arquitectura GPU Mali-G78, dos novedades muy importantes ya que marcan el camino que seguirá el sector móvil durante los próximos años, y afecta a gigantes del calibre de Qualcomm, Samsung, Huawei y Apple.
La arquitectura CPU Cortex-A78 da el salto al proceso de fabricación de 5 nm, y mejora el rendimiento en aplicaciones y entornos centrados en la inteligencia artificial y el aprendizaje profundo. ARM ha comentado que esta nueva arquitectura está preparada para dar lo mejor de sí en smartphones flexibles que utilicen varias pantallas.
En comparación con un A78, es un núcleo más amplio, pasando de un decodificador de 4 a 5 de ancho, aumentando hasta 8 Mops/ciclo, y también cambiando enormemente algunas de las tuberías y cachés, duplicando la unidad NEON y duplicando las cachés L2 y L3.
En la parte delantera (y válida el resto del núcleo también), el Cortex-X1 adopta todas las mejoras que ya hemos cubierto en el Cortex-A78, incluyendo las nuevas unidades de rama. Además de los cambios introducidos en el A78, el X1 crece aún más algunos aspectos de los bloques aquí. El L0 BTB se ha actualizado de 64 entradas en el Cortex-A77 y A78, a hasta 96 entradas en el X1, lo que permite más latencia cero tomada ramas. Los búferes de destino de rama todavía son de una jerarquía de dos niveles con los BTB L0 y L2, que arman en las divulgaciones anteriores conocidas como nanoBTB y mainBTB. El microBTB/L1 BTB estaba presente en el A76, pero posteriormente se había descontinuado.
La caché macrooperatoria se ha duplicado abiertamente de entradas de 1,5K a entradas 3K, lo que lo convierte en una gran estructura entre las microarquitecturas divulgadas públicamente por ahí, más grande que incluso las entradas 2.25K de Sunny Cove, pero tímida de la estructura de entrada 4K de Zen2 – aunque tenemos que hacer la desambiguación que Arm habla de macrooperaciones mientras Intel y AMD hablan de cachés microoperatorios.
El ancho de banda de captura fuera del L1I se ha aumentado un 25% de 4 a 5 instrucciones con un aumento correspondiente en el ancho de banda del decodificador, y el ancho de banda de captura y cambio de nombre de la memoria caché de Mop ha visto un aumento del 33% de 6 a 8 instrucciones por ciclo. En efecto, el núcleo puede actuar como una máquina de 8 anchos siempre y cuando esté golpeando la caché de Mop.
En el medio-núcleo, Arm aquí habla de nuevo de aumentar el ancho de banda de envío en términos de mops o instrucciones por ciclo, aumentando en un 33% de 6 a 8 al comparar el X1 con el A78. En términos de μops, el núcleo puede manejar hasta 16 despachos por ciclo al agrietar los fregonas completamente en μops más pequeños, en ese sentido, lo que representa un aumento del 60% en comparación con los 10μops/ciclo que el A77 fue capaz de lograr.
El tamaño de la ventana fuera de servicio se ha aumentado de 160 a 224 entradas, lo que aumenta la capacidad del núcleo para extraer ILP. Este siempre había sido un aspecto que Arm había dudado en actualizar, ya que habían mencionado que el rendimiento no escala casi tan linealmente con el aumento del tamaño de la estructura, y tiene un costo de potencia y área. El X1 aquí es capaz de hacer esos compromisos dado que no tiene que dirigirse a una amplia gama de implementaciones de proveedores.
En el lado de la ejecución, no vemos ningún cambio en la parte de las canalizaciones enteras en comparación con el A78, sin embargo, el punto flotante y las canalizaciones NEON divergen más significativamente de microarquitecturas pasadas, gracias a la duplicación de las canalizaciones. Duplicar aquí se puede tomar realmente en el sentido literal, ya que las dos canalizaciones existentes de la A77 y la A78 son esencialmente copiadas de nuevo, y los dos pares de unidades son idénticos en sus capacidades. Es una mejora bastante grande y un aumento de los recursos de ejecución.
En efecto, el Cortex-X1 es ahora una máquina SIMD de 4x128b, prácticamente igual en ancho de ejecución vectorial que algunos núcleos de escritorio como Sunny Cove de Intel o Zen2 de AMD. Aunque a diferencia de esos diseños, la ISA actual de Arm no permite que los vectores individuales sean mayores que 128b, que es algo que debe abordarse en un núcleo de próxima generación.
En el lado del subsistema de memoria, el Cortex-X1 también ve algunos cambios significativos, aunque la configuración de AGU es la misma que la que se encuentra en el Cortex-A78.
Por parte de las cachés L1D y L2, Arm ha creado nuevos diseños que difieren en su ancho de banda de acceso. Las interfaces de las memorias caché aquí no son más anchas, sino que lo que ha cambiado son los propios diseños de cachés, que ahora implementan el doble de bancos de memoria. Lo que esto resuelve son posibles conflictos bancarios al hacer múltiples accesos simultáneos a las memorias caché, es algo que podemos haber observado con patrones extraños de «zig-zag» en nuestras pruebas de memoria de los núcleos cortex-A76 hace unos años, y todavía presentes en algunas variaciones de ese μarch.
Las cachés L1I y L1D en el X1 están diseñadas para ser configuradas en 64KB. En la L2, debido a que es un diseño completamente nuevo, Arm también aprovechó la oportunidad para aumentar el tamaño máximo de la caché que ahora duplica hasta 1 MB. Una vez más, esto en realidad no es el mismo diseño de caché de 1 MB L2 que vimos por primera vez en el Neoverse-N1, sino una nueva implementación. La latencia de acceso es 1 ciclo mejor que la variante de 11 cíleos de la N1, logrando 10 ciclos en el X1, independientemente del tamaño de la memoria caché.
El subsistema de memoria también aumenta la capacidad de soportar más cargas y almacenes, aumentando la ventana aquí en un 33%, añadiendo aún más a la capacidad MLP del núcleo. Tenemos que tener en cuenta que este aumento no se refiere simplemente a los búferes de almacenamiento y carga, sino a todas las capacidades del sistema con solicitudes de seguimiento y mantenimiento.
Por último, el L2 TLB también ha visto una duplicación de tamaño en comparación con el A78 (66% de aumento vs A77) con cobertura de entradas 2K, sirviendo hasta 8 MB de memoria en páginas 4K, lo que hace que sea un buen ajuste para la caché de 8MB L3 prevista para implementaciones X1 objetivo.
La duplicación de la memoria caché L3 en el ESD no significa necesariamente que va a ser una implementación más lenta, ya que la latencia puede ser la misma, pero dependiendo de las implementaciones de asociados puede significar algunos ciclos adicionales de latencia. Probablemente a lo que se refiere esto es probablemente la opción para bancar el L3 con una gestión de energía separada. Hasta la fecha, no he oído hablar de ningún proveedor que utilice esta característica del ESD, ya que la mayoría de los implementadores como Qualcomm siempre han tenido el 4MB L3 totalmente encendido todo el tiempo. Es posible que con un DSU de 8 MB algunos proveedores puedan considerar la administración de energía mejor, por ejemplo, habiendo sido accionado sólo parcialmente siempre y cuando sólo hay pocos núcleos activos.
En general, lo que está claro aquí sobre la microarquitectura Cortex-X1 es que en gran parte consiste en los mismos bloques de construcción fundamentales que el del Cortex-A78, pero sólo tiene más grande y más de las estructuras. Es particularmente con el front-end y el mid-core donde el X1 realmente reemplaza las cosas en comparación con el A78, siendo una microarquitectura mucho más amplia en el corazón. Los argumentos sobre el bajo retorno de la inversión en algunas estructuras aquí simplemente no se aplican en el X1, y Arm fue para las configuraciones más grandes que eran factibles y razonables, incluso si eso aumenta el tamaño del núcleo y aumenta el consumo de energía.
Creo que las únicas limitaciones de diseño reales que la empresa se estableció aquí es en términos de las capacidades de frecuencia del X1. Sigue siendo un diseño de tubería muy corto con una penalización de error de bifurcación de 10 ciclos y un diseño de frecuencia profunda de 13 etapas, y esto sigue siendo el mismo entre el A78 y X1, con las estructuras más grandes de este último y un diseño más amplio que no perjudica las frecuencias máximas del núcleo.
Fuente anandtech, muycomputer