Guía Hardware

La importancia de que los núcleos de la CPU sean pequeños

Actualizado a: 28 de julio de 2023

Los núcleos de la CPU, si son de pequeño tamaño son de vital importancia para conseguir alcanzar algunos objetivos. No siempre un núcleo mayor es mejor. Aquí te explico los motivos que hay detrás de esta afirmación.

Yield y Binning

wafer binning

En el contexto de la producción de chips semiconductores, el yield se refiere a la proporción de chips funcionales que se obtienen con éxito en comparación con el número total de chips fabricados. En otras palabras, es la medida de cuántos chips son válidos y cumplen con las especificaciones de calidad después de completar el proceso de fabricación, es decir, el rendimiento de la producción. Un alto rendimiento (alto yield) significa que la mayoría de los chips producidos son funcionales, mientras que un bajo rendimiento (bajo yield) indica que muchos chips son defectuosos y no cumplen con los estándares requeridos.

El yield es un factor crítico en la producción de chips, ya que afecta directamente el coste y la rentabilidad del proceso de fabricación. Un bajo rendimiento significa que se desperdician más recursos (como materiales y tiempo) en la producción de chips defectuosos, lo que aumenta los costos de producción y disminuye la eficiencia general.

El yield también tiene un impacto significativo en el binning de chips. El binning es el proceso de clasificar los chips según sus características y rendimiento antes de ser enviados a los clientes o integrados en dispositivos finales. Dependiendo de su calidad y desempeño, los chips se colocan en diferentes «bins» o categorías. Por lo general, los chips con mejor rendimiento y mayor calidad se colocan en bin «premium» o «grado A», mientras que los chips con ciertos defectos menores pueden ser clasificados en bin «segunda selección» o «grado B», y así sucesivamente…

Ten en cuenta que mientras más pequeño sea un núcleo de CPU, más cantidad de chips podrán fabricarse en una oblea, y lo que es mejor, menos probabilidades de verse afectado por los defectos que se suelen producir en algunos puntos de la oblea en las diferentes etapas de fabricación.

Por otro lado, tampoco hay que olvidar que con la creciente integración de núcleos de CPU, algunos se han visto obligados a pasar de los chips monolíticos a diseños chiplets, algo que no es lo óptimo, pero que mejora el yield. Sin embargo, con núcleos de CPU más pequeños se podría conseguir mantener un diseño monolítico rentable.

Eficiencia y tamaño

La eficiencia y el tamaño de un núcleo de CPU están relacionados de varias maneras, y hay ciertos aspectos que debemos tener en cuenta al analizar esta relación:

  • Consumo de energía: un núcleo más pequeño, siempre y cuando consiga el mismo rendimiento, significa también un núcleo más eficiente, con menos transistores y más simplificado para reducir el consumo. Un núcleo de CPU más eficiente utiliza la energía de manera más efectiva, lo que significa que puede realizar más tareas con la misma cantidad de energía o realizar las mismas tareas con menos energía. El tamaño del núcleo, en parte, determina cuántos transistores están presentes y cómo se comporta el núcleo en términos de consumo de energía.
  • Rendimiento: la eficiencia y el tamaño del núcleo también influyen en el rendimiento del CPU. Un núcleo más grande puede albergar más unidades de ejecución y cachés, lo que generalmente se traduce en un mayor rendimiento. Sin embargo, esto también podría aumentar el consumo de energía. En ciertos casos, un núcleo más pequeño pero altamente eficiente podría ser preferible para dispositivos móviles o sistemas que prioricen la eficiencia energética. Y en el mundo del alto rendimiento, como en el HPC, también se está jugando con núcleos más pequeños y eficientes para conseguir mejoras de rendimiento significativas y reducir el consumo, que tan importante es en este sector. Una prueba de ello es la incursión de los ARM en este ámbito, o de los nuevos núcleos AMD Zen 4c, que son una variante reducida de los Zen 4. Todo un logro que ha sorprendido a muchos expertos de la industria. Algo así como los E-core de Intel, más pequeños y eficientes, aunque éstos están diseñados para tener un rendimiento más reducido también.
  • Disipación de calor: el tamaño del núcleo también afecta la disipación de calor. Un núcleo más grande con más transistores generará más calor, lo que puede requerir soluciones de enfriamiento más sofisticadas. Por otro lado, un núcleo más pequeño con menor consumo de energía generalmente generará menos calor y puede ser más fácil de enfriar.

Más núcleos, más rendimiento

núcleos de CPU
Vista del chip APU de AMD, con los núcleos CPU (CCX) a la izquierda, y la GPU a la derecha

