Desmontamos la microarquitectura Lion Cove que Intel usa en los núcleos P-cores para ver qué se esconde en ellos, sus novedades y cómo consiguen el rendimiento que prometen. Te animo a seguir leyendo para sumergirte en lo más profundo de estas maravillas tecnológicas, y conocer qué puedes esperar de ellos.
Lunar Lake, nueva base para los Intel Core Ultra 200V Series
Desde que Intel presentó sus Lakefield, con multinúcleo heterogéneo al estilo big.LITTLE de ARM, combinando núcleos P-Core de alto rendimiento con núcleos E-Core de alta eficiencia, han aparecido dos nombres clave que se refieren a cosas diferentes. Desde entonces hemos visto varias generaciones como:
Lakefield, nombre clave para la generación 11º, compuestos por núcleos P basados en la microarquitectura Sunny Cove y núcleos E basados en Tremont.
Alder Lake fue el nombre clave para la 12º Gen, con núcleos P con microarquitectura Golden Cove y núcleos E Gracemont.
Raptor Lake fue la 13º Gen, con microarquitecturas Raptor Cove y Gracemont para los P y E-cores respectivamente.
Meteor Lake fue el inicio de la primera generación de los Core Ultra, con microarquitecturas Redwood Cove y Crestmont.
Lunar Lake llega como la 2º Gen de los Core Ultra, con Lion Cove para los P-core y Skymont para los E-core.
Una vez comprendidas las nomenclaturas para los nombres clave en estos SoCs con núcleos heterogéneos, y que se dividen en no una, sino dos microarquitecturas diferentes, nos centraremos en Lunar Lake, concretamente en analizar qué hay de nuevo en el diseño Lion Cove.
Los P-Core de Intel bajo Lunar Lake rompe del todo con la microarquitectura P6 en la que se basaron diseños como el Pentium Pro, Pentium II, Pentium III, así como también fue inspiración de Sandy Bridge, y Golden Cove. En cambio, Lion Cove se ha desviado de este camino, por lo que es una de las microarquitecturas más novedosas de los últimos tiempos.
Entre las mejoras que se aprecian en Lion Cove frente a Golden Cove tenemos:
Se usan dos programadores unificados para enteros y vectores, en lugar de uno solo con cinco puertos, como en la generación anterior. Además, ahora se cuenta con 6 puertos para enteros y 4 puertos para vectores. Eso puede parecer más complejidad en el silicio, pero mejor rendimiento. Sin embargo, lo cierto es que se ha simplificado el diseño, ya que ahora todos los puertos no tienen que manejar vectores, solo los destinados a ellos, que pueden manejar vectores con 3 operandos. Además, también puede mejorar la eficiencia energética del núcleo, por ejemplo, si no se está ejecutando ningún código vectorial, se puede poner el planificador en un modo pausado para reducir el consumo total y reasignar esa energía a otras partes del núcleo, permitiendo que otras partes puedan funcionar a una frecuencia superior. Además,
La jerarquía de la memoria caché también se ha mejorado, ahora se ha incluido una nueva caché intermedia. La L1 ha pasado a llamarse ahora L0, reduciendo la latencia de este nivel más bajo a solo 4 ciclos de reloj, manteniendo el tamaño. Para sustituir a la anterior L1, se ha agregado ahora un nivel L1 nuevo, que tiene 192 KB, frente a los 48 KB del L0. Solo que en este nivel la latencia es de 9 ciclos de reloj, actuando como un buffer entre la L0 y la L2. Por supuesto, hay una L2 de 3MB con una penalización de 17 ciclos de reloj para su acceso. El ancho de banda de la L0 y L1 también se ha mejorado, ahora se puede acceder a 128Bytes por ciclo. Algo extraño es que entre la L1 y L2 se puede tener teóricamente hasta 110Byte por ciclo según la configuración de estos Lion Cove, pero Intel los ha limitado a 64Bytes por ciclo, imagino que por cuestiones de ahorro de energía.
Sin Hyper Threading, como ya contamos en este blog, Intel ha tomado la decisión de eliminar esta tecnología de Lion Cove. Ya no se puede activar y también se han eliminado partes necesarias para HT del núcleo Lion Cove, para reducir su tamaño en el silicio y aumentar la eficiencia. Además, esto lleva a otro cambio, y es también una simplificación del silicio ocupado para implementar el Thread Director, que será más simple sin tener que elegir entre núcleos lógicos, ahora solo debe elegir entre los modos: P-Core, P-Core Thread, E-Core y LP E-Core.
También hay cambios en el Front-end, con más recursos para la ejecución fuera de orden. Ahora se pueden extraer hasta 48 bytes por ciclo de reloj, y se aumenta la caché para microoperaciones, y se mejora la predicción de ramas. De las 6 entradas ha pasado a 8 unidades, se ha aumentado el ROB de 512 a 516 entradas, el archivo de registro también se ha aumentado.
En el Back-end, tenemos por un lado un aumento en el número de ALUs, que ahora 6. Los multiplicadores para enteros ahora son 3 en vez de 1, permitiendo hacer más MUL por ciclo. En el lado de los vectores, Intel también ha agregado una unidad de cálculo SIMD adicional, pasando de las 3 de los anteriores diseños a 4 en Lion Cove. Se mejora también el rendimiento y la latencia para las instrucciones DIV.
El subsistema de memoria de Lion Cove también se mejora, con un DTLB L1 con 128 entradas, y también se pasa de las 2 unidades AGU a las 3, para mejorar la capacidad de direccionamiento.
En definitiva, unos cambios rompedores para estos núcleos P-core del Lunar Lake…