Los núcleos big.LITTLE están en el punto de mira, pues tras años existiendo mayoritariamente en teléfonos móviles estamos empezando a ver las primeras implementaciones en PC y Mac por parte de Intel y Apple. ¿Qué tienen de especial este tipo de cores? ¿Por qué denominamos “híbrida” a una arquitectura así?
Vamos a dar un repaso por las ventajas e inconvenientes que implica su uso, además de cuáles son los procesadores y SoC actuales y futuros que incorporan este tipo de núcleos. ¡Comenzamos!
Índice de contenidos
La idea detrás de big.LITTLE
El concepto de big.LITTLE se refiere en realidad a la computación heterogénea, siendo esta la denominación comercial que le da la compañía ARM. En todo caso, a día de hoy es la forma más común de llamar a este concepto, básicamente porque en ARM big.LITTLE se concentra casi todo su uso.
Dicho esto, las arquitecturas de CPU basadas en computación heterogénea son aquellas que combinan más de un tipo de núcleos de procesador. Es decir, que en vez de añadir núcleos a la CPU que son exactamente iguales, se añaden también núcleos de otros tipos para mejorar el rendimiento y/o la eficiencia energética. Realmente, este concepto engloba la adición de cualquier tipo de núcleo, como podría ser un coprocesador adicional que se dedique únicamente a la realización de tareas
En cambio, hablar de big.LITTLE es ser un poco más específicos: nos referimos a una forma de computación heterogénea en la que se usan dos tipos de cores, un tipo de alto rendimiento y con un consumo más alto ‘big’ y otro con un rendimiento más bajo pero mucha mayor eficiencia energética ‘LITTLE’.
¿Cuál es el beneficio de usar big LITTLE? ¿Qué problema resuelve?
Uno de los grandes problemas que enfrentan los procesadores en lo relativo a la eficiencia energética es el hecho de que escalar un procesador para el máximo rendimiento provoca que su consumo en cargas bajas aumente notablemente. Y es que una CPU optimizada para rendir al máximo necesitará más transistores, más estructuras de control y una complejidad aumentada que, sí o sí, subirá los niveles de consumo. Por ejemplo, los transistores siempre perderán una cantidad de energía aunque haya poco uso del procesador, y aumentar el número de transistores implica necesariamente que suba este consumo.
Puede que este no sea un problema demasiado relevante en procesadores de escritorio, donde a la gente apenas le importa que a cargas bajas la CPU consuma 20W que 50W. Pero en dispositivos móviles y ordenadores portátiles, donde se depende en gran medida del consumo para asegurar una buena duración de la batería, esto se vuelve algo crítico: necesitamos que las CPU sean lo más eficientes posible.
Entonces, ¿vamos a renunciar al buen rendimiento en portátiles y en móviles? Evidentemente no, y ahí es donde entra en juego el concepto de big y LITTLE: si mantenemos esos núcleos pensados para el rendimiento con otros que son muchísimo más eficientes pero menos veloces, podemos repartir las tareas del sistema de una forma mucho más inteligente energéticamente hablando. Además, podemos apagar completamente esos núcleos rápidos y evitar el mencionado desperdicio energético, en aquellos momentos en los que no estemos demandando mucha energía al dispositivo.
De hecho, en un móvil se vuelve todavía más crucial, teniendo en cuenta que estará en un reposo “activo” en el que la CPU tendrá que seguir funcionando para mantener las notificaciones y acciones en segundo plano, y aquí se vuelve todavía más importante la cuestión de apagar esos núcleos tan vitaminados en cuanto a transistores, componentes, memorias caché, etc.
Usos actuales: todo tipo de procesadores ARM
Como decimos, el uso principal de big.LITTLE en la actualidad está en los procesadores basados en arquitecturas ARM, que son básicamente todos los que podemos encontrar en teléfonos móviles actualmente.
Por poner ejemplos, el Apple A14 Bionic de los últimos iPhone usa cuatro núcleos eficientes (Icestorm) y dos de alto rendimiento (Firestorm), el MediaTek Helio P95 tiene 2 Arm Cortex A75 de alto rendimiento y 6 Cortex A55 eficientes, etc.
Dentro de este contexto, incluso tenemos excepciones notables como el Qualcomm Snapdragon 888, que usa tres niveles de núcleos distintos, añadiendo una parte mediana al big.LITTLE. Esto es parte de lo que se conoce como DynamIQ, un concepto que te explicaremos enseguida.
El primer uso en ordenadores viene de la mano de Apple y su SoC M1
Si bien es cierto que ya hay portátiles, convertibles y otros dispositivos con procesadores Snapdragon basados en ARM, los grandes cambios llegaron de la mano de Apple, que sacó al mercado su propio SoC M1 basado en ARM, usándolo en sus Mac y abriendo un gran debate sobre la idoneidad de ARM y el big.LITTLE en ordenadores.
Desde el primer momento, estos SoC han prometido mucho por el rendimiento obtenido, algo que en parte se explica por el enfoque en el rendimiento con el que Apple ha implementado su arquitectura basada en Arm, pero sin duda big.LITTLE influye en los increíbles niveles de eficiencia energética obtenidos, marcando un posible paso a seguir en arquitecturas x86.
DynamIQ, dando al big.LITTLE la flexibilidad que necesita
El gran problema de usar núcleos big y LITTLE está en la “rigidez” que puede suponer el uso de esta arquitectura, pues al fin y al cabo lo que tendremos dentro del procesador son dos clústers de núcleos separados con sus propias cachés, donde una interconexión con coherencia de caché es lo que consigue comunicar ambos grupos.
Desde 2017, Arm DinamIQ unifica todo el diseño en un clúster, eliminando las barreras preexistentes que implicaban, por ejemplo, que todos los núcleos de un clúster tuviesen que ser iguales y llevar la misma frecuencia. Ahora, cada núcleo puede ser distinto y funcionar a la frecuencia que sea, además de contar con una caché L2 individual y una L3 compartida. Por tanto, la nueva generación de big.LITTLE va más allá del concepto original permitiendo muchas más combinaciones de núcleos de distinto tipo.
Podríamos hablar de combinaciones como las siguientes (big + LITTLE o big + intermedio + LITTLE): 2+4 para CPU de gama media, 0+8 para CPU básicas, 2+6 para gamas altas, o 4+4 para el máximo rendimiento. El Snapdragon 888 que mostramos antes seguiría una configuración 1+3+4.
Usos futuros: el desembarco de arquitecturas híbridas “a lo big.LITTLE” en ordenadores x86
Como decimos, la llegada de los M1 de Apple avivó el interés de los dos grandes fabricantes de CPUs por traer el big.LITLE a los ordenadores personales. Vamos a ver qué es lo que tienen preparado Intel y AMD a este respecto.
El primer experimento de Intel ya llegó al mercado, pero sin gran éxito
La verdad es que Intel ya lanzó una arquitectura con núcleos híbridos en una filosofía similar a big.LITTLE. Esta se llama Lakefield y se conoció por primera vez este año. Se trata de unos SoC muy especiales al apilar varios componentes del sistema en un único chip con varios “pisos”, pero lo que nos interesa es el tipo de núcleos usado: por ejemplo, el i5-L16G7 lleva un núcleo Sunny Cove (rendimiento) y 4 Tremont (eficiencia energética).
Además de esta CPU, también presentaron su i3-L13G4, y a día de hoy apenas los podemos encontrar en otros procesadores y ordenadores, así que desde luego no son del mayor interés.
Intel se prepara con Alder Lake para 2021/2022
El gran punto de inflexión está por venir, y es que al momento de escribir este artículo se acaban de anunciar los procesadores Rocket Lake de 11ª generación. Estas CPUs son las últimas que saldrán hasta que Intel pase a Alder Lake, la primera “incorporación fuerte” de big.LITTLE en ordenadores. Tendremos una combinación de núcleos Golden Cove (alto rendimiento) y Gracemont (eficiencia), que llegará como máximo a los 8+8 núcleos.
Se espera que a finales de 2021 se lancen estos procesadores, pero Intel tiene un historial bastante amplio de retrasos en sus lanzamientos, así que es de esperar que lleguen en 2022. En todo caso, como decimos supondrán un cambio impresionante en cómo entendemos los procesadores de nuestros PCs.
AMD investiga su propia tecnología híbrida, pero sin noticias a la vista
Antes del lanzamiento de la exitosa microarquitectura Zen, uno de los planes de AMD era precisamente llevar a los PC algunas CPU con núcleos ARM. Estas se llamarían K6 y desembarcarían entre 2014 y 2016. Está claro que al final a la compañía no le hizo falta hacerlo, pero no han abandonado el interés por lanzar algo así, al menos según algunas de las últimas filtraciones disponibles.
Abandonemos ahora el campo de las filtraciones y vayamos a lo que sabemos a ciencia cierta: a finales de 2017, la compañía solicitó una patente sobre un “sistema de procesador heterogéneo” con dos conjuntos de instrucciones distintos, uno que sería completo y otro que sería un subconjunto con un consumo inferior. Básicamente, el big.LITTLE propio de AMD.
¿Llegará al mercado o se quedará en una idea de investigación frustrada? Es algo que sabremos en los próximos años.
La gran dificultad de implementación: el sistema operativo
El gran problema que nos encontramos para implementar big.LITTLE en ordenadores está en el sistema operativo, y en su planificador, que decidirá a qué núcleo asignar cada proceso, cómo y cuándo. Si el SO es inconsciente de que la CPU usa una arquitectura big.LITTLE, entonces asignará procesos a núcleos rápidos y lentos de manera indistinta, de forma que podría darse el caso de que un juego vaya con los lentos y el navegador o Discord con los rápidos.
El SO pensará que los núcleos de la CPU son iguales si el planificador no se adapta a ella.
No deberíamos preocuparnos en exceso por esto más allá del rendimiento que pueda tener la CPU en los primeros meses tras su lanzamiento. Y es que es algo que ya ocurrió sin necesidad de hablar de big.LITTLE. Por ejemplo, cuando salieron los primeros procesadores Ryzen, el planificador de Windows no sabía que había núcleos en distintos CCX, y sin darse cuenta podía asignar tareas a núcleos entre los cuales había una gran latencia. Esto se solucionó en las sucesivas actualizaciones del sistema.
Palabras finales y conclusión sobre los núcleos big.LITTLE
Cuando se diseña un procesador, maximizar el rendimiento no sale gratis energéticamente. El propio hecho de que los núcleos tengan más transistores provoca un aumento de su consumo estático, así que incluso cuando no estén haciendo casi nada consumirán más. Esto es un problema cuando desarrollamos CPU en las que necesitamos rendimiento pero a la vez un buen consumo, como por ejemplo las que integran los móviles y portátiles.
¿Cuál es la solución? Sin duda el big.LITTLE. Esta es una implementación de la computación heterogénea que consiste en dividir los núcleos de una CPU en dos categorías: unos más complejos y potentes, y otros más sencillos y de peor desempeño, pero con una eficiencia energética mucho mayor. Cuando esto se combina con un buen reparto de las tareas y el apagado de los núcleos potentes cuando es necesario, se consigue reducir drásticamente el consumo. Así tenemos móviles que duran horas y horas, incluso si cuando están en standby realizan muchas tareas en segundo plano.
Te recomendamos la lectura de nuestros artículos:
Las CPU actuales con big.LITTLE son aquellas que usan arquitecturas Arm, como son las de cualquier móvil con SoC Apple, Qualcomm, Samsung, Mediatek, Huawei… Incluso podemos encontrarlas en ordenadores que usen CPU de estos fabricantes. Pero, ¿qué hay de Intel y AMD?
Al momento de escribir este artículo, se sabe que Intel está preparando sus propias CPU big.LITTLE x86 para la 12ª generación de procesadores Core, y verán la luz en 2021 o 2022. Incluso AMD está tomando posiciones con varias patentes relacionadas con la computación híbrida.
Esperamos que este artículo te haya resultado de utilidad para aclarar uno de los conceptos más interesantes de la informática y el hardware. ¿Se convertirá el big.LITTLE en la norma también en PC?