Hasta hace poco tiempo, las arquitecturas basadas en ARM para smartphones y diversos dispositivos han obviado tecnologías como SMT o HT, algo que Intel y AMD incluyen en sus procesadores para PC desde hace años, pero ¿por qué los fabricantes no las usan en sus CPUs o SoC? Es llamativo que pudiendo ganar rendimiento de una forma más o menos sencilla no se opte por esto, ¿cuáles son los motivos reales?
La arquitectura ARM tiene una serie de particularidades bastante interesantes desde el punto de vista del diseño y que, como buena RISC, cuando se enfrentan preguntas como la implementación de SMT o HT o similar en sus núcleos la respuesta es muy similar a la que encontraríamos al preguntarnos sobre la eficiencia en las CPU AMD e Intel.
ARM SMT: mayor rendimiento a un coste muy alto
Los parámetros que definen el rendimiento son ligeramente opuestos a los que definen la eficiencia, y aquí es donde gira todo lo relacionado con ARM. Como arquitectura propiamente dicha y sabiendo que se basa en RISC, los procesadores que la incluyan siempre van a necesitar un menor número de transistores que los que se basen en CISC.
Menor número de transistores en un mismo proceso litográfico que una CPU de escritorio implica mayor simplicidad a la hora de diseñarlas, menor espacio físico para crearlas y un menor consumo en funcionamiento.
En definitiva, se ahorran costes, calor y energía, por lo tanto los procesadores ARM están enfocados a un mercado distinto, si bien pueden implementar cualquier técnica de múltiples hilos simultáneos como AMD e Intel. Si tenemos en cuenta el concepto explicado de ARM y sabiendo que duplicar hilos por núcleo conlleva un aumento de la energía y consumo considerables, se puede comprender que el problema está en la llamada eficiencia.
Incluir cualquier tipo de SMT conlleva unas cachés mayores y más consumo/temperatura
No vamos a descubrir ahora las técnicas de SMT que se pueden implementar, pero lo cierto es que ninguna minimiza el impacto al ser habilitadas en cuanto a consumo y temperatura. Existen procesadores ARM con dicha característica, pero están destinado al alto rendimiento como los servidores.
El problema es que aumentar el número de hilos implica una serie de mejoras y modificaciones para que el aumento de rendimiento sea palpable, independientemente del consumo y la temperatura que se establezcan como máximos.
ARM se basa en big.LITTLE en su mayoría y esto denota que incluir SMT tendría que implicar un aumento de la caché L1D, L1I y L2 (al menos), donde el balanceo y equilibrio de recursos disponibles y trabajados podría implicar también una mayor L3. También hay que tener en cuenta que cuando un núcleo físico ejecuta dos subprocesos de ejecución con sus respectivas instrucciones y recursos compartidos, el rendimiento de cada hilo se reduce considerablemente, no es un 100% del hilo principal, sino que se subdivide el rendimiento.
Si a esto le sumamos un mayor consumo de energía por el aumento de recursos consumidos y generados, obtenemos que, por norma general, big.LITTLE en ARM funciona mejor con núcleos simples sin usar lógicos para mantener la mejor eficiencia.
El enfoque es la clave
La principal ventaja de ARM con big.LITTLE es precisamente su rendimiento por vatio consumido, hasta el punto de que Intel en 2020 lanzará una arquitectura propia y similar para dispositivos de IoT, porque directamente no puede competir con los procesadores actuales en eficiencia.
Por lo tanto, el enfoque de la arquitectura y el procesador son claves para entender por qué casi ningún fabricante usa hilos múltiples en sus CPUs, ya que la mayoría los enfoca para smartphones y dispositivos de bajo consumo.
Además, por lo que fabricantes como Qualcomm afirman, este enfoque se va a mantener durante bastantes años para dicho sector, donde los procesos litográficos marcarán el devenir de esta arquitectura en mucha mayor medida que en sectores como escritorio o servidores.