Al integrar más núcleos de CPU en un chip, se logran varios beneficios y ventajas en términos de rendimiento y eficiencia. Esta estrategia se conoce como multiprocesamiento y puede adoptar diferentes enfoques según el diseño del chip y la arquitectura utilizada. Los beneficios son:

  • Rendimiento en tareas paralelizables: muchas aplicaciones modernas, como edición de video, compresión de archivos y ciertos juegos, pueden dividirse en tareas más pequeñas que pueden ejecutarse en paralelo. Al tener más núcleos, el chip puede abordar estas tareas paralelizables de manera más efectiva y acelerar el tiempo de ejecución.
  • Mejora en la multitarea: con múltiples núcleos, un sistema puede realizar varias tareas al mismo tiempo sin afectar significativamente el rendimiento general. Esto mejora la experiencia del usuario al permitir que varias aplicaciones se ejecuten simultáneamente de manera más fluida.
  • Eficiencia energética: en ciertos casos, tener más núcleos puede permitir que el chip realice tareas más rápido y luego vuelva a un estado de bajo consumo de energía más rápidamente. Esto puede mejorar la eficiencia energética en comparación con un solo núcleo que se esfuerza por realizar múltiples tareas secuencialmente.
  • Distribución de carga: al tener más núcleos, la carga de trabajo se puede distribuir de manera más equitativa, lo que reduce la posibilidad de cuellos de botella y mejora el rendimiento general del sistema.

Se evita el SMT

Hay un punto que debería haber puesto también en el apartado anterior, pero que he dejado para este, y que es que, al tener más núcleos de CPU pequeños en un mismo diseño, se consigue un mayor rendimiento multihilo. Cada núcleo de CPU adicional puede manejar tareas de manera independiente y simultánea. Esto permite que el chip procese múltiples hilos de ejecución (tareas) al mismo tiempo, lo que resulta en un mayor rendimiento para aplicaciones que pueden aprovechar el paralelismo, como tareas de renderizado, simulaciones, cálculos intensivos, entre otros.

Si disponemos de más núcleos de CPU físicos se podría evitar usar núcleos lógicos, es decir, SMT (Simultaneous MultiThreading), como usan diseños como los de Intel, AMD, etc. En el caso de ARM no tenemos esto, y puede ser beneficioso para evitar algunos problemas de seguridad y vulnerabilidades que hemos visto con este tipo de procesamiento.

Cómo se puede reducir un núcleo (nodo e ISA)

Reducir el tamaño de un núcleo de CPU implica una serie de enfoques y tecnologías que permiten optimizar y compactar los componentes clave del núcleo. Por ejemplo:

  • Tecnología de fabricación más avanzada: la tecnología de fabricación, proceso o nodo, juega un papel crucial en la reducción del tamaño del núcleo. Avances en la fabricación, como la litografía de procesos más pequeños (por ejemplo, de 7 nm a 5 nm o incluso menos), permiten crear transistores más pequeños y densos, lo que disminuye el área ocupada por el núcleo.
  • Estructura del transistor: jugar con nuevas estructuras y materiales también permite hacer los transistores más pequeños, como es el caso de los GAA, entre otras soluciones. Una mayor densidad de las celdas básicas implica poder obtener un núcleos más pequeño, incluso sin reducir la cantidad de transistores.
  • Diseño más eficiente de la arquitectura: los ingenieros y diseñadores trabajan para optimizar la arquitectura del núcleo, reduciendo el número de componentes innecesarios o redundantes y utilizando técnicas de diseño más eficientes. Esto puede implicar la eliminación de unidades de ejecución poco utilizadas o la reorganización de ciertos bloques funcionales para reducir el área total.
  • Uso de bloques compartidos: en algunos casos, es posible compartir ciertos bloques funcionales o recursos entre múltiples núcleos. Por ejemplo, los núcleos de una CPU multinúcleo pueden compartir la caché o FPU, lo que ahorra espacio y permite un uso más eficiente de los recursos.
  • Implementación de unidades funcionales especializadas: en lugar de tener una unidad de ejecución única para todas las operaciones, algunos diseños de núcleo pueden implementar unidades especializadas para ciertos tipos de instrucciones o tareas comunes. Esto puede reducir el área del núcleo y mejorar el rendimiento en aplicaciones específicas.
  • Reducción de la complejidad del pipeline: las pipelines de CPU son esenciales para maximizar el rendimiento, pero también pueden ocupar mucho espacio. Optimizar y reducir la cantidad de etapas en el pipeline puede permitir un núcleo más compacto. Ya que cada etapa de pipeline también implica agregar unos registros intermedios para almacenar estados.
  • Reducir la ISA: además de todo lo anterior, también es importante saber que una ISA puede afectar al tamaño del núcleo. Generalmente los núcleos RISC son más pequeños y eficientes que los núcleos CISC. Además, cuando se usan instrucciones SIMD muy largas, como es el caso de AVX-512, también implica tener bancos de registros de mayor tamaño y unidades de coma flotante más complejas. Esto aumenta el consumo y la superficie del chip ocupada, por lo que hay que sopesar el compromiso rendimiento vs eficiencia/tamaño.

Es importante destacar que hacer más pequeño un núcleo de CPU puede tener sus desafíos y limitaciones.

Jaime Herrera

Jaime Herrera

Técnico electrónico y experto en el sector de los semiconductores y el hardware. Apasionado de la tecnología y la computación.

>
Guía Hardware
Logo